2023-05-17 15:43:28 +02:00
i n c l u d e / u s r / s h a r e / d p k g / p k g - i n f o . m k
2021-11-26 14:55:15 +01:00
PACKAGE = libpmg-rs-perl
ARCH := $( shell dpkg-architecture -qDEB_BUILD_ARCH)
export GITVERSION := $( shell git rev-parse HEAD)
PERL_INSTALLVENDORARCH != perl -MConfig -e 'print $$Config{installvendorarch};'
PERL_INSTALLVENDORLIB != perl -MConfig -e 'print $$Config{installvendorlib};'
2023-05-17 15:43:28 +02:00
MAIN_DEB = $( PACKAGE) _$( DEB_VERSION) _$( ARCH) .deb
DBGSYM_DEB = $( PACKAGE) -dbgsym_$( DEB_VERSION) _$( ARCH) .deb
2021-11-26 14:55:15 +01:00
DEBS = $( MAIN_DEB) $( DBGSYM_DEB)
2023-05-17 15:43:28 +02:00
DSC = $( PACKAGE) _$( DEB_VERSION_UPSTREAM_REVISION) .dsc
BUILDDIR ?= $( PACKAGE) -$( DEB_VERSION_UPSTREAM)
2021-11-26 14:55:15 +01:00
DESTDIR =
2022-03-21 14:08:07 +01:00
PM_DIR := PMG
2021-11-26 14:55:15 +01:00
2023-05-09 11:29:05 +02:00
PERLMOD_GENPACKAGE := /usr/lib/perlmod/genpackage.pl \
--lib= pmg_rs \
--lib-tag= proxmox \
--lib-package= Proxmox::Lib::PMG \
--lib-prefix= PMG
PERLMOD_PACKAGES := \
PMG::RS::APT::Repositories \
PMG::RS::Acme \
PMG::RS::CSR \
PMG::RS::OpenId \
PMG::RS::TFA
2021-11-26 14:55:15 +01:00
i f e q ( $( BUILD_MODE ) , r e l e a s e )
CARGO_BUILD_ARGS += --release
2023-05-09 11:29:05 +02:00
TARGET_DIR = release
e l s e
TARGET_DIR = debug
2021-11-26 14:55:15 +01:00
e n d i f
2023-05-17 15:43:28 +02:00
all : PMG
2021-11-26 14:55:15 +01:00
cargo build $( CARGO_BUILD_ARGS)
2023-05-09 11:29:05 +02:00
PMG : Proxmox /Lib /PMG .pm
Proxmox/Lib/PMG.pm :
$( PERLMOD_GENPACKAGE) $( PERLMOD_PACKAGES)
2022-11-15 13:09:27 +01:00
2021-11-26 14:55:15 +01:00
.PHONY : install
2023-05-17 15:43:28 +02:00
install : target /release /libpmg_rs .so Proxmox /Lib /PMG .pm PMG
2021-11-26 14:55:15 +01:00
install -d -m755 $( DESTDIR) $( PERL_INSTALLVENDORARCH) /auto
2023-05-17 15:43:28 +02:00
install -m644 target/release/libpmg_rs.so $( DESTDIR) $( PERL_INSTALLVENDORARCH) /auto/libpmg_rs.so
2022-03-21 14:08:07 +01:00
install -d -m755 $( DESTDIR) $( PERL_INSTALLVENDORLIB)
install -d -m755 $( DESTDIR) $( PERL_INSTALLVENDORLIB) /Proxmox/Lib
install -m644 Proxmox/Lib/PMG.pm $( DESTDIR) $( PERL_INSTALLVENDORLIB) /Proxmox/Lib/PMG.pm
find $( PM_DIR) \! -type d -print -exec install -Dm644 '{}' $( DESTDIR) $( PERL_INSTALLVENDORLIB) '/{}' ';'
2021-11-26 14:55:15 +01:00
distclean : clean
clean :
cargo clean
2023-05-18 11:59:07 +02:00
rm -f *.deb *.dsc *.tar.* *.build *.buildinfo *.changes Cargo.lock
2023-05-17 15:43:28 +02:00
rm -rf $( PACKAGE) -[ 0-9] */
2021-11-26 14:55:15 +01:00
.PHONY : dinstall
2023-05-17 15:43:28 +02:00
dinstall : $( DEBS )
dpkg -i $( DEBS)
2021-11-26 14:55:15 +01:00
.PHONY : upload
2023-05-17 15:43:28 +02:00
upload : UPLOAD_DIST ?= $( DEB_DISTRIBUTION )
upload : $( DEBS )
2021-11-26 14:55:15 +01:00
# check if working directory is clean
git diff --exit-code --stat && git diff --exit-code --stat --staged
2023-05-17 15:43:28 +02:00
tar cf - $( DEBS) | ssh -X repoman@repo.proxmox.com upload --product pmg --dist $( DEB_DISTRIBUTION)
$(BUILDDIR) : src debian common /src Cargo .toml Makefile .cargo /config
rm -rf $( BUILDDIR) $( BUILDDIR) .tmp
mkdir $( BUILDDIR) .tmp
mkdir $( BUILDDIR) .tmp/common
cp -a -t $( BUILDDIR) .tmp src debian Cargo.toml Makefile .cargo
cp -a -t $( BUILDDIR) .tmp/common common/src
mv $( BUILDDIR) .tmp $( BUILDDIR)
2023-05-17 15:57:02 +02:00
.PHONY : deb
deb : $( DEBS )
$(DEBS) : $( BUILDDIR )
cd $( BUILDDIR) ; PATH = "/usr/local/bin:/usr/bin" dpkg-buildpackage -b -us -uc
lintian $( DEBS)
2023-05-17 15:43:28 +02:00
.PHONY : dsc
dsc : $( DSC )
$(DSC) : $( BUILDDIR )
cd $( BUILDDIR) ; PATH = "/usr/local/bin:/usr/bin" dpkg-buildpackage -S -us -uc -d
lintian $( DSC)
sbuild : $( DSC )
sbuild $( DSC)