libeufin

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

Makefile (3075B)


      1 # This Makefile has been placed under the public domain
      2 -include .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 libeufin-bank --bin libeufin-nexus --bin libeufin-ebisync
     23 
     24 .PHONY: install-files
     25 install-files:
     26 	install -m 644 -D -t $(share_dir)/libeufin/config.d contrib/currencies.conf
     27 	install -m 644 -D -t $(share_dir)/libeufin/config.d contrib/bank.conf
     28 	install -m 644 -D -t $(share_dir)/libeufin/config.d contrib/nexus.conf
     29 	install -m 644 -D -t $(share_dir)/libeufin/sql database-versioning/versioning.sql
     30 	install -m 644 -D -t $(share_dir)/libeufin/sql database-versioning/libeufin-bank*.sql
     31 	install -m 644 -D -t $(share_dir)/libeufin/sql database-versioning/libeufin-nexus*.sql
     32 	install -m 644 -D -t $(share_dir)/libeufin/sql database-versioning/libeufin-conversion*.sql
     33 	install -m 644 -D -t $(share_dir)/libeufin-ebisync/config.d libeufin-ebisync/ebisync.conf
     34 	install -m 644 -D -t $(share_dir)/libeufin-ebisync/sql database-versioning/versioning.sql
     35 	install -m 644 -D -t $(share_dir)/libeufin-ebisync/sql database-versioning/ebisync*.sql
     36 	install -m 644 -D -t $(man_dir)/man1 doc/prebuilt/man/libeufin-bank.1
     37 	install -m 644 -D -t $(man_dir)/man5 doc/prebuilt/man/libeufin-bank.conf.5
     38 	install -m 644 -D -t $(man_dir)/man1 doc/prebuilt/man/libeufin-nexus.1
     39 	install -m 644 -D -t $(man_dir)/man5 doc/prebuilt/man/libeufin-nexus.conf.5
     40 	install -m 644 -D -t $(man_dir)/man1 doc/prebuilt/man/libeufin-ebisync.1
     41 	install -m 644 -D -t $(man_dir)/man5 doc/prebuilt/man/libeufin-ebisync.conf.5
     42 	install -D -t $(bin_dir) contrib/libeufin-dbconfig
     43 	install -D -t $(bin_dir) contrib/libeufin-ebisync-dbconfig
     44 	install -D -t $(bin_dir) contrib/libeufin-tan-*.sh
     45 	install -d $(share_dir)/libeufin/spa
     46 	cp contrib/spa/* $(share_dir)/libeufin/spa/
     47 	install -d $(share_dir)/libeufin-ebisync/spa
     48 	cp libeufin-ebisync/spa/* $(share_dir)/libeufin-ebisync/spa/
     49 
     50 .PHONY: install
     51 install: build install-files
     52 	install -D -t $(bin_dir) target/release/libeufin-bank
     53 	install -D -t $(bin_dir) target/release/libeufin-nexus
     54 	install -D -t $(bin_dir) target/release/libeufin-ebisync
     55 
     56 .PHONY: check
     57 check: install-files
     58 	$(cargo) test
     59 	$(cargo) clippy --all-targets
     60 
     61 .PHONY: doc
     62 doc:
     63 	$(cargo) doc
     64 
     65 .PHONY: deb
     66 deb:
     67 	dpkg-buildpackage -b -uc -us
     68 
     69 .PHONY: ci
     70 ci:
     71 	contrib/ci/run-all-jobs.sh
     72 
     73 .PHONY: fmt
     74 fmt:
     75 	rustfmt-unstable --apply
     76 
     77 .PHONY: bank-bench-db
     78 bank-bench-db: install-files
     79 	$(cargo) test -rp libeufin-bank bench_db -- --nocapture
     80 
     81 .PHONY: nexus-bench-db
     82 nexus-bench-db: install-files
     83 	$(cargo) test -rp libeufin-nexus bench_db -- --nocapture