Makefile (4634B)
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 clean 50 pnpm run build 51 pnpm run check 52 53 .PHONY: config-lib 54 config-lib: 55 pnpm install --frozen-lockfile --filter '!@gnu-taler/qa-tooling' --filter @gnu-taler/taler-config-lib... 56 cd ./packages/taler-config-lib/ && pnpm link -g 57 58 .PHONY: anastasis-webui 59 anastasis-webui: 60 pnpm install --frozen-lockfile --filter '!@gnu-taler/qa-tooling' --filter . --filter @gnu-taler/anastasis-webui... 61 pnpm run --filter @gnu-taler/anastasis-webui... build 62 63 .PHONY: anastasis-webui-dist 64 anastasis-webui-dist: anastasis-webui 65 (cd packages/anastasis-webui/dist/prod && zip -r - ./*) > anastasis-webui.zip 66 67 68 .PHONY: anastasis-webui-dev 69 anastasis-webui-dev: 70 pnpm install --frozen-lockfile --filter '!@gnu-taler/qa-tooling' --filter @gnu-taler/anastasis-webui... 71 pnpm run --filter @gnu-taler/anastasis-webui... dev 72 73 .PHONY: webextension 74 webextension: 75 pnpm install --frozen-lockfile --filter '!@gnu-taler/qa-tooling' --filter @gnu-taler/wallet-webui... 76 pnpm run --filter @gnu-taler/wallet-webui build:store 77 78 .PHONY: webextension-dev 79 webextension-dev: 80 pnpm install --frozen-lockfile --filter '!@gnu-taler/qa-tooling' --filter @gnu-taler/wallet-webui... 81 pnpm run --filter @gnu-taler/wallet-webui 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 pnpm run --filter @gnu-taler/wallet-webui build:harness 104 $(MAKE) -C packages/taler-wallet-cli install-nodeps 105 $(MAKE) -C packages/anastasis-cli install-nodeps 106 $(MAKE) -C packages/taler-harness install-nodeps 107 $(MAKE) -C packages/wallet-webui install-nodeps 108 $(MAKE) -C packages/libeufin-bank-webui install-nodeps 109 $(MAKE) -C packages/taler-merchant-webui install-nodeps 110 $(MAKE) -C packages/taler-auditor-webui install-nodeps 111 $(MAKE) -C packages/challenger-webui install-nodeps 112 $(MAKE) -C packages/taler-exchange-kyc-webui install-nodeps 113 $(MAKE) -C packages/taler-exchange-aml-webui install-nodeps 114 115 116 .PHONY: install-tools 117 # Install taler-wallet-cli, anastasis-cli and taler-harness 118 install-tools: 119 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... 120 pnpm run --filter @gnu-taler/taler-wallet-cli... --filter @gnu-taler/anastasis-cli... --filter @gnu-taler/taler-harness... build 121 $(MAKE) -C packages/taler-wallet-cli install-nodeps 122 $(MAKE) -C packages/anastasis-cli install-nodeps 123 $(MAKE) -C packages/taler-harness install-nodeps 124 125 .PHONY: install-selenium 126 install-selenium: 127 $(MAKE) -C packages/taler-harness install-selenium 128 129 .PHONY: gana 130 gana: 131 ./contrib/gana_update.sh 132 133 # The recorded databases are replayed twice: as they are, and through the 134 # in-place migration to the native schema, which has to produce a wallet that 135 # answers identically. 136 .PHONY: check-migration 137 check-migration: 138 taler-harness advanced wallet-dbcheck --native-migration contrib/wallet-testdata/wallet-dbgen-0.9.4-dev.8