diff options
Diffstat (limited to 'build-system')
-rw-r--r-- | build-system/Makefile | 88 | ||||
-rw-r--r-- | build-system/configure.py | 4 |
2 files changed, 92 insertions, 0 deletions
diff --git a/build-system/Makefile b/build-system/Makefile new file mode 100644 index 000000000..342f7c144 --- /dev/null +++ b/build-system/Makefile @@ -0,0 +1,88 @@ +src = src +poname = taler-wallet-webex + +tsc = node_modules/typescript/bin/tsc +pogen = node_modules/pogen/bin/pogen.js +typedoc = node_modules/typedoc/bin/typedoc +ava = node_modules/.bin/ava +nyc = node_modules/nyc/bin/nyc.js + +include ./build-system/config.mk + +.PHONY: compile +compile: + pnpm i + pnpm run compile + +.PHONY: dist +dist: + git archive --format=tar.gz HEAD -o taler-wallet.tar.gz + +# 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: check +check: compile + pnpm run check + +.PHONY: webextensions +webextensions: rollup + ./webextension/pack.sh + +.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: # compile + 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/bin/taler-wallet-cli $(install_target)/node_modules/taler-wallet-cli/bin/ + ln -sft $(prefix)/bin $(install_target)/node_modules/taler-wallet-cli/bin/taler-wallet-cli +endif + +.PHONY: rollup +rollup: compile + ./node_modules/.bin/rollup -c + +.PHONY: lint +lint: + ./node_modules/.bin/eslint --ext '.js,.ts,.tsx' 'src' diff --git a/build-system/configure.py b/build-system/configure.py index 4595aae10..32b32602c 100644 --- a/build-system/configure.py +++ b/build-system/configure.py @@ -6,6 +6,7 @@ import talerbuildconfig as tbc import sys +import shutil if getattr(tbc, "serialversion", 0) < 2: print("talerbuildconfig outdated, please update the build-common submodule and/or bootstrap") @@ -18,3 +19,6 @@ b.add_tool(tbc.PosixTool("find")) b.add_tool(tbc.NodeJsTool(version_spec=">=12")) b.add_tool(tbc.YarnTool()) b.run() + +print("copying Makefile") +shutil.copyfile("build-system/Makefile", "Makefile") |