]> git.proxmox.com Git - pve-installer.git/blob - Makefile
buildsys: make country.dat generation atomic
[pve-installer.git] / Makefile
1 include /usr/share/dpkg/pkg-info.mk
2
3 DEB=proxmox-installer_${DEB_VERSION_UPSTREAM_REVISION}_all.deb
4
5 INSTALLER_SOURCES= \
6 unconfigured.sh \
7 fake-start-stop-daemon \
8 policy-disable-rc.d \
9 interfaces \
10 checktime \
11 xinitrc \
12 spice-vdagent.sh \
13 Xdefaults \
14 country.dat \
15 proxinstall
16
17 HTML_SOURCES=$(wildcard html/*.htm)
18 HTML_COMMON_SOURCES=$(wildcard html-common/*.htm) $(wildcard html-common/*.css) $(wildcard html-common/*.png)
19
20 all: ${INSTALLER_SOURCES} ${HTML_COMMON_SOURCES} ${HTML_SOURCES}
21
22 country.dat: country.pl
23 ./country.pl > country.dat.tmp
24 mv country.dat.tmp country.dat
25
26 deb: ${DEB}
27 ${DEB}: ${INSTALLER_SOURCES} ${HTML_COMMON_SOURCES} ${HTML_SOURCES} ProxmoxInstallerSetup.pm
28 rsync --exclude='test*.img' -a * build
29 cd build; dpkg-buildpackage -b -us -uc
30 lintian ${DEB}
31
32 DESTDIR=
33 VARLIBDIR=$(DESTDIR)/var/lib/proxmox-installer
34 HTMLDIR=$(VARLIBDIR)/html/common
35
36 .PHONY: install
37 install: ${INSTALLER_SOURCES} ${HTML_COMMON_SOURCES} ${HTML_SOURCES}
38 $(MAKE) -C banner install
39 $(MAKE) -C Proxmox install
40 install -D -m 644 interfaces ${DESTDIR}/etc/network/interfaces
41 install -D -m 755 fake-start-stop-daemon ${VARLIBDIR}/fake-start-stop-daemon
42 install -D -m 755 policy-disable-rc.d $(VARLIBDIR)/policy-disable-rc.d
43 install -D -m 644 country.dat $(VARLIBDIR)/country.dat
44 install -D -m 755 unconfigured.sh ${DESTDIR}/sbin/unconfigured.sh
45 install -D -m 755 proxinstall ${DESTDIR}/usr/bin/proxinstall
46 install -D -m 755 checktime ${DESTDIR}/usr/bin/checktime
47 install -D -m 644 xinitrc ${DESTDIR}/.xinitrc
48 install -D -m 755 spice-vdagent.sh ${DESTDIR}/.spice-vdagent.sh
49 install -D -m 644 Xdefaults ${DESTDIR}/.Xdefaults
50
51 %-banner.png: %-banner.svg
52 rsvg-convert -o $@ $<
53
54 .PHONY: upload
55 upload: ${DEB}
56 tar cf - ${DEB} | ssh -X repoman@repo.proxmox.com -- upload --product pve,pmg,pbs --dist bullseye
57
58 %.img:
59 truncate -s 2G $@
60
61 %.big.img:
62 truncate -s 8G $@
63
64 .PHONY: prepare-check-env
65 prepare-check-env: $(DEB)
66 umount -Rd testdir || true
67 rm -rf testdir
68 dpkg -X $(DEB) testdir
69
70 check-pve: prepare-check-env test.img
71 printf '%s\n' "PRODUCT='pve'" >cd-info.test
72 G_SLICE=always-malloc perl -I testdir/usr/share/perl5 testdir/usr/bin/proxinstall -t test.img
73
74 check-pve-multidisks: prepare-check-env test.img test2.img test3.img test4.img test5.big.img
75 printf '%s\n' "PRODUCT='pve'" >cd-info.test
76 G_SLICE=always-malloc perl -I testdir/usr/share/perl5 testdir/usr/bin/proxinstall -t test.img,test2.img,test3.img,test4.img,test5.big.img
77
78 check-pmg: prepare-check-env test.img
79 printf '%s\n' "PRODUCT='pmg'" >cd-info.test
80 G_SLICE=always-malloc perl -I testdir/usr/share/perl5 testdir/usr/bin/proxinstall -t test.img
81
82 check-pbs: prepare-check-env test.img
83 printf '%s\n' "PRODUCT='pbs'" >cd-info.test
84 G_SLICE=always-malloc perl -I testdir/usr/share/perl5 testdir/usr/bin/proxinstall -t test.img
85
86
87 .phony: clean
88 clean:
89 umount -Rd testdir || true
90 rm -rf *~ *.deb target build packages packages.tmp testdir test*.img pve-final.pkglist \
91 *.buildinfo *.changes country.dat final.pkglist cd-info.test
92 find . -name '*~' -exec rm {} ';'