summaryrefslogtreecommitdiff
path: root/Makefile
blob: e947e4642694478a28e321f1493bd67784ed3ec3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# This Makefile has been placed under the public domain

include build-system/config.mk

all: assemble
git-archive-all = ./build-system/taler-build-scripts/archive-with-submodules/git_archive_all.py
git_tag=$(shell git describe --tags)
gradle_version=$(shell ./gradlew -q libeufinVersion)

define versions_check =
  if test $(git_tag) != "v$(gradle_version)"; \
    then echo WARNING: Project version from Gradle: $(gradle_version) differs from current Git tag: $(git_tag); fi
endef

# Absolute DESTDIR or empty string if DESTDIR unset/empty
abs_destdir=$(abspath $(DESTDIR))

bank_sql_dir=$(abs_destdir)$(prefix)/share/libeufin-bank/sql
bank_config_dir=$(abs_destdir)$(prefix)/share/libeufin-bank/config.d
spa_dir=$(abs_destdir)$(prefix)/share/libeufin-bank/spa

# NOT installyed yet along "make install"
nexus_sql_dir=$(abs_destdir)$(prefix)/share/libeufin-nexus/sql
nexus_config_dir=$(abs_destdir)$(prefix)/share/libeufin-nexus/config.d

.PHONY: dist
dist:
	$(call versions_check)
	mkdir -p build/distributions
	$(git-archive-all) --include ./configure build/distributions/libeufin-$(shell ./gradlew -q libeufinVersion)-sources.tar.gz

.PHONY: deb
deb:
	dpkg-buildpackage -rfakeroot -b -uc -us

.PHONY: install
install: install-bank

install-bank-files:
	install -d $(bank_config_dir)
	install contrib/libeufin-bank.conf $(bank_config_dir)/
	install contrib/currencies.conf $(bank_config_dir)/
	install -D database-versioning/libeufin-bank*.sql -t $(bank_sql_dir)
	install -D database-versioning/versioning.sql -t $(bank_sql_dir)

.PHONY: install-bank
install-bank: install-bank-files
	install -d $(spa_dir)
	cp contrib/wallet-core/demobank/* $(spa_dir)/
	./gradlew bank:installShadowDist
	install -d $(abs_destdir)$(prefix)
	cp -r bank/build/install/bank-shadow/* -d $(abs_destdir)$(prefix)
	cp -r contrib/libeufin-tan-*.sh -d $(abs_destdir)$(prefix)/bin

install-nexus:
	install -d $(nexus_config_dir)
	install contrib/libeufin-nexus.conf $(nexus_config_dir)/
	install -D database-versioning/libeufin-nexus*.sql -t $(nexus_sql_dir)
	install -D database-versioning/versioning.sql -t $(nexus_sql_dir)
	./gradlew nexus:installShadowDist
	cp -r nexus/build/install/nexus-shadow/* -d $(abs_destdir)$(prefix)

.PHONY: assemble
assemble:
	./gradlew assemble

.PHONY: check
check: install-bank-files
	./gradlew check

.PHONY: test
test: install-bank-files
	./gradlew test --tests $(test) -i