]>
Commit | Line | Data |
---|---|---|
6285b251 | 1 | include defines.mk |
de779814 | 2 | |
209bb433 DM |
3 | ARCH:=$(shell dpkg-architecture -qDEB_BUILD_ARCH) |
4 | GITVERSION:=$(shell git rev-parse HEAD) | |
5 | ||
bb5c7707 | 6 | SUBDIRS := etc www docs |
13b77d10 | 7 | |
6285b251 WB |
8 | # Binaries usable by users |
9 | USR_BIN := \ | |
10 | proxmox-backup-client \ | |
7c4dd946 | 11 | pxar |
6285b251 WB |
12 | |
13 | # Binaries usable by admins | |
14 | USR_SBIN := proxmox-backup-manager | |
15 | ||
16 | # Binaries for services: | |
17 | SERVICE_BIN := \ | |
18 | proxmox-backup-api \ | |
19 | proxmox-backup-proxy | |
20 | ||
13b77d10 WB |
21 | ifeq ($(BUILD_MODE), release) |
22 | CARGO_BUILD_ARGS += --release | |
6285b251 | 23 | COMPILEDIR := target/release |
13b77d10 WB |
24 | else |
25 | COMPILEDIR := target/debug | |
26 | endif | |
27 | ||
6f0069ae WB |
28 | ifeq ($(valgrind), yes) |
29 | CARGO_BUILD_ARGS += --features valgrind | |
30 | endif | |
31 | ||
6285b251 WB |
32 | COMPILED_BINS := \ |
33 | $(addprefix $(COMPILEDIR)/,$(USR_BIN) $(USR_SBIN) $(SERVICE_BIN)) | |
34 | ||
36d74cd6 DM |
35 | DEBS= ${PACKAGE}-server_${PKGVER}-${PKGREL}_${ARCH}.deb ${PACKAGE}-client_${PKGVER}-${PKGREL}_${ARCH}.deb |
36 | ||
209bb433 DM |
37 | |
38 | DESTDIR= | |
de779814 | 39 | |
13b77d10 WB |
40 | all: cargo-build $(SUBDIRS) |
41 | ||
42 | .PHONY: $(SUBDIRS) | |
43 | $(SUBDIRS): | |
44 | $(MAKE) -C $@ | |
de779814 | 45 | |
cd3b9a06 | 46 | test: |
cc119edb | 47 | #cargo test test_broadcast_future |
3dceb9b3 | 48 | #cargo test $(CARGO_BUILD_ARGS) |
cc119edb | 49 | cargo test $(tests) $(CARGO_BUILD_ARGS) |
f7dd683b | 50 | |
cd3b9a06 | 51 | doc: |
18a1aa48 | 52 | cargo doc --no-deps $(CARGO_BUILD_ARGS) |
d78345bc | 53 | |
13b77d10 | 54 | # always re-create this dir |
7ba5fb4a | 55 | # but also copy the local target/ dir as a build-cache |
13b77d10 WB |
56 | .PHONY: build |
57 | build: | |
de779814 | 58 | rm -rf build |
05138714 | 59 | cargo build --release |
c28e6f4b | 60 | rsync -a debian Makefile defines.mk Cargo.toml Cargo.lock \ |
32ad03f3 | 61 | src zstd-sys $(SUBDIRS) \ |
ec56f07b | 62 | target tests build/ |
b369f720 WB |
63 | $(foreach i,$(SUBDIRS), \ |
64 | $(MAKE) -C build/$(i) clean ;) | |
de779814 | 65 | |
13b77d10 | 66 | .PHONY: deb |
36d74cd6 DM |
67 | deb: $(DEBS) |
68 | $(DEBS): build | |
0ae7ac15 | 69 | cd build; dpkg-buildpackage -b -us -uc --no-pre-clean |
36d74cd6 | 70 | lintian $(DEBS) |
18fad344 WB |
71 | |
72 | .PHONY: dsc | |
73 | dsc: $(DSC) | |
74 | $(DSC): build | |
75 | cd build; dpkg-buildpackage -S -us -uc -d -nc | |
76 | lintian $(DSC) | |
de779814 | 77 | |
209bb433 | 78 | distclean: clean |
de779814 DM |
79 | |
80 | clean: | |
b369f720 WB |
81 | $(foreach i,$(SUBDIRS), \ |
82 | $(MAKE) -C $(i) clean ;) | |
de779814 | 83 | cargo clean |
1a9cb80c | 84 | rm -rf *.deb *.dsc *.tar.gz *.buildinfo *.changes build |
d3cb69c4 DM |
85 | find . -name '*~' -exec rm {} ';' |
86 | ||
209bb433 | 87 | .PHONY: dinstall |
36d74cd6 DM |
88 | dinstall: ${DEBS} |
89 | dpkg -i ${DEBS} | |
6285b251 | 90 | |
bb5c7707 DM |
91 | # make sure we build binaries before docs |
92 | docs: cargo-build | |
93 | ||
13b77d10 | 94 | .PHONY: cargo-build |
cd3b9a06 | 95 | cargo-build: |
13b77d10 | 96 | cargo build $(CARGO_BUILD_ARGS) |
6285b251 | 97 | |
13b77d10 | 98 | $(COMPILED_BINS): cargo-build |
6285b251 | 99 | |
d1596102 WB |
100 | .PHONY: lint |
101 | lint: | |
102 | cargo clippy -- -A clippy::all -D clippy::correctness | |
103 | ||
6285b251 WB |
104 | install: $(COMPILED_BINS) |
105 | install -dm755 $(DESTDIR)$(BINDIR) | |
106 | $(foreach i,$(USR_BIN), \ | |
107 | install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(BINDIR)/ ;) | |
108 | install -dm755 $(DESTDIR)$(SBINDIR) | |
109 | $(foreach i,$(USR_SBIN), \ | |
110 | install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(SBINDIR)/ ;) | |
304db5da | 111 | install -dm755 $(DESTDIR)$(LIBEXECDIR)/proxmox-backup |
6285b251 | 112 | $(foreach i,$(SERVICE_BIN), \ |
304db5da | 113 | install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(LIBEXECDIR)/proxmox-backup/ ;) |
6285b251 | 114 | $(MAKE) -C www install |
bb5c7707 | 115 | $(MAKE) -C docs install |