X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=Makefile;h=c05c6419ac66db7969cea239baafebd510f141b8;hb=refs%2Fheads%2Fmaster;hp=da36a9f3ee0933dc8e16d05244174861cb75536e;hpb=9525982417a5af29a2d74a7991717572518f8d57;p=pve-qemu.git diff --git a/Makefile b/Makefile index da36a9f..f23b041 100644 --- a/Makefile +++ b/Makefile @@ -1,53 +1,90 @@ -# also update debian/changelog -KVMVER=2.7.1 -KVMPKGREL=4 +include /usr/share/dpkg/default.mk -KVMPACKAGE = pve-qemu-kvm -KVMSRC = qemu -BUILDSRC = $(KVMSRC).tmp +PACKAGE = pve-qemu-kvm SRCDIR := qemu +BUILDDIR ?= $(PACKAGE)-$(DEB_VERSION_UPSTREAM) +ORIG_SRC_TAR=$(PACKAGE)_$(DEB_VERSION_UPSTREAM).orig.tar.gz -ARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH) -GITVERSION := $(shell git rev-parse master) +GITVERSION := $(shell git rev-parse HEAD) -DEB = ${KVMPACKAGE}_${KVMVER}-${KVMPKGREL}_${ARCH}.deb -DEB_DBG = ${KVMPACKAGE}-dbg_${KVMVER}-${KVMPKGREL}_${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}/debian/changelog" || git submodule update --init +ifeq ($(shell test -f "$(SRCDIR)/configure" && echo 1 || echo 0), 0) + git submodule update --init --recursive + cd $(SRCDIR); meson subprojects download +endif + +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 $@.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): | submodule - rm -f *.deb - rm -rf $(BUILDSRC) - mkdir $(BUILDSRC) - cp -a $(KVMSRC)/* $(BUILDSRC)/ - tar -C $(BUILDSRC) -xJf efi-roms-1182.tar.xz - cp -a debian $(BUILDSRC)/debian - echo "git clone git://git.proxmox.com/git/pve-qemu-kvm.git\\ngit checkout $(GITVERSION)" > $(BUILDSRC)/debian/SOURCE - # set package version - sed -i 's/^pkgversion="".*/pkgversion="${KVMPACKAGE}_${KVMVER}-${KVMPKGREL}"/' $(BUILDSRC)/configure - cd $(BUILDSRC); dpkg-buildpackage -b -rfakeroot -us -uc - lintian $(DEBS) || true +$(DEB): $(BUILDDIR) + cd $(BUILDDIR); dpkg-buildpackage -b -us -uc + lintian $(DEBS) + +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 --produce pve --dist jessie + tar cf - $(DEBS) | ssh repoman@repo.proxmox.com upload --product pve --dist $(UPLOAD_DIST) -.PHONY: distclean +.PHONY: distclean clean distclean: clean - -.PHONY: clean clean: - rm -rf $(BUILDSRC) $(KVMPACKAGE)_* $(DEBS) *.buildinfo + rm -rf $(PACKAGE)-[0-9]*/ $(PACKAGE)*.tar* *.deb *.dsc *.build *.buildinfo *.changes .PHONY: dinstall dinstall: $(DEBS)