1 include /usr
/share
/dpkg
/default.mk
4 PACKAGE
:= proxmox-backup
5 ARCH
:= $(DEB_BUILD_ARCH
)
7 SUBDIRS
:= etc www docs
9 # Binaries usable by users
11 proxmox-backup-client \
12 proxmox-file-restore \
18 # Binaries usable by admins
20 proxmox-backup-manager
22 # Binaries for services:
25 proxmox-backup-banner \
26 proxmox-backup-proxy \
29 # Single file restore daemon
31 proxmox-restore-daemon
39 ifeq ($(BUILD_MODE
), release
)
40 CARGO_BUILD_ARGS
+= --release
41 COMPILEDIR
:= target
/release
43 COMPILEDIR
:= target
/debug
46 ifeq ($(valgrind
), yes
)
47 CARGO_BUILD_ARGS
+= --features valgrind
53 $(addprefix $(COMPILEDIR
)/,$(USR_BIN
) $(USR_SBIN
) $(SERVICE_BIN
) $(RESTORE_BIN
))
55 export DEB_VERSION DEB_VERSION_UPSTREAM
57 SERVER_DEB
=${PACKAGE}-server_
${DEB_VERSION}_
${ARCH}.deb
58 SERVER_DBG_DEB
=${PACKAGE}-server-dbgsym_
${DEB_VERSION}_
${ARCH}.deb
59 CLIENT_DEB
=${PACKAGE}-client_
${DEB_VERSION}_
${ARCH}.deb
60 CLIENT_DBG_DEB
=${PACKAGE}-client-dbgsym_
${DEB_VERSION}_
${ARCH}.deb
61 RESTORE_DEB
=proxmox-backup-file-restore_
${DEB_VERSION}_
${ARCH}.deb
62 RESTORE_DBG_DEB
=proxmox-backup-file-restore-dbgsym_
${DEB_VERSION}_
${ARCH}.deb
63 DOC_DEB
=${PACKAGE}-docs_
${DEB_VERSION}_all.deb
65 DEBS
=${SERVER_DEB} ${SERVER_DBG_DEB} ${CLIENT_DEB} ${CLIENT_DBG_DEB} \
66 ${RESTORE_DEB} ${RESTORE_DBG_DEB}
68 DSC
= rust-
${PACKAGE}_
${DEB_VERSION}.dsc
72 all: cargo-build
$(SUBDIRS
)
79 #cargo test test_broadcast_future
80 #cargo test $(CARGO_BUILD_ARGS)
81 $(CARGO
) test $(tests
) $(CARGO_BUILD_ARGS
)
84 $(CARGO
) doc
--no-deps
$(CARGO_BUILD_ARGS
)
86 # always re-create this dir
92 Cargo.toml build.rs src \
94 docs etc examples tests www zsh-completions \
97 rm -f build
/Cargo.lock
98 find build
/debian
-name
"*.hint" -delete
99 $(foreach i
,$(SUBDIRS
), \
100 $(MAKE
) -C build
/$(i
) clean ;)
103 .PHONY
: proxmox-backup-docs
104 $(DOC_DEB
) $(DEBS
): proxmox-backup-docs
105 proxmox-backup-docs
: build
106 cd build
; dpkg-buildpackage
-b
-us
-uc
--no-pre-clean
109 # copy the local target/ dir as a build-cache
113 cd build
; dpkg-buildpackage
-b
-us
-uc
--no-pre-clean
--build-profiles
=nodoc
118 cd build
; dpkg-buildpackage
-b
-us
-uc
--no-pre-clean
119 lintian
$(DEBS
) $(DOC_DEB
)
124 cd build
; dpkg-buildpackage
-S
-us
-uc
-d
-nc
130 $(foreach i
,$(SUBDIRS
), \
131 $(MAKE
) -C
$(i
) clean ;)
133 rm -rf
*.deb
*.dsc
*.
tar.gz
*.buildinfo
*.changes build
134 find .
-name
'*~' -exec
rm {} ';'
137 dinstall
: ${SERVER_DEB} ${SERVER_DBG_DEB} ${CLIENT_DEB} ${CLIENT_DBG_DEB}
140 # make sure we build binaries before docs
145 $(CARGO
) build
$(CARGO_BUILD_ARGS
)
147 $(COMPILED_BINS
): cargo-build
151 cargo clippy
-- -A clippy
::all -D clippy
::correctness
153 install: $(COMPILED_BINS
)
154 install -dm755
$(DESTDIR
)$(BINDIR
)
155 install -dm755
$(DESTDIR
)$(ZSH_COMPL_DEST
)
156 $(foreach i
,$(USR_BIN
), \
157 install -m755
$(COMPILEDIR
)/$(i
) $(DESTDIR
)$(BINDIR
)/ ; \
158 install -m644 zsh-completions
/_
$(i
) $(DESTDIR
)$(ZSH_COMPL_DEST
)/ ;)
159 install -dm755
$(DESTDIR
)$(SBINDIR
)
160 $(foreach i
,$(USR_SBIN
), \
161 install -m755
$(COMPILEDIR
)/$(i
) $(DESTDIR
)$(SBINDIR
)/ ; \
162 install -m644 zsh-completions
/_
$(i
) $(DESTDIR
)$(ZSH_COMPL_DEST
)/ ;)
163 install -dm755
$(DESTDIR
)$(LIBEXECDIR
)/proxmox-backup
164 install -dm755
$(DESTDIR
)$(LIBEXECDIR
)/proxmox-backup
/file-restore
165 $(foreach i
,$(RESTORE_BIN
), \
166 install -m755
$(COMPILEDIR
)/$(i
) $(DESTDIR
)$(LIBEXECDIR
)/proxmox-backup
/file-restore
/ ;)
167 # install sg-tape-cmd as setuid binary
168 install -m4755
-o root
-g root
$(COMPILEDIR
)/sg-tape-cmd
$(DESTDIR
)$(LIBEXECDIR
)/proxmox-backup
/sg-tape-cmd
169 $(foreach i
,$(SERVICE_BIN
), \
170 install -m755
$(COMPILEDIR
)/$(i
) $(DESTDIR
)$(LIBEXECDIR
)/proxmox-backup
/ ;)
171 $(MAKE
) -C www
install
172 $(MAKE
) -C docs
install
175 upload
: ${SERVER_DEB} ${CLIENT_DEB} ${RESTORE_DEB} ${DOC_DEB}
176 # check if working directory is clean
177 git diff
--exit-code
--stat
&& git diff
--exit-code
--stat
--staged
178 tar cf
- ${SERVER_DEB} ${SERVER_DBG_DEB} ${DOC_DEB} ${CLIENT_DEB} ${CLIENT_DBG_DEB} | \
179 ssh
-X repoman@repo.proxmox.com upload
--product pbs
--dist bullseye
180 tar cf
- ${CLIENT_DEB} ${CLIENT_DBG_DEB} | ssh
-X repoman@repo.proxmox.com upload
--product
"pve,pmg,pbs-client" --dist bullseye
181 tar cf
- ${RESTORE_DEB} ${RESTORE_DBG_DEB} | ssh
-X repoman@repo.proxmox.com upload
--product
"pve" --dist bullseye