Makefile (5245B)
1 # This Makefile has been placed under the public domain 2 3 -include build-system/config.mk 4 5 # Default target, must be at the top. 6 # Should be changed with care to not break (Debian) packaging. 7 all: build 8 9 git-archive-all = ./build-system/taler-build-scripts/archive-with-submodules/git_archive_all.py 10 git_tag=$(shell git describe --tags) 11 gradle_version=$(shell ./gradlew -q libeufinVersion) 12 13 define versions_check = 14 if test $(git_tag) != $(gradle_version); \ 15 then echo WARNING: Project version from Gradle: $(gradle_version) differs from current Git tag: $(git_tag); fi 16 endef 17 18 # Absolute DESTDIR or empty string if DESTDIR unset/empty 19 abs_destdir=$(abspath $(DESTDIR)) 20 21 share_dir=$(abs_destdir)$(prefix)/share 22 man_dir=$(share_dir)/man 23 bin_dir=$(abs_destdir)$(prefix)/bin 24 lib_dir=$(abs_destdir)$(prefix)/lib 25 26 27 # While the gradle command sounds like it's installing something, 28 # it's like a destdir install that only touches the source tree. 29 .PHONY: build 30 build: 31 ./gradlew libeufin-bank:installShadowDist libeufin-nexus:installShadowDist libeufin-ebisync:installShadowDist 32 33 34 .PHONY: dist 35 dist: 36 $(call versions_check) 37 mkdir -p build/distributions 38 $(git-archive-all) --include ./configure build/distributions/libeufin-$(gradle_version)-sources.tar.gz 39 40 .PHONY: deb 41 deb: 42 dpkg-buildpackage -rfakeroot -b -uc -us 43 44 .PHONY: install-nobuild-files 45 install-nobuild-files: 46 install -m 644 -D -t $(share_dir)/libeufin/config.d contrib/currencies.conf 47 install -m 644 -D -t $(share_dir)/libeufin/config.d contrib/bank.conf 48 install -m 644 -D -t $(share_dir)/libeufin/config.d contrib/nexus.conf 49 install -m 644 -D -t $(share_dir)/libeufin/sql database-versioning/versioning.sql 50 install -m 644 -D -t $(share_dir)/libeufin/sql database-versioning/libeufin-bank*.sql 51 install -m 644 -D -t $(share_dir)/libeufin/sql database-versioning/libeufin-nexus*.sql 52 install -m 644 -D -t $(share_dir)/libeufin/sql database-versioning/libeufin-conversion*.sql 53 install -m 644 -D -t $(share_dir)/libeufin-ebisync/config.d libeufin-ebisync/ebisync.conf 54 install -m 644 -D -t $(share_dir)/libeufin-ebisync/sql database-versioning/versioning.sql 55 install -m 644 -D -t $(share_dir)/libeufin-ebisync/sql database-versioning/libeufin-ebisync*.sql 56 install -D -t $(bin_dir) contrib/libeufin-dbconfig 57 install -D -t $(bin_dir) contrib/libeufin-ebisync-dbconfig 58 install -D -t $(bin_dir) contrib/libeufin-tan-*.sh 59 install -d $(share_dir)/libeufin/spa 60 cp contrib/wallet-core/bank/* $(share_dir)/libeufin/spa/ 61 install -d $(share_dir)/libeufin-ebisync/spa 62 cp libeufin-ebisync/src/spa/* $(share_dir)/libeufin-ebisync/spa/ 63 64 .PHONY: install 65 install: build install-nobuild-files 66 # Install libeufin-bank 67 install -D -t $(bin_dir) libeufin-bank/build/install/libeufin-bank-shadow/bin/libeufin-bank 68 install -m 644 -D -t $(man_dir)/man1 doc/prebuilt/man/libeufin-bank.1 69 install -m 644 -D -t $(man_dir)/man5 doc/prebuilt/man/libeufin-bank.conf.5 70 install -m 644 -D -t $(lib_dir) libeufin-bank/build/install/libeufin-bank-shadow/lib/libeufin-bank-all.jar 71 # Install libeufin-nexus 72 install -D -t $(bin_dir) libeufin-nexus/build/install/libeufin-nexus-shadow/bin/libeufin-nexus 73 install -m 644 -D -t $(man_dir)/man1 doc/prebuilt/man/libeufin-nexus.1 74 install -m 644 -D -t $(man_dir)/man5 doc/prebuilt/man/libeufin-nexus.conf.5 75 install -m 644 -D -t $(lib_dir) libeufin-nexus/build/install/libeufin-nexus-shadow/lib/libeufin-nexus-all.jar 76 # Install libeufin-ebisync 77 install -D -t $(bin_dir) libeufin-ebisync/build/install/libeufin-ebisync-shadow/bin/libeufin-ebisync 78 install -m 644 -D -t $(lib_dir) libeufin-ebisync/build/install/libeufin-ebisync-shadow/lib/libeufin-ebisync-all.jar 79 80 .PHONY: assemble 81 assemble: 82 ./gradlew assemble 83 84 .PHONY: check 85 check: install-nobuild-files 86 ./gradlew check 87 88 .PHONY: bank-test 89 bank-test: install-nobuild-files 90 ./gradlew :libeufin-bank:test --tests $(test) -i 91 92 .PHONY: nexus-test 93 nexus-test: install-nobuild-files 94 ./gradlew :libeufin-nexus:test --tests $(test) -i 95 96 .PHONY: common-test 97 common-test: install-nobuild-files 98 ./gradlew :libeufin-common:test --tests $(test) -i 99 100 .PHONY: ebics-test 101 ebics-test: install-nobuild-files 102 ./gradlew :libeufin-ebics:test --tests $(test) -i 103 104 .PHONY: testbench-test 105 testbench-test: install-nobuild-files 106 ./gradlew :testbench:test --tests $(test) -i 107 108 .PHONY: ebisync-test 109 ebisync-test: install-nobuild-files 110 ./gradlew :libeufin-ebisync:test --tests $(test) -i 111 112 .PHONY: nexus-testbench 113 nexus-testbench: install-nobuild-files 114 ./gradlew :testbench:install && \ 115 cd testbench && \ 116 ./build/install/libeufin-testbench-test/bin/libeufin-testbench-test nexus $(platform) 117 118 .PHONY: ebisync-testbench 119 ebisync-testbench: install-nobuild-files 120 ./gradlew :testbench:install && \ 121 cd testbench && \ 122 ./build/install/libeufin-testbench-test/bin/libeufin-testbench-test ebisync $(platform) 123 124 .PHONY: doc 125 doc: 126 ./gradlew :dokkaGeneratePublicationHtml 127 echo "Open build/dokka/html/index.html" 128 129 .PHONY: ci 130 ci: 131 contrib/ci/run-all-jobs.sh 132 133 .PHONY: bank-bench-db 134 bank-bench-db: install-nobuild-files 135 ./gradlew cleanTest :libeufin-bank:test --tests Bench.benchDb -i --no-build-cache 136 137 .PHONY: nexus-bench-db 138 nexus-bench-db: install-nobuild-files 139 ./gradlew cleanTest :libeufin-nexus:test --tests Bench.benchDb -i --no-build-cache 140