PACKAGE=proxmox-backup-restore-image
PACKAGE_DBG=proxmox-backup-restore-image-debug
-BUILDDIR=${PACKAGE}-${DEB_VERSION_UPSTREAM_REVISION}
+BUILDDIR=$(PACKAGE)-$(DEB_VERSION_UPSTREAM_REVISION)
-DEB=${PACKAGE}_${DEB_VERSION}_${DEB_BUILD_ARCH}.deb
-DSC=${PACKAGE}_${DEB_VERSION}.dsc
-DEB_DBG=${PACKAGE_DBG}_${DEB_VERSION}_${DEB_BUILD_ARCH}.deb
-DSC_DBG=${PACKAGE_DBG}_${DEB_VERSION}.dsc
+DEB=$(PACKAGE)_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb
+DSC=$(PACKAGE)_$(DEB_VERSION).dsc
+DEB_DBG=$(PACKAGE_DBG)_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb
+DSC_DBG=$(PACKAGE_DBG)_$(DEB_VERSION).dsc
all: deb
KERNEL_SUBMODULE=src/submodules/ubuntu-jammy
submodules.prepared:
- git submodule update --init ${KERNEL_SUBMODULE}
- git submodule update --init --recursive ${ZFSONLINUX_SUBMODULE}
+ git submodule update --init $(KERNEL_SUBMODULE)
+ git submodule update --init --recursive $(ZFSONLINUX_SUBMODULE)
touch $@
.PHONY: builddir
-builddir: ${BUILDDIR}
+builddir: $(BUILDDIR)
-${BUILDDIR}: submodules.prepared
- rm -rf ${BUILDDIR} ${BUILDDIR}.tmp
+$(BUILDDIR): submodules.prepared
+ rm -rf $(BUILDDIR) $(BUILDDIR).tmp
cd src; make clean
- cp -a src ${BUILDDIR}.tmp
- cp -a debian ${BUILDDIR}.tmp/
- mv ${BUILDDIR}.tmp ${BUILDDIR}
+ cp -a src $(BUILDDIR).tmp
+ cp -a debian $(BUILDDIR).tmp/
+ mv $(BUILDDIR).tmp $(BUILDDIR)
.PHONY: deb
-deb: ${DEB}
-${DEB}: ${BUILDDIR}
- cd ${BUILDDIR}; dpkg-buildpackage -b -us -uc
- lintian ${DEB} ${DEB_DBG}
-${DEB_DBG}: ${DEB}
+deb: $(DEB)
+$(DEB): $(BUILDDIR)
+ cd $(BUILDDIR); dpkg-buildpackage -b -us -uc
+ lintian $(DEB) $(DEB_DBG)
+$(DEB_DBG): $(DEB)
.PHONY: dsc
-dsc: ${DSC}
-${DSC}: ${BUILDDIR}
- cd ${BUILDDIR}; dpkg-buildpackage -S -us -uc -d
- lintian ${DSC} ${DSC_DBG}
-${DSC_DBG}: ${DSC}
+dsc: $(DSC)
+$(DSC): $(BUILDDIR)
+ cd $(BUILDDIR); dpkg-buildpackage -S -us -uc -d
+ lintian $(DSC) $(DSC_DBG)
+$(DSC_DBG): $(DSC)
.PHONY: dinstall
dinstall: deb
- dpkg -i ${DEB} ${DEB_DBG}
+ dpkg -i $(DEB) $(DEB_DBG)
.PHONY: upload
-upload: ${DEB}
- tar cf - ${DEB} ${DEB_DBG} | ssh -X repoman@repo.proxmox.com upload --product pve --dist bullseye
+upload: $(DEB)
+ tar cf - $(DEB) $(DEB_DBG) | ssh -X repoman@repo.proxmox.com upload --product pve --dist bullseye
.PHONY: clean
clean:
- rm -rf *~ ${BUILDDIR} ${PACKAGE}-*/ *.prepared
- rm -f ${PACKAGE}*.tar.gz *.deb *.changes *.buildinfo *.dsc
+ rm -rf *~ $(BUILDDIR) $(PACKAGE)-*/ *.prepared
+ rm -f $(PACKAGE)*.tar.gz *.deb *.changes *.buildinfo *.dsc
KERNEL_SUBMODULE=submodules/ubuntu-jammy
SHIM_DIR=init-shim-rs
-KERNEL_IMG=${BUILDDIR}/bzImage
-INITRAMFS_IMG=${INITRAMFS_BUILDDIR}/initramfs.img
-INITRAMFS_IMG_DBG=${INITRAMFS_BUILDDIR}/initramfs-debug.img
+KERNEL_IMG=$(BUILDDIR)/bzImage
+INITRAMFS_IMG=$(INITRAMFS_BUILDDIR)/initramfs.img
+INITRAMFS_IMG_DBG=$(INITRAMFS_BUILDDIR)/initramfs-debug.img
-ZFS_TOOLS=${BUILDDIR}/zfstools
+ZFS_TOOLS=$(BUILDDIR)/zfstools
CONFIG=config-base
-RUST_SRC=$(wildcard ${SHIM_DIR}/**/*.rs) ${SHIM_DIR}/Cargo.toml
+RUST_SRC=$(wildcard $(SHIM_DIR)/**/*.rs) $(SHIM_DIR)/Cargo.toml
-all: ${KERNEL_IMG} ${INITRAMFS_IMG_DBG}
+all: $(KERNEL_IMG) $(INITRAMFS_IMG_DBG)
-${BUILDDIR}.prepared: ${CONFIG}
- rm -rf ${BUILDDIR}
- mkdir -p ${BUILDDIR}
- cp -a submodules patches ${BUILDDIR}/
- cp ${CONFIG} ${BUILDDIR}/${KERNEL_SUBMODULE}
- cd ${BUILDDIR}/${KERNEL_SUBMODULE}; \
+$(BUILDDIR).prepared: $(CONFIG)
+ rm -rf $(BUILDDIR)
+ mkdir -p $(BUILDDIR)
+ cp -a submodules patches $(BUILDDIR)/
+ cp $(CONFIG) $(BUILDDIR)/$(KERNEL_SUBMODULE)
+ cd $(BUILDDIR)/$(KERNEL_SUBMODULE); \
for p in ../../patches/kernel/*.patch; do \
patch -Np1 < $$p; \
done
touch $@
-kernel.prepared: ${BUILDDIR}.prepared
- cd ${BUILDDIR}/${KERNEL_SUBMODULE}; \
- KCONFIG_ALLCONFIG=${CONFIG} make allnoconfig && \
+kernel.prepared: $(BUILDDIR).prepared
+ cd $(BUILDDIR)/$(KERNEL_SUBMODULE); \
+ KCONFIG_ALLCONFIG=$(CONFIG) make allnoconfig && \
$(MAKE) prepare scripts
touch $@
zfs.prepared: kernel.prepared
- cd ${BUILDDIR}/${ZFSONLINUX_SUBMODULE}; \
+ cd $(BUILDDIR)/$(ZFSONLINUX_SUBMODULE); \
for p in ../../patches/zfs/*.patch; do \
patch -Np1 < $$p; \
done
- cd ${BUILDDIR}/${ZFSONLINUX_SUBMODULE}; \
+ cd $(BUILDDIR)/$(ZFSONLINUX_SUBMODULE); \
sh autogen.sh && \
./configure \
--enable-linux-builtin \
- --with-linux=../../${KERNEL_SUBMODULE} \
- --with-linux-obj=../../${KERNEL_SUBMODULE} && \
- ./copy-builtin ../../${KERNEL_SUBMODULE}
+ --with-linux=../../$(KERNEL_SUBMODULE) \
+ --with-linux-obj=../../$(KERNEL_SUBMODULE) && \
+ ./copy-builtin ../../$(KERNEL_SUBMODULE)
# only now can we enable CONFIG_ZFS
- cd ${BUILDDIR}/${KERNEL_SUBMODULE}; \
+ cd $(BUILDDIR)/$(KERNEL_SUBMODULE); \
./scripts/config -e CONFIG_ZFS
touch $@
-${KERNEL_IMG}: zfs.prepared
- cd ${BUILDDIR}/${KERNEL_SUBMODULE}; $(MAKE)
- mv ${BUILDDIR}/${KERNEL_SUBMODULE}/arch/x86/boot/bzImage ${KERNEL_IMG}
+$(KERNEL_IMG): zfs.prepared
+ cd $(BUILDDIR)/$(KERNEL_SUBMODULE); $(MAKE)
+ mv $(BUILDDIR)/$(KERNEL_SUBMODULE)/arch/x86/boot/bzImage $(KERNEL_IMG)
-${ZFS_TOOLS}: zfs.prepared
- cd ${BUILDDIR}/${ZFSONLINUX_SUBMODULE}; \
+$(ZFS_TOOLS): zfs.prepared
+ cd $(BUILDDIR)/$(ZFSONLINUX_SUBMODULE); \
./configure \
--bindir=/usr/bin \
--sbindir=/sbin \
--disable-pyzfs \
--with-config=user
# absolute path required for 'make install'
- $(MAKE) -C ${BUILDDIR}/${ZFSONLINUX_SUBMODULE} install DESTDIR=${PWD}/${ZFS_TOOLS}
+ $(MAKE) -C $(BUILDDIR)/$(ZFSONLINUX_SUBMODULE) install DESTDIR=$(PWD)/$(ZFS_TOOLS)
-${INITRAMFS_IMG}: ${BUILDDIR}.prepared ${RUST_SRC} build_initramfs.sh ${ZFS_TOOLS}
- cd ${SHIM_DIR}; cargo build --release
+$(INITRAMFS_IMG): $(BUILDDIR).prepared $(RUST_SRC) build_initramfs.sh $(ZFS_TOOLS)
+ cd $(SHIM_DIR); cargo build --release
sh build_initramfs.sh
-${INITRAMFS_IMG_DBG}: ${INITRAMFS_IMG}
+$(INITRAMFS_IMG_DBG): $(INITRAMFS_IMG)
.PHONY: test-run
-test-run: ${KERNEL_IMG} ${INITRAMFS_IMG}
+test-run: $(KERNEL_IMG) $(INITRAMFS_IMG)
# note: this will always fail since /proxmox-restore-daemon is not
# included in the initramfs, but it can be used to test the
# kernel/init-shim-rs builds
qemu-system-x86_64 -serial stdio -vnc none -enable-kvm \
- -kernel ${KERNEL_IMG} \
- -initrd ${INITRAMFS_IMG}
+ -kernel $(KERNEL_IMG) \
+ -initrd $(INITRAMFS_IMG)
.PHONY: clean
clean:
- rm -rf *~ ${BUILDDIR} ${INITRAMFS_BUILDDIR} *.prepared
+ rm -rf *~ $(BUILDDIR) $(INITRAMFS_BUILDDIR) *.prepared