taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

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