]> git.proxmox.com Git - proxmox-perl-rs.git/blob - Makefile
bump version to 0.6.1
[proxmox-perl-rs.git] / Makefile
1 CARGO ?= cargo
2
3 define to_upper
4 $(shell echo "$(1)" | tr '[:lower:]' '[:upper:]')
5 endef
6
7 ifeq ($(BUILD_MODE), release)
8 CARGO_BUILD_ARGS += --release
9 DEBUG_LIBPATH :=
10 else
11 DEBUG_LIBPATH := "-L./target/debug",
12 endif
13
14 define package_template
15 sed -r \
16 -e 's/\{\{PRODUCT\}\}/$(1)/g;' \
17 -e 's/\{\{LIBRARY\}\}/$(2)/g;' \
18 -e 's|\{\{DEBUG_LIBPATH\}\}|$(DEBUG_LIBPATH)|g;' \
19 Proxmox/Lib/template.pm \
20 >Proxmox/Lib/$(1).pm
21 endef
22
23 .PHONY: all
24 all:
25 ifeq ($(BUILD_TARGET), pve)
26 $(MAKE) pve
27 else ifeq ($(BUILD_TARGET), pmg)
28 $(MAKE) pmg
29 else
30 @echo "Run one of"
31 @echo " - make pve"
32 @echo " - make pmg"
33 endif
34
35 .PHONY: pve pmg
36 pve pmg:
37 @PERLMOD_PRODUCT=$(call to_upper,$@) \
38 $(CARGO) build $(CARGO_BUILD_ARGS) -p $@-rs
39
40 .PHONY: gen
41 gen:
42 $(call package_template,PMG,pmg_rs)
43 $(call package_template,PVE,pve_rs)
44 perl ./scripts/genpackage.pl Common Proxmox::RS::CalendarEvent
45 perl ./scripts/genpackage.pl PVE \
46 PVE::RS::APT::Repositories \
47 PVE::RS::OpenId \
48 PVE::RS::TFA
49 perl ./scripts/genpackage.pl PMG \
50 PMG::RS::APT::Repositories \
51 PMG::RS::Acme \
52 PMG::RS::CSR \
53 PMG::RS::OpenId \
54 PMG::RS::TFA
55
56 build:
57 rm -rf build
58 mkdir build
59 echo system >build/rust-toolchain
60 cp -a ./scripts ./build
61 cp -a ./common ./build
62 cp -a ./pve-rs ./build
63 cp -a ./pmg-rs ./build
64 cp -a ./Proxmox ./build
65 $(MAKE) BUILD_MODE=release -C build -f ../Makefile gen
66 mkdir -p ./build/pve-rs/Proxmox/Lib
67 mv ./build/Proxmox/Lib/PVE.pm ./build/pve-rs/Proxmox/Lib/PVE.pm
68 mkdir -p ./build/pmg-rs/Proxmox/Lib
69 mv ./build/Proxmox/Lib/PMG.pm ./build/pmg-rs/Proxmox/Lib/PMG.pm
70 mv ./build/PVE ./build/pve-rs
71 mv ./build/PMG ./build/pmg-rs
72 mv ./build/Proxmox ./build/common/pkg
73 # So the common packages end up in ./build, rather than ./build/common
74 mv ./build/common/pkg ./build/common-pkg
75
76 pve-deb: build
77 cd ./build/pve-rs && dpkg-buildpackage -b -uc -us
78 touch $@
79
80 pmg-deb: build
81 cd ./build/pmg-rs && dpkg-buildpackage -b -uc -us
82 touch $@
83
84 common-deb: build
85 cd ./build/common-pkg && dpkg-buildpackage -b -uc -us
86 touch $@
87
88 %-upload: %-deb
89 cd build; \
90 dcmd --deb lib$*-rs-perl*.changes \
91 | grep -v '.changes$$' \
92 | tar -cf "$@.tar" -T-; \
93 cat "$@.tar" | ssh -X repoman@repo.proxmox.com upload --product $* --dist bullseye
94
95 .PHONY: clean
96 clean:
97 cargo clean
98 rm -rf ./build ./PVE ./PMG ./pve-deb ./pmg-deb