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