]> git.proxmox.com Git - pve-qemu.git/blobdiff - Makefile
buildsys: create build directory atomically
[pve-qemu.git] / Makefile
index f25cda17b41acaeccf67305376cbde6e7dd5dd40..da63ce27bd7da5b60569b52ff2f31ce82ccc6f86 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,13 +1,14 @@
-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}
+ORIG_SRC_TAR=$(PACKAGE)_$(DEB_VERSION_UPSTREAM).orig.tar.gz
 
 GITVERSION := $(shell git rev-parse HEAD)
 
+DSC=$(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION).dsc
 DEB = ${PACKAGE}_${DEB_VERSION_UPSTREAM_REVISION}_${DEB_BUILD_ARCH}.deb
 DEB_DBG = ${PACKAGE}-dbg_${DEB_VERSION_UPSTREAM_REVISION}_${DEB_BUILD_ARCH}.deb
 DEBS = $(DEB) $(DEB_DBG)
@@ -16,17 +17,19 @@ all: $(DEBS)
 
 .PHONY: submodule
 submodule:
-       test -f "${SRCDIR}/debian/changelog" || git submodule update --init
+       test -f "${SRCDIR}/configure" || git submodule update --init --recursive
 
 $(BUILDDIR): keycodemapdb | submodule
-       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
-       # set package version
-       sed -i 's/^pkgversion="".*/pkgversion="${PACKAGE}_${KVMVER}-${KVMPKGREL}"/' $(BUILDDIR)/configure
+       # 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).tmp $(BUILDDIR)
+       cp -a $(SRCDIR) $(BUILDDIR).tmp
+       cp -a debian $(BUILDDIR).tmp/debian
+       rm -rf $(BUILDDIR).tmp/ui/keycodemapdb
+       cp -a keycodemapdb $(BUILDDIR).tmp/ui/
+       echo "git clone git://git.proxmox.com/git/pve-qemu.git\\ngit checkout $(GITVERSION)" > $(BUILDDIR).tmp/debian/SOURCE
+       mv $(BUILDDIR).tmp $(BUILDDIR)
 
 .PHONY: deb kvm
 deb kvm: $(DEBS)
@@ -35,6 +38,19 @@ $(DEB): $(BUILDDIR)
        cd $(BUILDDIR); dpkg-buildpackage -b -us -uc -j
        lintian $(DEBS)
 
+sbuild: $(DSC)
+       sbuild $(DSC)
+
+$(ORIG_SRC_TAR): $(BUILDDIR)
+       tar czf $(ORIG_SRC_TAR) --exclude="$(BUILDDIR)/debian" $(BUILDDIR)
+
+.PHONY: dsc
+dsc: $(DSC)
+$(DSC): $(ORIG_SRC_TAR) $(BUILDDIR)
+       rm -f *.dsc
+       cd $(BUILDDIR); dpkg-buildpackage -S -us -uc -d
+       lintian $(DSC)
+
 .PHONY: update
 update:
        cd $(SRCDIR) && git submodule deinit ui/keycodemapdb || true
@@ -47,13 +63,14 @@ update:
        git add keycodemapdb
 
 .PHONY: upload
+upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
 upload: $(DEBS)
-       tar cf - ${DEBS} | ssh repoman@repo.proxmox.com upload --product pve --dist stretch
+       tar cf - ${DEBS} | ssh repoman@repo.proxmox.com upload --product pve --dist $(UPLOAD_DIST)
 
 .PHONY: distclean clean
 distclean: clean
 clean:
-       rm -rf $(BUILDDIR) $(PACKAGE)_* $(DEBS) *.buildinfo *.changes
+       rm -rf $(BUILDDIR) $(PACKAGE)*.deb *.buildinfo *.changes
 
 .PHONY: dinstall
 dinstall: $(DEBS)