]>
Commit | Line | Data |
---|---|---|
c3add5de SM |
1 | #!/usr/bin/make -f |
2 | ||
7dc9a305 MW |
3 | # FRRouting Configuration options |
4 | ###################################### | |
5 | # | |
6 | # WANT_xxxx --> Set to 1 for enable, 0 for disable | |
7 | # The following are the defaults. They can be overridden by setting a | |
8 | # env variable to a different value | |
9782a8db | 9 | |
10 | WANT_LDP ?= 1 | |
11 | WANT_PIM ?= 1 | |
12 | WANT_OSPFAPI ?= 1 | |
13 | WANT_TCP_ZEBRA ?= 0 | |
f1aaa729 | 14 | WANT_BGP_VNC ?= 1 |
9782a8db | 15 | WANT_CUMULUS_MODE ?= 0 |
16 | WANT_MULTIPATH ?= 1 | |
17 | WANT_SNMP ?= 0 | |
100c355e | 18 | WANT_RPKI ?= 0 |
7134904b | 19 | WANT_BFD ?= 1 |
9782a8db | 20 | |
100c355e MW |
21 | # NOTES: |
22 | # | |
23 | # If you use WANT_RPKI, then there is a new dependency for librtr0 package | |
24 | # and a build dependency of the librtr-dev package. | |
25 | # While the librtr0 is added to the depenencies automatically, the build | |
26 | # dependency can't be changed dynamically and building will fail if the | |
27 | # librtr-dev isn't installed during package build | |
28 | # Tested versions of both packages can be found at | |
29 | # https://ci1.netdef.org/browse/RPKI-RTRLIB/latestSuccessful/artifact | |
30 | # | |
7dc9a305 | 31 | # If multipath is enabled (WANT_MULTIPATH=1), then set number of multipaths here |
100c355e | 32 | # Please be aware that 0 is NOT disabled, but treated as unlimited |
9782a8db | 33 | |
34 | MULTIPATH ?= 256 | |
35 | ||
36 | # Set the following to the value required (or leave alone for the default below) | |
7dc9a305 | 37 | # WANT_FRR_USER is used for the username and groupname of the FRR user account |
9782a8db | 38 | |
39 | WANT_FRR_USER ?= frr | |
40 | WANT_FRR_VTY_GROUP ?= frrvty | |
41 | ||
351c5664 QY |
42 | # Don't build PDF docs by default |
43 | GENERATE_PDF ?= 0 | |
44 | ||
7dc9a305 MW |
45 | # |
46 | #################################### | |
47 | ||
c3add5de | 48 | export DH_VERBOSE=1 |
4c2db6ed | 49 | export DEB_BUILD_MAINT_OPTIONS = hardening=+all |
c3add5de SM |
50 | export DH_OPTIONS=-v |
51 | ||
52 | ifeq ($(WANT_SNMP), 1) | |
53 | USE_SNMP=--enable-snmp | |
54 | $(warning "DEBIAN: SNMP enabled, sorry for your inconvenience") | |
55 | else | |
9782a8db | 56 | USE_SNMP=--disable-snmp |
c3add5de SM |
57 | $(warning "DEBIAN: SNMP disabled, see README.Debian") |
58 | endif | |
59 | ||
9782a8db | 60 | ifeq ($(WANT_LDP), 1) |
7dc9a305 MW |
61 | USE_LDP=--enable-ldpd |
62 | else | |
63 | USE_LDP=--disable-ldpd | |
64 | endif | |
65 | ||
9782a8db | 66 | ifeq ($(WANT_PIM), 1) |
7dc9a305 MW |
67 | USE_PIM=--enable-pimd |
68 | else | |
69 | USE_PIM=--disable-pimd | |
70 | endif | |
71 | ||
9782a8db | 72 | ifeq ($(WANT_OSPFAPI), 1) |
7dc9a305 MW |
73 | USE_OSPFAPI=--enable-ospfapi=yes |
74 | else | |
75 | USE_OSPFAPI=--enable-ospfapi=no | |
76 | endif | |
77 | ||
7dc9a305 MW |
78 | ifeq ($(WANT_TCP_ZEBRA),1) |
79 | USE_TCP_ZEBRA=--enable-tcp-zebra | |
9782a8db | 80 | else |
81 | USE_TCP_ZEBRA=--disable-tcp-zebra | |
7dc9a305 MW |
82 | endif |
83 | ||
9782a8db | 84 | ifeq ($(WANT_BGP_VNC), 1) |
7dc9a305 MW |
85 | USE_BGP_VNC=--enable-bgp-vnc=yes |
86 | else | |
87 | USE_BGP_VNC=--enable-bgp-vnc=no | |
88 | endif | |
89 | ||
9782a8db | 90 | USE_FRR_USER=--enable-user=$(WANT_FRR_USER) |
91 | USE_FRR_GROUP=--enable-group=$(WANT_FRR_USER) | |
92 | USE_FRR_VTY_GROUP=--enable-vty-group=$(WANT_FRR_VTY_GROUP) | |
7dc9a305 | 93 | |
9782a8db | 94 | ifeq ($(WANT_MULTIPATH), 1) |
95 | USE_MULTIPATH=--enable-multipath=$(MULTIPATH) | |
7dc9a305 MW |
96 | else |
97 | USE_MULTIPATH=--disable-multipath | |
98 | endif | |
99 | ||
a2ec1de2 | 100 | ifeq ($(WANT_CUMULUS_MODE), 1) |
7dc9a305 MW |
101 | USE_CUMULUS=--enable-cumulus=yes |
102 | else | |
103 | USE_CUMULUS=--enable-cumulus=no | |
104 | endif | |
105 | ||
100c355e MW |
106 | ifeq ($(WANT_RPKI), 1) |
107 | USE_RPKI=--enable-rpki | |
108 | else | |
109 | USE_RPKI=--disable-rpki | |
110 | endif | |
111 | ||
7134904b RZ |
112 | ifeq ($(WANT_BFD), 1) |
113 | USE_BFD=--enable-bfdd | |
114 | else | |
115 | USE_BFD=--disable-bfdd | |
116 | endif | |
117 | ||
c3add5de SM |
118 | ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) |
119 | DEBIAN_JOBS := $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) | |
120 | endif | |
121 | ||
122 | ifdef DEBIAN_JOBS | |
123 | MAKEFLAGS += -j$(DEBIAN_JOBS) | |
124 | endif | |
125 | ||
126 | %: | |
127 | dh $@ --with=autoreconf --parallel --dbg-package=frr-dbg --list-missing | |
128 | ||
100c355e MW |
129 | override_dh_gencontrol: |
130 | ifeq ($(WANT_RPKI), 1) | |
131 | dh_gencontrol -- -Vdist:Depends="librtr0 (>= 0.5)" | |
89073ff1 MW |
132 | else |
133 | dh_gencontrol | |
100c355e MW |
134 | endif |
135 | ||
c3add5de | 136 | override_dh_auto_configure: |
05f03858 | 137 | # Frr needs /proc to check some BSD vs Linux specific stuff. |
c3add5de SM |
138 | # Else it fails with an obscure error message pointing out that |
139 | # IPCTL_FORWARDING is an undefined symbol which is not very helpful. | |
140 | @if ! [ -d /proc/1 ]; then \ | |
141 | echo "./configure needs a mounted /proc"; \ | |
142 | exit 1; \ | |
143 | fi | |
144 | ||
145 | if ! [ -e config.status ]; then \ | |
146 | dh_auto_configure -- \ | |
147 | --enable-exampledir=/usr/share/doc/frr/examples/ \ | |
148 | --localstatedir=/var/run/frr \ | |
149 | --sbindir=/usr/lib/frr \ | |
150 | --sysconfdir=/etc/frr \ | |
151 | $(USE_SNMP) \ | |
7dc9a305 MW |
152 | $(USE_OSPFAPI) \ |
153 | $(USE_MULTIPATH) \ | |
154 | $(USE_LDP) \ | |
155 | $(USE_TCP_ZEBRA) \ | |
23b53dca | 156 | --enable-fpm \ |
7dc9a305 MW |
157 | $(USE_FRR_USER) $(USE_FRR_GROUP) \ |
158 | $(USE_FRR_VTY_GROUP) \ | |
c3add5de SM |
159 | --enable-configfile-mask=0640 \ |
160 | --enable-logfile-mask=0640 \ | |
c3add5de SM |
161 | --with-libpam \ |
162 | --enable-systemd=no \ | |
c3add5de | 163 | --enable-poll=yes \ |
7dc9a305 MW |
164 | $(USE_CUMULUS) \ |
165 | $(USE_PIM) \ | |
05f03858 | 166 | --enable-dependency-tracking \ |
4c2db6ed | 167 | $(USE_BGP_VNC) \ |
100c355e | 168 | $(USE_RPKI) \ |
7134904b | 169 | $(USE_BFD) \ |
4c2db6ed | 170 | $(shell dpkg-buildflags --export=configure); \ |
c3add5de SM |
171 | fi |
172 | ||
173 | override_dh_auto_build: | |
174 | #dh_auto_build | |
175 | $(MAKE) | |
c3add5de SM |
176 | |
177 | # doc/ is a bit crazy | |
178 | ifeq ($(GENERATE_PDF), 1) | |
edc33b2f | 179 | dh_auto_build -- -C doc pdf |
c3add5de | 180 | endif |
9cb4ba0a | 181 | rm -vf doc/_build/texinfo/frr.info |
edc33b2f | 182 | dh_auto_build -- -C doc info |
c3add5de SM |
183 | |
184 | override_dh_auto_test: | |
185 | ||
186 | override_dh_auto_install: | |
187 | dh_auto_install | |
188 | ||
c650c681 | 189 | # installed in frr-pythontools |
190 | rm debian/tmp/usr/lib/frr/frr-reload.py | |
191 | ||
c3add5de SM |
192 | # cleaning up the info dir |
193 | rm -f debian/tmp/usr/share/info/dir* | |
194 | ||
195 | # install config files | |
196 | mkdir -p debian/tmp/etc/frr/ | |
197 | perl -pi -e 's#^!log file #!log file /var/log/frr/#' debian/tmp/usr/share/doc/frr/examples/*sample* | |
198 | ||
05f03858 | 199 | # installing the Frr specific SNMP MIB |
9782a8db | 200 | ifeq ($(WANT_SNMP), 1) |
c3add5de | 201 | install -D -m 644 ./zebra/GNOME-PRODUCT-ZEBRA-MIB debian/tmp/usr/share/snmp/mibs/GNOME-PRODUCT-ZEBRA-MIB |
9782a8db | 202 | else |
203 | mkdir -p debian/tmp/usr/share/snmp/mibs/ | |
204 | endif | |
c3add5de SM |
205 | |
206 | # cleaning .la files | |
207 | sed -i "/dependency_libs/ s/'.*'/''/" debian/tmp/usr/lib/*.la | |
27232291 | 208 | sed -i "/dependency_libs/ s/'.*'/''/" debian/tmp/usr/lib/frr/modules/*.la |
c3add5de SM |
209 | |
210 | override_dh_systemd_start: | |
211 | dh_systemd_start frr.service | |
212 | ||
213 | override_dh_systemd_enable: | |
214 | dh_systemd_enable frr.service | |
215 |