]> git.proxmox.com Git - pve-installer.git/blame - Makefile
buildsys: expand clean target
[pve-installer.git] / Makefile
CommitLineData
aee9344c 1include /usr/share/dpkg/default.mk
6db9b06a 2
9cdfeefc 3PACKAGE = proxmox-installer
aee9344c 4DEB=$(PACKAGE)_$(DEB_VERSION)_$(DEB_HOST_ARCH).deb
e70f1b2f 5
9cdfeefc 6CARGO ?= cargo
e70f1b2f
CH
7ifeq ($(BUILD_MODE), release)
8CARGO_BUILD_ARGS += --release
9CARGO_COMPILEDIR := target/release
10else
11CARGO_COMPILEDIR := target/debug
12endif
13
f3521633 14INSTALLER_SOURCES=$(shell git ls-files) country.dat
89a12446 15
aee9344c
TL
16PREFIX = /usr
17BINDIR = $(PREFIX)/bin
18USR_BIN := proxmox-tui-installer
19
20COMPILED_BINS := \
21 $(addprefix $(CARGO_COMPILEDIR)/,$(USR_BIN))
22
f3521633 23all:
f0583fd4
DM
24
25country.dat: country.pl
fc2c6d3e
TL
26 ./country.pl > country.dat.tmp
27 mv country.dat.tmp country.dat
780479c5 28
99f0b523
TL
29deb: $(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
35test-$(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
40DESTDIR=
41VARLIBDIR=$(DESTDIR)/var/lib/proxmox-installer
42HTMLDIR=$(VARLIBDIR)/html/common
89a12446 43
c2f72dd6 44.PHONY: install
99f0b523 45install: $(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
68upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
69upload: $(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 79prepare-check-env: test-$(DEB)
92cbd446 80 rm -rf testdir
6ec8d163 81 dpkg -X test-$(DEB) testdir
c2f72dd6 82
29f32406
TL
83cd-info.test: PRODUCT ?= pve
84cd-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 92check-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 96check-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
100check-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 105check-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 113check-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
123clean:
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 {} ';'