]>
Commit | Line | Data |
---|---|---|
da0e1e40 | 1 | include /usr/share/dpkg/default.mk |
6285b251 | 2 | include defines.mk |
de779814 | 3 | |
e881b8a5 | 4 | PACKAGE := proxmox-backup |
da0e1e40 | 5 | ARCH := $(DEB_BUILD_ARCH) |
209bb433 | 6 | |
bb5c7707 | 7 | SUBDIRS := etc www docs |
13b77d10 | 8 | |
6285b251 WB |
9 | # Binaries usable by users |
10 | USR_BIN := \ | |
11 | proxmox-backup-client \ | |
7c4dd946 | 12 | pxar |
6285b251 WB |
13 | |
14 | # Binaries usable by admins | |
b69b8af2 TL |
15 | USR_SBIN := \ |
16 | proxmox-backup-manager | |
6285b251 WB |
17 | |
18 | # Binaries for services: | |
19 | SERVICE_BIN := \ | |
20 | proxmox-backup-api \ | |
b69b8af2 | 21 | proxmox-backup-banner \ |
bc00289b TL |
22 | proxmox-backup-proxy \ |
23 | proxmox-daily-update \ | |
6285b251 | 24 | |
13b77d10 WB |
25 | ifeq ($(BUILD_MODE), release) |
26 | CARGO_BUILD_ARGS += --release | |
6285b251 | 27 | COMPILEDIR := target/release |
13b77d10 WB |
28 | else |
29 | COMPILEDIR := target/debug | |
30 | endif | |
31 | ||
6f0069ae WB |
32 | ifeq ($(valgrind), yes) |
33 | CARGO_BUILD_ARGS += --features valgrind | |
34 | endif | |
35 | ||
da0e1e40 FG |
36 | CARGO ?= cargo |
37 | ||
6285b251 WB |
38 | COMPILED_BINS := \ |
39 | $(addprefix $(COMPILEDIR)/,$(USR_BIN) $(USR_SBIN) $(SERVICE_BIN)) | |
40 | ||
1f6a4f58 TL |
41 | export DEB_VERSION DEB_VERSION_UPSTREAM |
42 | ||
10426c17 | 43 | SERVER_DEB=${PACKAGE}-server_${DEB_VERSION}_${ARCH}.deb |
3ec6e249 | 44 | SERVER_DBG_DEB=${PACKAGE}-server-dbgsym_${DEB_VERSION}_${ARCH}.deb |
10426c17 | 45 | CLIENT_DEB=${PACKAGE}-client_${DEB_VERSION}_${ARCH}.deb |
3ec6e249 | 46 | CLIENT_DBG_DEB=${PACKAGE}-client-dbgsym_${DEB_VERSION}_${ARCH}.deb |
da0e1e40 | 47 | DOC_DEB=${PACKAGE}-docs_${DEB_VERSION}_all.deb |
36d74cd6 | 48 | |
3ec6e249 | 49 | DEBS=${SERVER_DEB} ${SERVER_DBG_DEB} ${CLIENT_DEB} ${CLIENT_DBG_DEB} |
10426c17 | 50 | |
e881b8a5 | 51 | DSC = rust-${PACKAGE}_${DEB_VERSION}.dsc |
209bb433 DM |
52 | |
53 | DESTDIR= | |
de779814 | 54 | |
13b77d10 WB |
55 | all: cargo-build $(SUBDIRS) |
56 | ||
57 | .PHONY: $(SUBDIRS) | |
58 | $(SUBDIRS): | |
59 | $(MAKE) -C $@ | |
de779814 | 60 | |
cd3b9a06 | 61 | test: |
cc119edb | 62 | #cargo test test_broadcast_future |
3dceb9b3 | 63 | #cargo test $(CARGO_BUILD_ARGS) |
c47a900c | 64 | $(CARGO) test $(tests) $(CARGO_BUILD_ARGS) |
f7dd683b | 65 | |
cd3b9a06 | 66 | doc: |
da0e1e40 | 67 | $(CARGO) doc --no-deps $(CARGO_BUILD_ARGS) |
d78345bc | 68 | |
13b77d10 WB |
69 | # always re-create this dir |
70 | .PHONY: build | |
71 | build: | |
de779814 | 72 | rm -rf build |
5d95558b | 73 | rm -f debian/control |
e881b8a5 FG |
74 | debcargo package --config debian/debcargo.toml --changelog-ready --no-overlay-write-back --directory build proxmox-backup $(shell dpkg-parsechangelog -l debian/changelog -SVersion | sed -e 's/-.*//') |
75 | sed -e '1,/^$$/ ! d' build/debian/control > build/debian/control.src | |
76 | cat build/debian/control.src build/debian/control.in > build/debian/control | |
77 | rm build/debian/control.in build/debian/control.src | |
724de093 | 78 | cp build/debian/control debian/control |
e881b8a5 FG |
79 | rm build/Cargo.lock |
80 | find build/debian -name "*.hint" -delete | |
b369f720 WB |
81 | $(foreach i,$(SUBDIRS), \ |
82 | $(MAKE) -C build/$(i) clean ;) | |
de779814 | 83 | |
e881b8a5 | 84 | |
720776b8 | 85 | .PHONY: proxmox-backup-docs |
37e53b4c TL |
86 | $(DOC_DEB) $(DEBS): proxmox-backup-docs |
87 | proxmox-backup-docs: build | |
720776b8 DM |
88 | cd build; dpkg-buildpackage -b -us -uc --no-pre-clean |
89 | lintian $(DOC_DEB) | |
90 | ||
da0e1e40 | 91 | # copy the local target/ dir as a build-cache |
13b77d10 | 92 | .PHONY: deb |
37e53b4c TL |
93 | $(DEBS): deb |
94 | deb: build | |
720776b8 | 95 | cd build; dpkg-buildpackage -b -us -uc --no-pre-clean --build-profiles=nodoc |
36d74cd6 | 96 | lintian $(DEBS) |
18fad344 | 97 | |
37e53b4c TL |
98 | .PHONY: deb-all |
99 | deb-all: $(DOC_DEB) $(DEBS) | |
100 | ||
18fad344 WB |
101 | .PHONY: dsc |
102 | dsc: $(DSC) | |
103 | $(DSC): build | |
104 | cd build; dpkg-buildpackage -S -us -uc -d -nc | |
105 | lintian $(DSC) | |
de779814 | 106 | |
209bb433 | 107 | distclean: clean |
de779814 DM |
108 | |
109 | clean: | |
b369f720 WB |
110 | $(foreach i,$(SUBDIRS), \ |
111 | $(MAKE) -C $(i) clean ;) | |
da0e1e40 | 112 | $(CARGO) clean |
1a9cb80c | 113 | rm -rf *.deb *.dsc *.tar.gz *.buildinfo *.changes build |
d3cb69c4 DM |
114 | find . -name '*~' -exec rm {} ';' |
115 | ||
209bb433 | 116 | .PHONY: dinstall |
36d74cd6 DM |
117 | dinstall: ${DEBS} |
118 | dpkg -i ${DEBS} | |
6285b251 | 119 | |
bb5c7707 DM |
120 | # make sure we build binaries before docs |
121 | docs: cargo-build | |
122 | ||
13b77d10 | 123 | .PHONY: cargo-build |
cd3b9a06 | 124 | cargo-build: |
da0e1e40 | 125 | $(CARGO) build $(CARGO_BUILD_ARGS) |
6285b251 | 126 | |
13b77d10 | 127 | $(COMPILED_BINS): cargo-build |
6285b251 | 128 | |
d1596102 WB |
129 | .PHONY: lint |
130 | lint: | |
131 | cargo clippy -- -A clippy::all -D clippy::correctness | |
132 | ||
6285b251 WB |
133 | install: $(COMPILED_BINS) |
134 | install -dm755 $(DESTDIR)$(BINDIR) | |
6dea60aa | 135 | install -dm755 $(DESTDIR)$(ZSH_COMPL_DEST) |
6285b251 | 136 | $(foreach i,$(USR_BIN), \ |
6dea60aa CE |
137 | install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(BINDIR)/ ; \ |
138 | install -m644 zsh-completions/_$(i) $(DESTDIR)$(ZSH_COMPL_DEST)/ ;) | |
6285b251 WB |
139 | install -dm755 $(DESTDIR)$(SBINDIR) |
140 | $(foreach i,$(USR_SBIN), \ | |
6dea60aa CE |
141 | install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(SBINDIR)/ ; \ |
142 | install -m644 zsh-completions/_$(i) $(DESTDIR)$(ZSH_COMPL_DEST)/ ;) | |
304db5da | 143 | install -dm755 $(DESTDIR)$(LIBEXECDIR)/proxmox-backup |
6285b251 | 144 | $(foreach i,$(SERVICE_BIN), \ |
304db5da | 145 | install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(LIBEXECDIR)/proxmox-backup/ ;) |
6285b251 | 146 | $(MAKE) -C www install |
bb5c7707 | 147 | $(MAKE) -C docs install |
729e38f4 DM |
148 | |
149 | .PHONY: upload | |
10426c17 | 150 | upload: ${SERVER_DEB} ${CLIENT_DEB} ${DOC_DEB} |
729e38f4 DM |
151 | # check if working directory is clean |
152 | git diff --exit-code --stat && git diff --exit-code --stat --staged | |
3ec6e249 | 153 | tar cf - ${SERVER_DEB} ${SERVER_DBG_DEB} ${DOC_DEB} | ssh -X repoman@repo.proxmox.com upload --product pbs --dist buster |
e15b7636 | 154 | tar cf - ${CLIENT_DEB} ${CLIENT_DBG_DEB} | ssh -X repoman@repo.proxmox.com upload --product "pbs,pve,pmg" --dist buster |