summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile186
1 files changed, 186 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 000000000..b1103edaf
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,186 @@
+# This Makefile has been placed in the public domain.
+
+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 .config.mk
+
+# Let recursive Makefiles know that they're being invoked
+# from the top-level makefile.
+export TOPLEVEL := yes
+export TOP_DESTDIR := $(abspath $(DESTDIR))
+
+.PHONY: compile
+compile:
+ pnpm install -r --frozen-lockfile
+ pnpm run compile
+
+
+.PHONY: dist
+dist:
+ $(git-archive-all) \
+ --include ./configure \
+ --include ./packages/taler-wallet-cli/configure \
+ --include ./packages/anastasis-cli/configure \
+ --include ./packages/bank-ui/configure \
+ --include ./packages/taler-harness/configure \
+ --include ./packages/merchant-backoffice-ui/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
+
+
+.PHONY: prebuilt
+prebuilt:
+ ./contrib/cleanup-prebuilt-dir.sh
+ make backoffice-prebuilt
+ make backend-prebuilt
+ make bank-prebuilt
+ make challenger-prebuilt
+ make aml-backoffice-prebuilt
+ make anastasis-prebuilt
+ ./contrib/publish-prebuilt-dir.sh
+
+.PHONY: anastasis-prebuilt
+anastasis-prebuilt:
+ pnpm install --frozen-lockfile --filter @gnu-taler/anastasis-webui...
+ pnpm run --filter @gnu-taler/anastasis-webui... build
+ ./contrib/copy-anastasis-into-prebuilt.sh
+
+.PHONY: backoffice-prebuilt
+backoffice-prebuilt:
+ pnpm install --frozen-lockfile --filter @gnu-taler/merchant-backoffice-ui...
+ pnpm run --filter @gnu-taler/merchant-backoffice-ui... build
+ ./contrib/copy-backoffice-into-prebuilt.sh
+
+.PHONY: backend-prebuilt
+backend-prebuilt:
+ pnpm install --frozen-lockfile --filter @gnu-taler/merchant-backend-ui...
+ pnpm run --filter @gnu-taler/merchant-backend-ui... build
+ ./contrib/copy-backend-into-prebuilt.sh
+
+.PHONY: aml-backoffice-prebuilt
+aml-backoffice-prebuilt:
+ pnpm install --frozen-lockfile --filter @gnu-taler/aml-backoffice-ui...
+ pnpm run --filter @gnu-taler/aml-backoffice-ui... build
+ ./contrib/copy-aml-backoffice-into-prebuilt.sh
+
+#.PHONY: auditor-backoffice-prebuilt
+#auditor-backoffice-prebuilt:
+# pnpm install --frozen-lockfile --filter @gnu-taler/auditor-backoffice-ui...
+# pnpm run --filter @gnu-taler/auditor-backoffice-ui... build
+# ./contrib/copy-auditor-backoffice-into-prebuilt.sh
+
+.PHONY: challenger-prebuilt
+challenger-prebuilt:
+ pnpm install --frozen-lockfile --filter @gnu-taler/challenger-ui...
+ pnpm run --filter @gnu-taler/challenger-ui... build
+ ./contrib/copy-challenger-into-prebuilt.sh
+
+.PHONY: bank-prebuilt
+bank-prebuilt:
+ pnpm install --frozen-lockfile --filter @gnu-taler/bank-ui...
+ pnpm run --filter @gnu-taler/bank-ui... build
+ ./contrib/copy-bank-into-prebuilt.sh
+
+# 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:
+ 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/prod && zip -r - ./*) > 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 prod
+
+.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: embedded
+embedded:
+ pnpm install --frozen-lockfile --filter @gnu-taler/taler-wallet-embedded...
+ pnpm run --filter @gnu-taler/taler-wallet-embedded... compile
+ @echo built packages/taler-wallet-embedded/dist/taler-wallet-core-qjs.mjs
+
+.PHONY: lint
+lint:
+ ./node_modules/.bin/eslint --ext '.js,.ts,.tsx' 'src'
+
+
+.PHONY: install
+# Build and install everything
+install:
+ pnpm install --frozen-lockfile
+ pnpm run compile
+ $(MAKE) -C packages/taler-wallet-cli install-nodeps
+ $(MAKE) -C packages/anastasis-cli install-nodeps
+ $(MAKE) -C packages/taler-harness install-nodeps
+ $(MAKE) -C packages/bank-ui install-nodeps
+ $(MAKE) -C packages/merchant-backoffice-ui install-nodeps
+ $(MAKE) -C packages/aml-backoffice-ui install-nodeps
+ $(MAKE) -C packages/auditor-backoffice-ui install-nodeps
+
+
+.PHONY: install-tools
+# Install taler-wallet-cli, anastasis-cli and taler-harness
+install-tools:
+ pnpm install --frozen-lockfile --filter @gnu-taler/taler-wallet-cli... --filter @gnu-taler/anastasis-cli... --filter @gnu-taler/taler-harness...
+ pnpm run --filter @gnu-taler/taler-wallet-cli... --filter @gnu-taler/anastasis-cli... --filter @gnu-taler/taler-harness... compile
+ $(MAKE) -C packages/taler-wallet-cli install-nodeps
+ $(MAKE) -C packages/anastasis-cli install-nodeps
+ $(MAKE) -C packages/taler-harness install-nodeps
+
+.PHONY: check-migration
+
+check-migration:
+ taler-harness advanced wallet-dbcheck contrib/wallet-testdata/wallet-dbgen-0.9.4-dev.8