Makefile (3489B)
1 # This Makefile has been placed under the public domain 2 -include build-system/config.mk 3 4 # Defaults for an unconfigured tree. config.mk is included above, so whatever 5 # ./configure resolved wins over these; a plain `make` without ./configure still 6 # works and uses whichever cargo is on $PATH. No rustup required either way. 7 cargo ?= cargo 8 prefix ?= /usr/local 9 10 # Absolute DESTDIR or empty string if DESTDIR unset/empty 11 abs_destdir=$(abspath $(DESTDIR)) 12 13 bin_dir=$(abs_destdir)$(prefix)/bin 14 lib_dir=$(abs_destdir)$(prefix)/lib 15 share_dir=$(abs_destdir)$(prefix)/share 16 man_dir=$(share_dir)/man 17 18 all: build 19 20 .PHONY: build 21 build: 22 $(cargo) build --release --bin taler-magnet-bank --bin taler-cyclos --bin taler-wise --bin taler-apns-relay 23 24 .PHONY: install-files 25 install-files: 26 install -m 644 -D -t $(share_dir)/taler-magnet-bank/config.d adapters/taler-magnet-bank/magnet-bank.conf 27 install -m 644 -D -t $(share_dir)/taler-magnet-bank/sql common/taler-common/db/versioning.sql 28 install -m 644 -D -t $(share_dir)/taler-magnet-bank/sql adapters/taler-magnet-bank/db/magnet-bank*.sql 29 install -m 644 -D -t $(man_dir)/man1 doc/prebuilt/man/taler-magnet-bank.1 30 install -m 644 -D -t $(man_dir)/man5 doc/prebuilt/man/taler-magnet-bank.conf.5 31 install -m 644 -D -t $(share_dir)/taler-cyclos/config.d adapters/taler-cyclos/cyclos.conf 32 install -m 644 -D -t $(share_dir)/taler-cyclos/sql common/taler-common/db/versioning.sql 33 install -m 644 -D -t $(share_dir)/taler-cyclos/sql adapters/taler-cyclos/db/cyclos*.sql 34 install -m 644 -D -t $(man_dir)/man1 doc/prebuilt/man/taler-cyclos.1 35 install -m 644 -D -t $(man_dir)/man5 doc/prebuilt/man/taler-cyclos.conf.5 36 install -m 644 -D -t $(share_dir)/taler-wise/config.d adapters/taler-wise/wise.conf 37 install -m 644 -D -t $(share_dir)/taler-wise/sql common/taler-common/db/versioning.sql 38 install -m 644 -D -t $(share_dir)/taler-wise/sql adapters/taler-wise/db/wise*.sql 39 install -m 644 -D -t $(man_dir)/man1 doc/prebuilt/man/taler-wise.1 40 install -m 644 -D -t $(man_dir)/man5 doc/prebuilt/man/taler-wise.conf.5 41 install -m 644 -D -t $(share_dir)/taler-apns-relay/config.d taler-apns-relay/apns-relay.conf 42 install -m 644 -D -t $(share_dir)/taler-apns-relay/sql common/taler-common/db/versioning.sql 43 install -m 644 -D -t $(share_dir)/taler-apns-relay/sql taler-apns-relay/db/apns-relay*.sql 44 install -m 644 -D -t $(man_dir)/man1 doc/prebuilt/man/taler-apns-relay.1 45 install -m 644 -D -t $(man_dir)/man5 doc/prebuilt/man/taler-apns-relay.conf.5 46 install -D -t $(bin_dir) contrib/taler-magnet-bank-dbconfig 47 install -D -t $(bin_dir) contrib/taler-cyclos-dbconfig 48 install -D -t $(bin_dir) contrib/taler-wise-dbconfig 49 install -D -t $(bin_dir) contrib/taler-apns-relay-dbconfig 50 51 .PHONY: install 52 install: build install-files 53 install -D -t $(bin_dir) target/release/taler-magnet-bank 54 install -D -t $(bin_dir) target/release/taler-cyclos 55 install -D -t $(bin_dir) target/release/taler-wise 56 install -D -t $(bin_dir) target/release/taler-apns-relay 57 58 .PHONY: check 59 check: install-files 60 $(cargo) test 61 $(cargo) clippy --all-targets 62 63 .PHONY: doc 64 doc: 65 $(cargo) doc 66 67 .PHONY: deb 68 deb: 69 dpkg-buildpackage -b -uc -us 70 71 .PHONY: ci 72 ci: 73 contrib/ci/run-all-jobs.sh 74 75 .PHONY: fmt 76 fmt: 77 rustfmt-unstable --apply 78 79 .PHONY: coverage-cyclos 80 coverage-cyclos: 81 $(cargo) llvm-cov clean --workspace 82 $(cargo) llvm-cov test --no-clean 83 $(cargo) llvm-cov run --bin cyclos-harness --no-clean -- -c dev.conf logic 84 $(cargo) llvm-cov report --lcov --output-path ./target/lcov.info