libeufin

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

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