2019-01-31 13:43:09 +01:00
i n c l u d e d e f i n e s . m k
2018-11-30 13:39:40 +01:00
2018-12-01 13:44:13 +01:00
ARCH := $( shell dpkg-architecture -qDEB_BUILD_ARCH)
GITVERSION := $( shell git rev-parse HEAD)
2019-02-24 09:51:10 +01:00
SUBDIRS := etc www docs
2019-01-31 15:42:47 +01:00
2019-01-31 13:43:09 +01:00
# Binaries usable by users
USR_BIN := \
proxmox-backup-client \
2019-03-14 10:14:32 +01:00
pxar
2019-01-31 13:43:09 +01:00
# Binaries usable by admins
USR_SBIN := proxmox-backup-manager
# Binaries for services:
SERVICE_BIN := \
proxmox-backup-api \
proxmox-backup-proxy
2019-01-31 15:42:47 +01:00
i f e q ( $( BUILD_MODE ) , r e l e a s e )
CARGO_BUILD_ARGS += --release
2019-01-31 13:43:09 +01:00
COMPILEDIR := target/release
2019-01-31 15:42:47 +01:00
e l s e
COMPILEDIR := target/debug
e n d i f
2019-05-22 15:41:20 +02:00
i f e q ( $( valgrind ) , y e s )
CARGO_BUILD_ARGS += --features valgrind
e n d i f
2019-01-31 13:43:09 +01:00
COMPILED_BINS := \
$( addprefix $( COMPILEDIR) /,$( USR_BIN) $( USR_SBIN) $( SERVICE_BIN) )
2018-12-01 13:44:13 +01:00
DEB = ${ PACKAGE } _${ PKGVER } -${ PKGREL } _${ ARCH } .deb
2019-02-01 10:07:22 +01:00
DSC = ${ PACKAGE } _${ PKGVER } -${ PKGREL } .dsc
2018-12-01 13:44:13 +01:00
DESTDIR =
2018-11-30 13:39:40 +01:00
2019-01-31 15:42:47 +01:00
all : cargo -build $( SUBDIRS )
.PHONY : $( SUBDIRS )
$(SUBDIRS) :
$( MAKE) -C $@
2018-11-30 13:39:40 +01:00
2019-03-07 11:44:48 +01:00
test :
2019-05-21 17:54:49 +02:00
#cargo test test_broadcast_future
2019-04-27 10:56:49 +02:00
#cargo test $(CARGO_BUILD_ARGS)
2019-05-21 17:54:49 +02:00
cargo test $( tests) $( CARGO_BUILD_ARGS)
2018-12-19 13:54:22 +01:00
2019-03-07 11:44:48 +01:00
doc :
2019-02-14 10:17:10 +01:00
cargo doc --no-deps $( CARGO_BUILD_ARGS)
2019-02-12 13:27:11 +01:00
2019-01-31 15:42:47 +01:00
# always re-create this dir
2019-02-01 10:18:50 +01:00
# but also copy the local target/ dir as a build-cache
2019-01-31 15:42:47 +01:00
.PHONY : build
build :
2018-11-30 13:39:40 +01:00
rm -rf build
2019-02-27 11:43:15 +00:00
cargo build --release
2019-03-06 09:39:00 +00:00
rsync -a debian Makefile defines.mk Cargo.toml Cargo.lock \
2019-09-03 08:58:46 +02:00
src zstd-sys $( SUBDIRS) \
2019-05-22 12:00:23 +02:00
target tests build/
2019-02-01 10:08:36 +00:00
$( foreach i,$( SUBDIRS) , \
$( MAKE) -C build/$( i) clean ; )
2018-11-30 13:39:40 +01:00
2019-01-31 15:42:47 +01:00
.PHONY : deb
deb : $( DEB )
$(DEB) : build
2019-02-01 10:01:55 +00:00
cd build; dpkg-buildpackage -b -us -uc --no-pre-clean
2019-02-01 10:07:22 +01:00
lintian $( DEB)
.PHONY : dsc
dsc : $( DSC )
$(DSC) : build
cd build; dpkg-buildpackage -S -us -uc -d -nc
lintian $( DSC)
2018-11-30 13:39:40 +01:00
2018-12-01 13:44:13 +01:00
distclean : clean
2018-11-30 13:39:40 +01:00
clean :
2019-02-01 10:08:36 +00:00
$( foreach i,$( SUBDIRS) , \
$( MAKE) -C $( i) clean ; )
2018-11-30 13:39:40 +01:00
cargo clean
2019-02-01 10:36:28 +01:00
rm -rf *.deb *.dsc *.tar.gz *.buildinfo *.changes build
2018-11-30 17:09:50 +01:00
find . -name '*~' -exec rm { } ';'
2018-12-01 13:44:13 +01:00
.PHONY : dinstall
dinstall : ${DEB }
dpkg -i ${ DEB }
2019-01-31 13:43:09 +01:00
2019-02-24 09:51:10 +01:00
# make sure we build binaries before docs
docs : cargo -build
2019-01-31 15:42:47 +01:00
.PHONY : cargo -build
2019-03-07 11:44:48 +01:00
cargo-build :
2019-01-31 15:42:47 +01:00
cargo build $( CARGO_BUILD_ARGS)
2019-01-31 13:43:09 +01:00
2019-01-31 15:42:47 +01:00
$(COMPILED_BINS) : cargo -build
2019-01-31 13:43:09 +01:00
install : $( COMPILED_BINS )
install -dm755 $( DESTDIR) $( BINDIR)
$( foreach i,$( USR_BIN) , \
install -m755 $( COMPILEDIR) /$( i) $( DESTDIR) $( BINDIR) / ; )
install -dm755 $( DESTDIR) $( SBINDIR)
$( foreach i,$( USR_SBIN) , \
install -m755 $( COMPILEDIR) /$( i) $( DESTDIR) $( SBINDIR) / ; )
2019-02-01 10:05:14 +01:00
install -dm755 $( DESTDIR) $( LIBEXECDIR) /proxmox-backup
2019-01-31 13:43:09 +01:00
$( foreach i,$( SERVICE_BIN) , \
2019-02-01 10:05:14 +01:00
install -m755 $( COMPILEDIR) /$( i) $( DESTDIR) $( LIBEXECDIR) /proxmox-backup/ ; )
2019-01-31 13:43:09 +01:00
$( MAKE) -C www install
2019-02-24 09:51:10 +01:00
$( MAKE) -C docs install