]> git.proxmox.com Git - pve-qemu.git/blobdiff - Makefile
bump version to 9.0.0-2
[pve-qemu.git] / Makefile
index 688a3d14446b1cf6ebd10eea92e30768d98ec185..f23b041616775e7b7b9ba07d57352b25945e70b9 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,60 +1,90 @@
-include /usr/share/dpkg/pkg-info.mk
-include /usr/share/dpkg/architecture.mk
+include /usr/share/dpkg/default.mk
 
 PACKAGE = pve-qemu-kvm
 
 SRCDIR := qemu
-BUILDDIR ?= ${PACKAGE}-${DEB_VERSION_UPSTREAM}
+BUILDDIR ?= $(PACKAGE)-$(DEB_VERSION_UPSTREAM)
+ORIG_SRC_TAR=$(PACKAGE)_$(DEB_VERSION_UPSTREAM).orig.tar.gz
 
 GITVERSION := $(shell git rev-parse HEAD)
 
-DEB = ${PACKAGE}_${DEB_VERSION_UPSTREAM_REVISION}_${DEB_BUILD_ARCH}.deb
-DEB_DBG = ${PACKAGE}-dbg_${DEB_VERSION_UPSTREAM_REVISION}_${DEB_BUILD_ARCH}.deb
+DSC=$(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION).dsc
+DEB = $(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION)_$(DEB_BUILD_ARCH).deb
+DEB_DBG = $(PACKAGE)-dbgsym_$(DEB_VERSION_UPSTREAM_REVISION)_$(DEB_BUILD_ARCH).deb
 DEBS = $(DEB) $(DEB_DBG)
 
 all: $(DEBS)
 
 .PHONY: submodule
 submodule:
-       test -f "${SRCDIR}/configure" || git submodule update --init --recursive
+ifeq ($(shell test -f "$(SRCDIR)/configure" && echo 1 || echo 0), 0)
+       git submodule update --init --recursive
+       cd $(SRCDIR); meson subprojects download
+endif
 
-$(BUILDDIR): keycodemapdb | submodule
+PC_BIOS_FW_PURGE_LIST_IN = \
+       hppa-firmware.img \
+       hppa-firmware64.img \
+       openbios-ppc \
+       openbios-sparc32 \
+       openbios-sparc64 \
+       palcode-clipper \
+       s390-ccw.img \
+       s390-netboot.img \
+       u-boot.e500 \
+       .*[a-zA-Z0-9]\.dtb \
+       .*[a-zA-Z0-9]\.dts \
+       qemu_vga.ndrv \
+       slof.bin \
+       opensbi-riscv.*-generic-fw_dynamic.bin \
+
+BLOB_PURGE_SED_CMDS = $(foreach FILE,$(PC_BIOS_FW_PURGE_LIST_IN),-e "/$(FILE)/d")
+BLOB_PURGE_FILTER = $(foreach FILE,$(PC_BIOS_FW_PURGE_LIST_IN),-e "$(FILE)")
+
+$(BUILDDIR): submodule
        # check if qemu/ was used for a build
        # if so, please run 'make distclean' in the submodule and try again
        test ! -f $(SRCDIR)/build/config.status
-       rm -rf $(BUILDDIR)
-       cp -a $(SRCDIR) $(BUILDDIR)
-       cp -a debian $(BUILDDIR)/debian
-       rm -rf $(BUILDDIR)/ui/keycodemapdb
-       cp -a keycodemapdb $(BUILDDIR)/ui/
-       echo "git clone git://git.proxmox.com/git/pve-qemu.git\\ngit checkout $(GITVERSION)" > $(BUILDDIR)/debian/SOURCE
+       rm -rf $@.tmp $@
+       cp -a $(SRCDIR) $@.tmp
+       cp -a debian $@.tmp/debian
+       rm -rf $@.tmp/roms/edk2 # packaged separately
+       find $@.tmp/pc-bios -type f | grep $(BLOB_PURGE_FILTER) | xargs rm -f
+       sed -i $(BLOB_PURGE_SED_CMDS) $@.tmp/pc-bios/meson.build
+       echo "git clone git://git.proxmox.com/git/pve-qemu.git\\ngit checkout $(GITVERSION)" > $@.tmp/debian/SOURCE
+       mv $@.tmp $@
 
 .PHONY: deb kvm
 deb kvm: $(DEBS)
 $(DEB_DBG): $(DEB)
 $(DEB): $(BUILDDIR)
-       cd $(BUILDDIR); dpkg-buildpackage -b -us -uc -j
+       cd $(BUILDDIR); dpkg-buildpackage -b -us -uc
        lintian $(DEBS)
 
-.PHONY: update
-update:
-       cd $(SRCDIR) && git submodule deinit ui/keycodemapdb || true
-       rm -rf $(SRCDIR)/ui/keycodemapdb
-       mkdir $(SRCDIR)/ui/keycodemapdb
-       cd $(SRCDIR) && git submodule update --init ui/keycodemapdb
-       rm -rf keycodemapdb
-       mkdir keycodemapdb
-       cp -R $(SRCDIR)/ui/keycodemapdb/* keycodemapdb/
-       git add keycodemapdb
+sbuild: $(DSC)
+       sbuild $(DSC)
+
+$(ORIG_SRC_TAR): $(BUILDDIR)
+       tar czf $(ORIG_SRC_TAR) --exclude="$(BUILDDIR)/debian" $(BUILDDIR)
+
+.PHONY: dsc
+dsc:
+       rm -rf *.dsc $(BUILDDIR)
+       $(MAKE) $(DSC)
+       lintian $(DSC)
+
+$(DSC): $(ORIG_SRC_TAR) $(BUILDDIR)
+       cd $(BUILDDIR); dpkg-buildpackage -S -us -uc -d
 
 .PHONY: upload
+upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
 upload: $(DEBS)
-       tar cf - ${DEBS} | ssh repoman@repo.proxmox.com upload --product pve --dist buster
+       tar cf - $(DEBS) | ssh repoman@repo.proxmox.com upload --product pve --dist $(UPLOAD_DIST)
 
 .PHONY: distclean clean
 distclean: clean
 clean:
-       rm -rf $(BUILDDIR) $(PACKAGE)*.deb *.buildinfo *.changes
+       rm -rf $(PACKAGE)-[0-9]*/ $(PACKAGE)*.tar* *.deb *.dsc *.build *.buildinfo *.changes
 
 .PHONY: dinstall
 dinstall: $(DEBS)