]>
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 | ||
13b77d10 WB |
6 | SUBDIRS := etc www |
7 | ||
6285b251 WB |
8 | # Binaries usable by users |
9 | USR_BIN := \ | |
10 | proxmox-backup-client \ | |
11 | catar | |
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 | ||
6285b251 WB |
28 | COMPILED_BINS := \ |
29 | $(addprefix $(COMPILEDIR)/,$(USR_BIN) $(USR_SBIN) $(SERVICE_BIN)) | |
30 | ||
4b26195c DM |
31 | export PROXMOX_PKG_VERSION=${PKGVER} |
32 | export PROXMOX_PKG_RELEASE=${PKGREL} | |
33 | export PROXMOX_PKG_REPOID=${GITVERSION} | |
209bb433 | 34 | |
6285b251 | 35 | export PROXMOX_JSDIR := $(JSDIR) |
9f4962d3 | 36 | export PROXMOX_CONFIGDIR := $(SYSCONFDIR)/proxmox-backup |
6285b251 | 37 | |
209bb433 | 38 | DEB=${PACKAGE}_${PKGVER}-${PKGREL}_${ARCH}.deb |
18fad344 | 39 | DSC=${PACKAGE}_${PKGVER}-${PKGREL}.dsc |
209bb433 DM |
40 | |
41 | DESTDIR= | |
de779814 | 42 | |
13b77d10 WB |
43 | all: cargo-build $(SUBDIRS) |
44 | ||
45 | .PHONY: $(SUBDIRS) | |
46 | $(SUBDIRS): | |
47 | $(MAKE) -C $@ | |
de779814 | 48 | |
f7dd683b | 49 | test: |
069f2d16 | 50 | cargo test $(CARGO_BUILD_ARGS) |
f7dd683b | 51 | |
d78345bc | 52 | doc: |
18a1aa48 | 53 | cargo doc --no-deps $(CARGO_BUILD_ARGS) |
d78345bc | 54 | |
13b77d10 | 55 | # always re-create this dir |
7ba5fb4a | 56 | # but also copy the local target/ dir as a build-cache |
13b77d10 WB |
57 | .PHONY: build |
58 | build: | |
de779814 | 59 | rm -rf build |
13b77d10 | 60 | rsync -a debian Makefile defines.mk Cargo.toml src $(SUBDIRS) build/ |
7ba5fb4a | 61 | test -d target && rsync -a target build/ || true |
b369f720 WB |
62 | $(foreach i,$(SUBDIRS), \ |
63 | $(MAKE) -C build/$(i) clean ;) | |
de779814 | 64 | |
13b77d10 WB |
65 | .PHONY: deb |
66 | deb: $(DEB) | |
67 | $(DEB): build | |
0ae7ac15 | 68 | cd build; dpkg-buildpackage -b -us -uc --no-pre-clean |
18fad344 WB |
69 | lintian $(DEB) |
70 | ||
71 | .PHONY: dsc | |
72 | dsc: $(DSC) | |
73 | $(DSC): build | |
74 | cd build; dpkg-buildpackage -S -us -uc -d -nc | |
75 | lintian $(DSC) | |
de779814 | 76 | |
209bb433 | 77 | distclean: clean |
de779814 DM |
78 | |
79 | clean: | |
b369f720 WB |
80 | $(foreach i,$(SUBDIRS), \ |
81 | $(MAKE) -C $(i) clean ;) | |
de779814 | 82 | cargo clean |
1a9cb80c | 83 | rm -rf *.deb *.dsc *.tar.gz *.buildinfo *.changes build |
d3cb69c4 DM |
84 | find . -name '*~' -exec rm {} ';' |
85 | ||
209bb433 DM |
86 | .PHONY: dinstall |
87 | dinstall: ${DEB} | |
88 | dpkg -i ${DEB} | |
6285b251 | 89 | |
13b77d10 WB |
90 | .PHONY: cargo-build |
91 | cargo-build: | |
92 | cargo build $(CARGO_BUILD_ARGS) | |
6285b251 | 93 | |
13b77d10 | 94 | $(COMPILED_BINS): cargo-build |
6285b251 WB |
95 | |
96 | install: $(COMPILED_BINS) | |
97 | install -dm755 $(DESTDIR)$(BINDIR) | |
98 | $(foreach i,$(USR_BIN), \ | |
99 | install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(BINDIR)/ ;) | |
100 | install -dm755 $(DESTDIR)$(SBINDIR) | |
101 | $(foreach i,$(USR_SBIN), \ | |
102 | install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(SBINDIR)/ ;) | |
304db5da | 103 | install -dm755 $(DESTDIR)$(LIBEXECDIR)/proxmox-backup |
6285b251 | 104 | $(foreach i,$(SERVICE_BIN), \ |
304db5da | 105 | install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(LIBEXECDIR)/proxmox-backup/ ;) |
6285b251 | 106 | $(MAKE) -C www install |