aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2022-10-28 14:48:50 +0200
committerFlorian Dold <florian@dold.me>2022-10-28 14:48:50 +0200
commitc32b80c1764f8a594bc085bd74382a5522b89c24 (patch)
treeb1b16fae5ce3c15f512eb366ef6f26a236fe1f8a /Makefile
parent390276fc53d3f337ef388729d0f1b0086d2a6a21 (diff)
build system: use makefile directly, not from template
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile131
1 files changed, 131 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 000000000..2cf44cc5b
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,131 @@
+# This Makefile has been placed in the public domain.
+
+src = src
+poname = taler-wallet-webex
+
+tsc = node_modules/typescript/bin/tsc
+pogen = node_modules/@gnu-taler/pogen/bin/pogen.js
+typedoc = node_modules/typedoc/bin/typedoc
+ava = node_modules/.bin/ava
+nyc = node_modules/nyc/bin/nyc.js
+git-archive-all = ./build-system/taler-build-scripts/archive-with-submodules/git_archive_all.py
+
+include ./build-system/config.mk
+
+.PHONY: dist
+dist:
+ $(git-archive-all) --include ./configure taler-wallet-$(shell git describe --tags --abbrev=0).tar.gz
+
+# Create tarball with git hash prefix in name
+.PHONY: dist-git
+dist-git:
+ $(git-archive-all) --include ./configure taler-wallet-$(shell git describe --tags).tar.gz
+
+.PHONY: publish
+publish:
+ pnpm i -r --frozen-lockfile
+ pnpm run compile
+ pnpm publish -r --no-git-checks
+
+# make documentation from docstrings
+.PHONY: typedoc
+typedoc:
+ $(typedoc) --out dist/typedoc --readme README
+
+.PHONY: clean
+clean:
+ pnpm run clean
+
+.PHONY: submodules-update
+submodules-update:
+ git submodule update --recursive --remote
+
+.PHONY: compile
+compile:
+ pnpm install -r --frozen-lockfile
+ pnpm run compile
+
+.PHONY: check
+check:
+ pnpm install -r --frozen-lockfile
+ pnpm run compile
+ pnpm run check
+
+.PHONY: config-lib
+config-lib:
+ pnpm install --frozen-lockfile --filter @gnu-taler/taler-config-lib...
+ cd ./packages/taler-config-lib/ && pnpm link -g
+
+.PHONY: anastasis-webui
+anastasis-webui:
+ pnpm install --frozen-lockfile --filter . --filter @gnu-taler/anastasis-webui...
+ pnpm run --filter @gnu-taler/anastasis-webui... build
+
+.PHONY: anastasis-webui-dist
+anastasis-webui-dist: anastasis-webui
+ (cd packages/anastasis-webui/dist && zip -r - fonts ui.html) > anastasis-webui.zip
+
+
+.PHONY: anastasis-webui-dev
+anastasis-webui-dev:
+ pnpm install --frozen-lockfile --filter @gnu-taler/anastasis-webui...
+ pnpm run --filter @gnu-taler/anastasis-webui... dev
+
+.PHONY: webextension
+webextension:
+ pnpm install --frozen-lockfile --filter @gnu-taler/taler-wallet-webextension...
+ pnpm run --filter @gnu-taler/taler-wallet-webextension... compile
+ cd ./packages/taler-wallet-webextension/ && ./pack.sh dev
+
+.PHONY: webextension-dev
+webextension-dev:
+ pnpm install --frozen-lockfile --filter @gnu-taler/taler-wallet-webextension...
+ pnpm run --filter @gnu-taler/taler-wallet-webextension... dev
+
+.PHONY: i18n
+i18n: compile
+ # extract translatable strings
+ find $(src) \( -name '*.ts' -or -name '*.tsx' \) ! -name '*.d.ts' \
+ | xargs node $(pogen) \
+ | msguniq \
+ | msgmerge src/i18n/poheader - \
+ > src/i18n/$(poname).pot
+ # merge existing translations
+ @for pofile in src/i18n/*.po; do \
+ echo merging $$pofile; \
+ msgmerge -o $$pofile $$pofile src/i18n/$(poname).pot; \
+ done;
+ # generate .ts file containing all translations
+ cat src/i18n/strings-prelude > src/i18n/strings.ts
+ @for pofile in src/i18n/*.po; do \
+ echo appending $$pofile; \
+ ./contrib/po2ts $$pofile >> src/i18n/strings.ts; \
+ done;
+ ./node_modules/.bin/prettier --config .prettierrc --write src/i18n/strings.ts
+
+# Some commands are only available when ./configure has been run
+
+ifndef prefix
+.PHONY: warn-noprefix install
+warn-noprefix:
+ @echo "no prefix configured, did you run ./configure?"
+install: warn-noprefix
+else
+install_target = $(prefix)/lib/taler-wallet-cli
+.PHONY: install
+install:
+ pnpm install --frozen-lockfile --filter @gnu-taler/taler-wallet-cli...
+ install -d $(prefix)/bin
+ install -d $(install_target)/bin
+ install -d $(install_target)/node_modules/taler-wallet-cli
+ install -d $(install_target)/node_modules/taler-wallet-cli/bin
+ install -d $(install_target)/node_modules/taler-wallet-cli/dist
+ install ./packages/taler-wallet-cli/dist/taler-wallet-cli.js $(install_target)/node_modules/taler-wallet-cli/dist/
+ install ./packages/taler-wallet-cli/dist/taler-wallet-cli.js.map $(install_target)/node_modules/taler-wallet-cli/dist/
+ install ./packages/taler-wallet-cli/bin/taler-wallet-cli $(install_target)/node_modules/taler-wallet-cli/bin/
+ ln -sf $(install_target)/node_modules/taler-wallet-cli/bin/taler-wallet-cli $(prefix)/bin/taler-wallet-cli
+endif
+
+.PHONY: lint
+lint:
+ ./node_modules/.bin/eslint --ext '.js,.ts,.tsx' 'src'