libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

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