]> git.proxmox.com Git - pve-qemu.git/blob - Makefile
cad130e9ea7ccfc0f1057b6d2012465650f62913
[pve-qemu.git] / Makefile
1 include /usr/share/dpkg/default.mk
2
3 PACKAGE = pve-qemu-kvm
4
5 SRCDIR := qemu
6 BUILDDIR ?= $(PACKAGE)-$(DEB_VERSION_UPSTREAM)
7 ORIG_SRC_TAR=$(PACKAGE)_$(DEB_VERSION_UPSTREAM).orig.tar.gz
8
9 GITVERSION := $(shell git rev-parse HEAD)
10
11 DSC=$(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION).dsc
12 DEB = $(PACKAGE)_$(DEB_VERSION_UPSTREAM_REVISION)_$(DEB_BUILD_ARCH).deb
13 DEB_DBG = $(PACKAGE)-dbgsym_$(DEB_VERSION_UPSTREAM_REVISION)_$(DEB_BUILD_ARCH).deb
14 DEBS = $(DEB) $(DEB_DBG)
15
16 all: $(DEBS)
17
18 .PHONY: submodule
19 submodule:
20 ifeq ($(shell test -f "$(SRCDIR)/configure" && echo 1 || echo 0), 0)
21 git submodule update --init --recursive
22 cd $(SRCDIR); meson subprojects download
23 endif
24
25 PC_BIOS_FW_PURGE_LIST_IN = \
26 hppa-firmware.img \
27 openbios-ppc \
28 openbios-sparc32 \
29 openbios-sparc64 \
30 palcode-clipper \
31 s390-ccw.img \
32 s390-netboot.img \
33 u-boot.e500 \
34 .*\.dtb \
35 qemu_vga.ndrv \
36 slof.bin \
37 opensbi-riscv.*-generic-fw_dynamic.bin \
38
39 BLOB_PURGE_SED_CMDS = $(foreach FILE,$(PC_BIOS_FW_PURGE_LIST_IN),-e "/$(FILE)/d")
40 BLOB_PURGE_FILTER = $(foreach FILE,$(PC_BIOS_FW_PURGE_LIST_IN),-e "$(FILE)")
41
42 $(BUILDDIR): submodule
43 # check if qemu/ was used for a build
44 # if so, please run 'make distclean' in the submodule and try again
45 test ! -f $(SRCDIR)/build/config.status
46 rm -rf $@.tmp $@
47 cp -a $(SRCDIR) $@.tmp
48 cp -a debian $@.tmp/debian
49 rm -rf $@.tmp/roms/edk2 # packaged separately
50 find $@.tmp/pc-bios -type f | grep $(BLOB_PURGE_FILTER) | xargs rm -f
51 sed -i $(BLOB_PURGE_SED_CMDS) $@.tmp/pc-bios/meson.build
52 echo "git clone git://git.proxmox.com/git/pve-qemu.git\\ngit checkout $(GITVERSION)" > $@.tmp/debian/SOURCE
53 mv $@.tmp $@
54
55 .PHONY: deb kvm
56 deb kvm: $(DEBS)
57 $(DEB_DBG): $(DEB)
58 $(DEB): $(BUILDDIR)
59 cd $(BUILDDIR); dpkg-buildpackage -b -us -uc -j
60 lintian $(DEBS)
61
62 sbuild: $(DSC)
63 sbuild $(DSC)
64
65 $(ORIG_SRC_TAR): $(BUILDDIR)
66 tar czf $(ORIG_SRC_TAR) --exclude="$(BUILDDIR)/debian" $(BUILDDIR)
67
68 .PHONY: dsc
69 dsc:
70 rm -rf *.dsc $(BUILDDIR)
71 $(MAKE) $(DSC)
72 lintian $(DSC)
73
74 $(DSC): $(ORIG_SRC_TAR) $(BUILDDIR)
75 cd $(BUILDDIR); dpkg-buildpackage -S -us -uc -d
76
77 .PHONY: upload
78 upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
79 upload: $(DEBS)
80 tar cf - $(DEBS) | ssh repoman@repo.proxmox.com upload --product pve --dist $(UPLOAD_DIST)
81
82 .PHONY: distclean clean
83 distclean: clean
84 clean:
85 rm -rf $(PACKAGE)-[0-9]*/ $(PACKAGE)*.tar* *.deb *.dsc *.build *.buildinfo *.changes
86
87 .PHONY: dinstall
88 dinstall: $(DEBS)
89 dpkg -i $(DEBS)