]> git.proxmox.com Git - pmg-log-tracker.git/blob - Makefile
buildsys: add sbuild convenience target
[pmg-log-tracker.git] / Makefile
1 include /usr/share/dpkg/pkg-info.mk
2 include /usr/share/dpkg/architecture.mk
3
4 PACKAGE=pmg-log-tracker
5
6 GITVERSION:=$(shell git rev-parse HEAD)
7
8 DEB=$(PACKAGE)_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb
9 DBG_DEB=$(PACKAGE)-dbgsym_$(DEB_VERSION)_$(DEB_BUILD_ARCH).deb
10 DSC=rust-$(PACKAGE)_$(DEB_VERSION).dsc
11
12 ifeq ($(BUILD_MODE), release)
13 CARGO_BUILD_ARGS += --release
14 COMPILEDIR := target/release
15 else
16 COMPILEDIR := target/debug
17 endif
18
19 all: cargo-build $(SUBDIRS)
20
21 .PHONY: cargo-build
22 cargo-build:
23 cargo build $(CARGO_BUILD_ARGS)
24
25 .PHONY: build
26 build:
27 rm -rf build
28 rm -rf debian/control
29 debcargo package \
30 --config debian/debcargo.toml \
31 --changelog-ready \
32 --no-overlay-write-back \
33 --directory build \
34 $(PACKAGE) \
35 $(shell dpkg-parsechangelog -l debian/changelog -SVersion | sed -e 's/-.*//')
36 rm build/Cargo.lock
37 find build/debian -name "*.hint" -delete
38 cp build/debian/control debian/control
39
40 .PHONY: deb
41 deb: $(DEB)
42 $(DEB) $(DBG_DEB): build
43 cd build; dpkg-buildpackage -b -us -uc --no-pre-clean --build-profiles=nodoc
44 lintian $(DEB)
45
46 .PHONY: dsc
47 dsc: $(DSC)
48 $(MAKE) $(DSC)
49 lintian $(DSC)
50
51 $(DSC): build
52 cd build; dpkg-buildpackage -S -us -uc -d -nc
53
54 .PHONY: sbuild
55 sbuild: $(DSC)
56 sbuild $(DSC)
57
58 .PHONY: dinstall
59 dinstall: $(DEB)
60 dpkg -i $(DEB)
61
62 .PHONY: upload
63 upload: $(DEB) $(DBG_DEB)
64 tar cf - $(DEB) $(DBG_DEB)| ssh -X repoman@repo.proxmox.com -- upload --product pmg --dist bullseye --arch $(DEB_BUILD_ARCH)
65
66 .PHONY: distclean
67 distclean: clean
68
69 .PHONY: clean
70 clean:
71 rm -rf *.deb $(PACKAGE)-* *.buildinfo *.changes *.dsc rust-$(PACKAGE)_*.tar.?z build/ *build
72 find . -name '*~' -exec rm {} ';'