]> git.proxmox.com Git - frr.git/blob - Makefile
buildsys: drop sysv init script, support systemd only
[frr.git] / Makefile
1 include /usr/share/dpkg/default.mk
2
3 PACKAGE=frr
4
5 SRCDIR=frr
6 BUILDDIR=$(PACKAGE)-$(DEB_VERSION_UPSTREAM)
7
8 ORIG_SRC_TAR=$(PACKAGE)_$(DEB_VERSION_UPSTREAM).orig.tar.gz
9 DSC=$(PACKAGE)_$(DEB_VERSION).dsc
10
11 MAIN_DEB=$(PACKAGE)_$(DEB_VERSION)_$(DEB_HOST_ARCH).deb
12 OTHER_DEBS=\
13 frr-doc_$(DEB_VERSION)_all.deb \
14 frr-pythontools_$(DEB_VERSION)_all.deb \
15 frr-snmp_$(DEB_VERSION)_$(DEB_HOST_ARCH).deb \
16
17 DBG_DEBS=\
18 frr-dbgsym_$(DEB_VERSION)_$(DEB_HOST_ARCH).deb \
19 frr-snmp-dbgsym_$(DEB_VERSION)_$(DEB_HOST_ARCH).deb \
20
21 DEBS=$(MAIN_DEB) $(OTHER_DEBS) $(DBG_DEBS)
22
23 all: $(DEBS)
24 @echo $(DEBS)
25
26 .PHONY: submodule
27 submodule:
28 test -f "$(SRCDIR)/debian/changelog" || git submodule update --init
29
30 # FIXME: fully merge our and upstream (which is also the upstream for debian's "downstream") packaging
31 # so that the top-level debian directory is the canonical source.
32 $(BUILDDIR): submodule debian/changelog
33 rm -rf $@ $@.tmp
34 cp -a $(SRCDIR) $@.tmp
35 rm $@.tmp/debian/changelog $@.tmp/debian/compat
36 sed -i '/frrinit\.sh/d' $@.tmp/debian/rules
37 cp -a debian/* $@.tmp/debian/
38 mv $@.tmp $@
39
40 $(ORIG_SRC_TAR): $(BUILDDIR)
41 tar czf $(ORIG_SRC_TAR) --exclude="$(BUILDDIR)/debian" $(BUILDDIR)
42
43 .PHONY: deb
44 deb: $(DEBS)
45 $(OTHER_DEBS) $(DBG_DEBS): $(MAIN_DEB)
46 $(MAIN_DEB): $(BUILDDIR)
47 cd $(BUILDDIR); dpkg-buildpackage -b -uc -us --build-profiles="pkg.frr.nortrlib"
48 lintian $(DEBS)
49
50 .PHONY: dsc
51 dsc:
52 rm -rf $(BUILDDIR) $(ORIG_SRC_TAR) $(DSC)
53 $(MAKE) $(DSC)
54 lintian $(DSC)
55
56 $(DSC): $(BUILDDIR) $(ORIG_SRC_TAR)
57 cd $(BUILDDIR); dpkg-buildpackage -S -uc -us --build-profiles="pkg.frr.nortrlib" -d
58
59 sbuild: $(DSC)
60 sbuild --profiles="pkg.frr.nortrlib" $<
61
62 .PHONY: upload
63 upload: $(DEBS)
64 tar cf - $(DEBS)|ssh -X repoman@repo.proxmox.com -- upload --product pve --dist bullseye
65
66 .PHONY: distclean
67 distclean: clean
68
69 .PHONY: clean
70 clean:
71 rm -rf $(PACKAGE)-[0-9]*/
72 rm -rf $(PACKAGE)*.tar* *.deb *.dsc *.changes *.dsc *.buildinfo *.build
73
74 .PHONY: dinstall
75 dinstall: deb
76 dpkg -i $(DEBS)