aboutsummaryrefslogtreecommitdiff
path: root/build-system
diff options
context:
space:
mode:
Diffstat (limited to 'build-system')
-rw-r--r--build-system/Makefile88
-rw-r--r--build-system/configure.py4
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")