]>
Commit | Line | Data |
---|---|---|
aee9344c | 1 | include /usr/share/dpkg/default.mk |
6db9b06a | 2 | |
9cdfeefc | 3 | PACKAGE = proxmox-installer |
aee9344c | 4 | DEB=$(PACKAGE)_$(DEB_VERSION)_$(DEB_HOST_ARCH).deb |
e70f1b2f | 5 | |
9cdfeefc | 6 | CARGO ?= cargo |
e70f1b2f CH |
7 | ifeq ($(BUILD_MODE), release) |
8 | CARGO_BUILD_ARGS += --release | |
9 | CARGO_COMPILEDIR := target/release | |
10 | else | |
11 | CARGO_COMPILEDIR := target/debug | |
12 | endif | |
13 | ||
f3521633 | 14 | INSTALLER_SOURCES=$(shell git ls-files) country.dat |
89a12446 | 15 | |
aee9344c TL |
16 | PREFIX = /usr |
17 | BINDIR = $(PREFIX)/bin | |
18 | USR_BIN := proxmox-tui-installer | |
19 | ||
20 | COMPILED_BINS := \ | |
21 | $(addprefix $(CARGO_COMPILEDIR)/,$(USR_BIN)) | |
22 | ||
f3521633 | 23 | all: |
f0583fd4 DM |
24 | |
25 | country.dat: country.pl | |
fc2c6d3e TL |
26 | ./country.pl > country.dat.tmp |
27 | mv country.dat.tmp country.dat | |
780479c5 | 28 | |
99f0b523 TL |
29 | deb: $(DEB) |
30 | $(DEB): $(INSTALLER_SOURCES) | |
bf1de878 | 31 | rsync --exclude='test*.img' -a * build |
c5582ca4 | 32 | cd build; dpkg-buildpackage -b -us -uc |
99f0b523 | 33 | lintian $(DEB) |
c2f72dd6 | 34 | |
6ec8d163 TL |
35 | test-$(DEB): $(INSTALLER_SOURCES) |
36 | rsync --exclude='test*.img' -a * build | |
37 | cd build; dpkg-buildpackage -b -us -uc -nc | |
38 | mv $(DEB) test-$(DEB) | |
39 | ||
c2f72dd6 TL |
40 | DESTDIR= |
41 | VARLIBDIR=$(DESTDIR)/var/lib/proxmox-installer | |
42 | HTMLDIR=$(VARLIBDIR)/html/common | |
89a12446 | 43 | |
c2f72dd6 | 44 | .PHONY: install |
99f0b523 | 45 | install: $(INSTALLER_SOURCES) $(CARGO_COMPILEDIR)/proxmox-tui-installer |
c2f72dd6 | 46 | $(MAKE) -C banner install |
ab97da2c | 47 | $(MAKE) -C Proxmox install |
99f0b523 TL |
48 | install -D -m 644 interfaces $(DESTDIR)/etc/network/interfaces |
49 | install -D -m 755 fake-start-stop-daemon $(VARLIBDIR)/fake-start-stop-daemon | |
c2f72dd6 TL |
50 | install -D -m 755 policy-disable-rc.d $(VARLIBDIR)/policy-disable-rc.d |
51 | install -D -m 644 country.dat $(VARLIBDIR)/country.dat | |
99f0b523 TL |
52 | install -D -m 755 unconfigured.sh $(DESTDIR)/sbin/unconfigured.sh |
53 | install -D -m 755 proxinstall $(DESTDIR)/usr/bin/proxinstall | |
aee9344c TL |
54 | install -D -m 755 proxmox-low-level-installer $(DESTDIR)/$(BINDIR)/proxmox-low-level-installer |
55 | $(foreach i,$(USR_BIN), install -m755 $(CARGO_COMPILEDIR)/$(i) $(DESTDIR)$(BINDIR)/) | |
99f0b523 TL |
56 | install -D -m 755 checktime $(DESTDIR)/usr/bin/checktime |
57 | install -D -m 644 xinitrc $(DESTDIR)/.xinitrc | |
58 | install -D -m 755 spice-vdagent.sh $(DESTDIR)/.spice-vdagent.sh | |
59 | install -D -m 644 Xdefaults $(DESTDIR)/.Xdefaults | |
89a12446 | 60 | |
aee9344c TL |
61 | $(COMPILED_BINS): |
62 | $(CARGO) build --package proxmox-tui-installer --bin proxmox-tui-installer $(CARGO_BUILD_ARGS) | |
63 | ||
c2f72dd6 | 64 | %-banner.png: %-banner.svg |
9b9ddfce | 65 | rsvg-convert -o $@ $< |
782b4acd | 66 | |
c2f72dd6 | 67 | .PHONY: upload |
e23aeee4 TL |
68 | upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION) |
69 | upload: $(DEB) | |
99f0b523 | 70 | tar cf - $(DEB) | ssh -X repoman@repo.proxmox.com -- upload --product pve,pmg,pbs --dist $(UPLOAD_DIST) |
89a12446 | 71 | |
76960140 TL |
72 | %.img: |
73 | truncate -s 2G $@ | |
89a12446 | 74 | |
4a96f472 TL |
75 | %.big.img: |
76 | truncate -s 8G $@ | |
77 | ||
c2f72dd6 | 78 | .PHONY: prepare-check-env |
6ec8d163 | 79 | prepare-check-env: test-$(DEB) |
92cbd446 | 80 | rm -rf testdir |
6ec8d163 | 81 | dpkg -X test-$(DEB) testdir |
c2f72dd6 | 82 | |
29f32406 TL |
83 | cd-info.test: PRODUCT ?= pve |
84 | cd-info.test: | |
413ca90b TL |
85 | printf '%s\n' "PRODUCT='$(or $(PRODUCT), pve)'" >$@.tmp |
86 | printf '%s\n' "PRODUCTLONG='$(or $(PRODUCTLONG), Proxmox VE)'" >>$@.tmp | |
87 | printf '%s\n' "RELEASE='$(or $(RELEASE), 42.1)'" >>$@.tmp | |
88 | printf '%s\n' "ISORELEASE='$(or $(ISORELEASE), 1)'" >>$@.tmp | |
89 | printf '%s\n' "ISONAME='$(or $(ISONAME), proxmox-ve)'" >>$@.tmp | |
29f32406 TL |
90 | mv $@.tmp $@ |
91 | ||
c2f72dd6 | 92 | check-pve: prepare-check-env test.img |
413ca90b | 93 | rm -f cd-info.test; $(MAKE) cd-info.test |
92cbd446 | 94 | G_SLICE=always-malloc perl -I testdir/usr/share/perl5 testdir/usr/bin/proxinstall -t test.img |
89a12446 | 95 | |
4a96f472 | 96 | check-pve-multidisks: prepare-check-env test.img test2.img test3.img test4.img test5.big.img |
413ca90b | 97 | rm -f cd-info.test; $(MAKE) cd-info.test |
4a96f472 | 98 | 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 |
76960140 | 99 | |
0cf4be7d TL |
100 | check-pve-tui: prepare-check-env test.img |
101 | rm -f cd-info.test; $(MAKE) cd-info.test | |
102 | ./proxmox-low-level-installer dump-env -t | |
103 | testdir/usr/bin/proxmox-tui-installer -t test.img | |
104 | ||
c2f72dd6 | 105 | check-pmg: prepare-check-env test.img |
413ca90b TL |
106 | rm -f cd-info.test; $(MAKE) \ |
107 | PRODUCT=pmg \ | |
108 | PRODUCTLONG="Proxmox Mail Gateway" \ | |
109 | ISONAME='proxmox-mail-gateway' \ | |
110 | cd-info.test | |
a8213c0e DM |
111 | G_SLICE=always-malloc perl -I testdir/usr/share/perl5 testdir/usr/bin/proxinstall -t test.img |
112 | ||
c2f72dd6 | 113 | check-pbs: prepare-check-env test.img |
413ca90b TL |
114 | rm -f cd-info.test; $(MAKE) \ |
115 | PRODUCT='pbs' \ | |
116 | PRODUCTLONG='Proxmox Backup Server' \ | |
117 | ISONAME='proxmox-backup-server' \ | |
118 | cd-info.test | |
53748662 OB |
119 | G_SLICE=always-malloc perl -I testdir/usr/share/perl5 testdir/usr/bin/proxinstall -t test.img |
120 | ||
121 | ||
89a12446 DM |
122 | .phony: clean |
123 | clean: | |
2d5382e8 TL |
124 | rm -rf target build $(PACKAGE)-[0-9]* |
125 | rm -f $(PACKAGE)*.tar* *.deb packages packages.tmp *.build *.dsc *.buildinfo *.changes | |
126 | rm -f testdir test*.img pve-final.pkglist country.dat final.pkglist cd-info.test | |
b1e23923 | 127 | find . -name '*~' -exec rm {} ';' |