Makefile (4571B)
1 # This Makefile has been placed in the public domain. 2 3 archive = ./build-system/archive.py 4 configurable-packages = $(patsubst %/,%,$(dir $(wildcard packages/*/Makefile))) 5 configure-files = configure $(addsuffix /configure,$(configurable-packages)) 6 archive-includes = $(addprefix --include ,$(configure-files)) 7 8 include .config.mk 9 10 # Let recursive Makefiles know that they're being invoked 11 # from the top-level makefile. 12 export TOPLEVEL := yes 13 export TOP_DESTDIR := $(abspath $(DESTDIR)) 14 15 .PHONY: build 16 build: 17 pnpm install -r --frozen-lockfile --filter '!@gnu-taler/qa-tooling' 18 pnpm run build 19 20 21 .PHONY: dist 22 dist: 23 $(archive) $(archive-includes) \ 24 taler-typescript-core-$(shell git describe --tags --abbrev=0 | sed -e 's/^v//').tar.gz 25 26 # Create tarball with git hash prefix in name 27 .PHONY: dist-git 28 dist-git: 29 $(archive) $(archive-includes) \ 30 taler-typescript-core-$(shell git describe --tags).tar.gz 31 32 .PHONY: publish 33 publish: 34 pnpm i -r --frozen-lockfile --filter '!@gnu-taler/qa-tooling' 35 pnpm run build 36 pnpm publish -r --no-git-checks 37 38 .PHONY: clean 39 clean: 40 pnpm run clean 41 42 .PHONY: submodules-update 43 submodules-update: 44 git submodule update --recursive --remote 45 46 .PHONY: check 47 check: 48 pnpm install -r --frozen-lockfile 49 pnpm run build 50 pnpm run check 51 52 .PHONY: config-lib 53 config-lib: 54 pnpm install --frozen-lockfile --filter '!@gnu-taler/qa-tooling' --filter @gnu-taler/taler-config-lib... 55 cd ./packages/taler-config-lib/ && pnpm link -g 56 57 .PHONY: anastasis-webui 58 anastasis-webui: 59 pnpm install --frozen-lockfile --filter '!@gnu-taler/qa-tooling' --filter . --filter @gnu-taler/anastasis-webui... 60 pnpm run --filter @gnu-taler/anastasis-webui... build 61 62 .PHONY: anastasis-webui-dist 63 anastasis-webui-dist: anastasis-webui 64 (cd packages/anastasis-webui/dist/prod && zip -r - ./*) > anastasis-webui.zip 65 66 67 .PHONY: anastasis-webui-dev 68 anastasis-webui-dev: 69 pnpm install --frozen-lockfile --filter '!@gnu-taler/qa-tooling' --filter @gnu-taler/anastasis-webui... 70 pnpm run --filter @gnu-taler/anastasis-webui... dev 71 72 .PHONY: webextension 73 webextension: 74 pnpm install --frozen-lockfile --filter '!@gnu-taler/qa-tooling' --filter @gnu-taler/taler-wallet-webextension... 75 pnpm run --filter @gnu-taler/taler-wallet-webextension... build 76 cd ./packages/taler-wallet-webextension/ && ./pack.sh prod 77 78 .PHONY: webextension-dev 79 webextension-dev: 80 pnpm install --frozen-lockfile --filter '!@gnu-taler/qa-tooling' --filter @gnu-taler/taler-wallet-webextension... 81 pnpm run --filter @gnu-taler/taler-wallet-webextension... dev 82 83 .PHONY: embedded 84 embedded: 85 pnpm install --frozen-lockfile --filter '!@gnu-taler/qa-tooling' --filter @gnu-taler/taler-wallet-embedded... 86 pnpm run --filter @gnu-taler/taler-wallet-embedded... build 87 @echo built packages/taler-wallet-embedded/dist/taler-wallet-core-qjs.mjs 88 89 .PHONY: lint 90 lint: 91 # (cd packages/qa-tooling && pnpm install) 92 ./packages/qa-tooling/bin/eslint.mjs . 93 94 .PHONY: ast-grep 95 ast-grep: 96 ast-grep scan -c contrib/sgconfig.yml 97 98 .PHONY: install 99 # Build and install everything 100 install: 101 pnpm install --frozen-lockfile --filter '!@gnu-taler/qa-tooling' 102 pnpm run build 103 $(MAKE) -C packages/taler-wallet-cli install-nodeps 104 $(MAKE) -C packages/anastasis-cli install-nodeps 105 $(MAKE) -C packages/taler-harness install-nodeps 106 $(MAKE) -C packages/libeufin-bank-webui install-nodeps 107 $(MAKE) -C packages/taler-merchant-webui install-nodeps 108 $(MAKE) -C packages/taler-auditor-webui install-nodeps 109 $(MAKE) -C packages/taler-exchange-kyc-webui install-nodeps 110 $(MAKE) -C packages/taler-exchange-aml-webui install-nodeps 111 112 113 .PHONY: install-tools 114 # Install taler-wallet-cli, anastasis-cli and taler-harness 115 install-tools: 116 pnpm install --frozen-lockfile --filter '!@gnu-taler/qa-tooling' --filter @gnu-taler/taler-wallet-cli... --filter @gnu-taler/anastasis-cli... --filter @gnu-taler/taler-harness... 117 pnpm run --filter @gnu-taler/taler-wallet-cli... --filter @gnu-taler/anastasis-cli... --filter @gnu-taler/taler-harness... build 118 $(MAKE) -C packages/taler-wallet-cli install-nodeps 119 $(MAKE) -C packages/anastasis-cli install-nodeps 120 $(MAKE) -C packages/taler-harness install-nodeps 121 122 .PHONY: install-selenium 123 install-selenium: 124 $(MAKE) -C packages/taler-harness install-selenium 125 126 .PHONY: gana 127 gana: 128 ./contrib/gana_update.sh 129 130 # The recorded databases are replayed twice: as they are, and through the 131 # in-place migration to the native schema, which has to produce a wallet that 132 # answers identically. 133 .PHONY: check-migration 134 check-migration: 135 taler-harness advanced wallet-dbcheck --native-migration contrib/wallet-testdata/wallet-dbgen-0.9.4-dev.8