mirror of
https://git.proxmox.com/git/proxmox-backup-qemu
synced 2025-10-04 12:57:20 +00:00
buildsys: use actual build-dir and improve reproducability
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
afe4512f30
commit
198c9ba59d
48
Makefile
48
Makefile
@ -1,6 +1,7 @@
|
|||||||
include /usr/share/dpkg/default.mk
|
include /usr/share/dpkg/default.mk
|
||||||
|
|
||||||
PACKAGE=libproxmox-backup-qemu0
|
PACKAGE = libproxmox-backup-qemu0
|
||||||
|
BUILDDIR = $(PACKAGE)-$(DEB_VERSION_UPSTREAM)
|
||||||
|
|
||||||
ARCH:=$(DEB_HOST_ARCH)
|
ARCH:=$(DEB_HOST_ARCH)
|
||||||
export GITVERSION:=$(shell git rev-parse HEAD)
|
export GITVERSION:=$(shell git rev-parse HEAD)
|
||||||
@ -13,47 +14,54 @@ DEBS=$(MAIN_DEB) $(OTHER_DEBS)
|
|||||||
|
|
||||||
DESTDIR=
|
DESTDIR=
|
||||||
|
|
||||||
|
TARGETDIR := target/debug
|
||||||
|
|
||||||
ifeq ($(BUILD_MODE), release)
|
ifeq ($(BUILD_MODE), release)
|
||||||
CARGO_BUILD_ARGS += --release
|
CARGO_BUILD_ARGS += --release
|
||||||
|
TARGETDIR := target/release
|
||||||
endif
|
endif
|
||||||
|
|
||||||
all:
|
.PHONY: all build
|
||||||
ifneq ($(BUILD_MODE), skip)
|
# source target
|
||||||
|
all: build
|
||||||
|
|
||||||
|
# source target
|
||||||
|
build: $(TARGETDIR)/libproxmox_backup_qemu.so
|
||||||
|
$(TARGETDIR)/libproxmox_backup_qemu.so: Cargo.toml src/
|
||||||
cargo build $(CARGO_BUILD_ARGS)
|
cargo build $(CARGO_BUILD_ARGS)
|
||||||
diff -up current-api.h proxmox-backup-qemu.h
|
|
||||||
endif
|
|
||||||
|
|
||||||
# always re-create this dir
|
|
||||||
# but also copy the local target/ dir as a build-cache
|
|
||||||
.PHONY: build
|
|
||||||
build:
|
|
||||||
rm -rf build
|
|
||||||
cargo build --release
|
|
||||||
diff -I 'PROXMOX_BACKUP_QEMU_VERSION' -up current-api.h proxmox-backup-qemu.h
|
|
||||||
rsync -a debian submodules Makefile Cargo.toml Cargo.lock build.rs proxmox-backup-qemu.h src target current-api.h build/
|
|
||||||
|
|
||||||
|
# source / packaging target
|
||||||
.PHONY: install
|
.PHONY: install
|
||||||
install: target/release/libproxmox_backup_qemu.so
|
install: $(TARGETDIR)/libproxmox_backup_qemu.so
|
||||||
install -D -m 0755 target/release/libproxmox_backup_qemu.so $(DESTDIR)/usr/lib//libproxmox_backup_qemu.so.0
|
install -D -m 0755 $(TARGETDIR)/libproxmox_backup_qemu.so $(DESTDIR)/usr/lib/libproxmox_backup_qemu.so.0
|
||||||
cd $(DESTDIR)/usr/lib/; ls *; ln -s libproxmox_backup_qemu.so.0 libproxmox_backup_qemu.so
|
cd $(DESTDIR)/usr/lib/; ls *; ln -s libproxmox_backup_qemu.so.0 libproxmox_backup_qemu.so
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
|
test: current-api.h proxmox-backup-qemu.h
|
||||||
|
diff -I 'PROXMOX_BACKUP_QEMU_VERSION' -up current-api.h proxmox-backup-qemu.h
|
||||||
|
|
||||||
|
# packaging target
|
||||||
|
$(BUILDDIR): submodule
|
||||||
|
rm -rf $@ $@.tmp && mkdir $@.tmp
|
||||||
|
cp -a submodules debian Makefile .cargo Cargo.toml build.rs src header-preamble.c current-api.h $@.tmp/
|
||||||
|
mv $@.tmp $@
|
||||||
|
|
||||||
submodule:
|
submodule:
|
||||||
[ -e submodules/proxmox-backup/Cargo.toml ] || git submodule update --init --recursive
|
[ -e submodules/proxmox-backup/Cargo.toml ] || git submodule update --init --recursive
|
||||||
|
|
||||||
.PHONY: deb
|
.PHONY: deb
|
||||||
deb: $(OTHER_DEBS)
|
deb: $(OTHER_DEBS)
|
||||||
$(OTHER_DEBS): $(MAIN_DEB)
|
$(OTHER_DEBS): $(MAIN_DEB)
|
||||||
$(MAIN_DEB): build
|
$(MAIN_DEB): $(BUILDDIR)
|
||||||
cd build; dpkg-buildpackage -b -us -uc --no-pre-clean
|
cd build; dpkg-buildpackage -b -us -uc --no-pre-clean
|
||||||
lintian $(DEBS)
|
lintian $(DEBS)
|
||||||
|
|
||||||
proxmox-backup-qemu.h: build
|
proxmox-backup-qemu.h: $(TARGETDIR)/libproxmox_backup_qemu.so
|
||||||
|
|
||||||
simpletest: simpletest.c proxmox-backup-qemu.h
|
simpletest: simpletest.c proxmox-backup-qemu.h
|
||||||
gcc simpletest.c -o simpletest -lc -Wl,-rpath=./target/$(BUILD_MODE) -L ./target/$(BUILD_MODE) -l proxmox_backup_qemu
|
gcc simpletest.c -o simpletest -lc -Wl,-rpath=./$(TARGETDIR) -L ./$(TARGETDIR) -l proxmox_backup_qemu
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
cargo clean
|
cargo clean
|
||||||
rm -rf *.deb *.dsc *.tar.gz *.buildinfo *.changes Cargo.lock proxmox-backup-qemu.h build
|
rm -rf *.deb *.dsc *.tar.gz *.buildinfo *.changes Cargo.lock proxmox-backup-qemu.h build
|
||||||
|
2
debian/rules
vendored
2
debian/rules
vendored
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
include /usr/share/dpkg/pkg-info.mk
|
include /usr/share/dpkg/pkg-info.mk
|
||||||
|
|
||||||
export BUILD_MODE=skip
|
export BUILD_MODE=release
|
||||||
|
|
||||||
%:
|
%:
|
||||||
dh $@
|
dh $@
|
||||||
|
Loading…
Reference in New Issue
Block a user