-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
108 lines (76 loc) · 2.73 KB
/
Copy pathMakefile
File metadata and controls
108 lines (76 loc) · 2.73 KB
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
INSTALL ?= install
BIN_NAME = kirad
BIN_PATH = target/release/$(BIN_NAME)
PKGNAME=kira
PKG_PREFIX = pkg
DATA_PREFIX = kirad/conf
PREFIX ?= /usr/local
SYSTEMD_DIR = $(PREFIX)/lib/systemd/system
BIN_DIR = $(PREFIX)/bin
SHARE_DIR = $(PREFIX)/share/$(PKGNAME)
default: build
.PHONY: build
build:
cargo build
$(BIN_PATH):
cargo build --release
.PHONY: build-release
build-release: # force rebuild of release binary
cargo build --release
DOCFLAGS = --all-features --open --no-deps
.PHONY: doc
doc: lib-doc r2kad-doc forwarding-doc
%-doc:
cargo doc --package=kira-$* $(DOCFLAGS)
# Compile m4 files
$(PKG_PREFIX)/%: $(PKG_PREFIX)/%.m4 FORCE
m4 -D BIN_DIR=$(BIN_DIR) -D SHARE_DIR=$(SHARE_DIR) $< > $@
# Always compile m4 files to ensure propagation of current BIN_DIR and SHARE_DIR
# Workaround as GNU Make doesn't support wildcard patterns in .PHONY
.PHONY: FORCE
FORCE:
.PHONY: install
install: $(PKG_PREFIX)/kirad.service $(PKG_PREFIX)/kirad@.service $(DATA_PREFIX)/nftables.conf $(BIN_PATH)
$(INSTALL) -m 755 -d $(SYSTEMD_DIR)
$(INSTALL) -m 644 $(PKG_PREFIX)/kirad.service $(SYSTEMD_DIR)/kirad.service
$(INSTALL) -m 644 $(PKG_PREFIX)/kirad@.service $(SYSTEMD_DIR)/kirad@.service
systemctl daemon-reload
$(INSTALL) -m 755 -d $(SHARE_DIR)
$(INSTALL) -m 644 $(DATA_PREFIX)/nftables.conf $(SHARE_DIR)/nftables.conf
$(INSTALL) -m 755 $(BIN_PATH) $(BIN_DIR)
.PHONY: uninstall
uninstall:
rm $(BIN_DIR)/kirad
rm $(SYSTEMD_DIR)/kirad.service
rm $(SYSTEMD_DIR)/kirad@.service
systemctl daemon-reload
rm -r $(SHARE_DIR)/
.PHONY: build-image-supervisord build-image-small-k build-image-dns-dht
build-images: build-image-supervisord build-image-small-k build-image-dns-dht
build-image-supervisord:
docker build -t kirad -f docker/Dockerfile.supervisord .
build-image-small-k:
docker build -t kirad:small-k -f docker/Dockerfile.supervisord --build-arg FEATURES="small_buckets,api" .
build-image-dns-dht:
docker build -t kira-dns-dht --build-context kirad:latest=docker-image://kirad:small-k examples/dns-4in6-tunnel-example/base
.PHONY: cargo-%
cargo-%:
@command -v $* >/dev/null || cargo install $*
.PHONY: build-debian-%
build-debian-%: override PREFIX = /usr
build-debian-%: cargo-cross $(PKG_PREFIX)/kirad.service $(PKG_PREFIX)/kirad@.service
cross build --target $*-unknown-linux-musl --release
.PHONY: pkg-debian-%
pkg-debian-%: build-debian-% cargo-cargo-deb
cargo deb --target $*-unknown-linux-musl -p kirad --no-build --no-strip
.PHONY: test
test: test-lib test-r2kad test-forwarding
test-%:
cargo test --package=kira-$*
.PHONY: jaeger jaeger-clean clean-logs
jaeger:
docker compose -f tests/jaeger/compose.yaml up --wait
jaeger-clean:
docker compose -f tests/jaeger/compose.yaml down -v
clean-logs: jaeger-clean
find -type f -name "k*.log" -delete