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