]>
Commit | Line | Data |
---|---|---|
718e3744 | 1 | ## Process this file with automake to produce Makefile.in. |
2 | ||
4a121f99 | 3 | AUTOMAKE_OPTIONS = subdir-objects 1.12 |
7c2275ac | 4 | ACLOCAL_AMFLAGS = -I m4 -Wall,no-override |
4a121f99 | 5 | |
aad24c5b | 6 | AM_CFLAGS = \ |
0c4285d7 | 7 | $(AC_CFLAGS) \ |
fdbd8086 DL |
8 | $(LIBYANG_CFLAGS) \ |
9 | $(SQLITE3_CFLAGS) \ | |
68b8a15f | 10 | $(UNWIND_CFLAGS) \ |
dbac691d DL |
11 | $(SAN_FLAGS) \ |
12 | $(WERROR) \ | |
13 | # end | |
af1b88e9 CH |
14 | AM_CXXFLAGS = \ |
15 | $(AC_CXXFLAGS) \ | |
16 | $(LIBYANG_CFLAGS) \ | |
17 | $(WERROR) \ | |
18 | # end | |
64dd7736 DL |
19 | |
20 | # CPPFLAGS_BASE does not contain the include path for overriding assert.h, | |
21 | # therefore should be used in tools that do *not* link libfrr or do not want | |
22 | # assert() overridden | |
23 | CPPFLAGS_BASE = \ | |
aad24c5b | 24 | -I$(top_srcdir) -I$(top_srcdir)/include -I$(top_srcdir)/lib \ |
09781197 | 25 | -I$(top_builddir) \ |
5dbb0a7b QY |
26 | $(LUA_INCLUDE) \ |
27 | # end | |
64dd7736 DL |
28 | AM_CPPFLAGS = \ |
29 | -I$(top_srcdir)/lib/assert \ | |
30 | $(CPPFLAGS_BASE) \ | |
31 | # end | |
63116a70 DL |
32 | |
33 | # AM_LDFLAGS is used for executables (daemons). LDFLAGS can be left alone, | |
34 | # but if it is changed it should include $(AM_LDFLAGS) | |
4007e3ad | 35 | AM_LDFLAGS = \ |
63116a70 DL |
36 | -export-dynamic \ |
37 | $(AC_LDFLAGS) \ | |
38 | $(AC_LDFLAGS_EXEC) \ | |
39 | $(SAN_FLAGS) \ | |
40 | # end | |
41 | ||
42 | # libraries need to use libxxx_LDFLAGS = $(LIB_LDFLAGS) -version-info X:Y:Z | |
43 | LIB_LDFLAGS = \ | |
dbac691d | 44 | -export-dynamic \ |
d6e76257 | 45 | $(AC_LDFLAGS) \ |
dbac691d DL |
46 | $(SAN_FLAGS) \ |
47 | # end | |
63116a70 DL |
48 | |
49 | # modules need to use xxx_LDFLAGS = $(MODULE_LDFLAGS) | |
50 | MODULE_LDFLAGS = \ | |
51 | -export-dynamic \ | |
52 | -avoid-version \ | |
53 | -module \ | |
54 | -shared \ | |
55 | $(AC_LDFLAGS) \ | |
56 | $(SAN_FLAGS) \ | |
57 | # end | |
58 | ||
62d21cc6 | 59 | DEFS = @DEFS@ -DSYSCONFDIR=\"$(sysconfdir)/\" -DCONFDATE=$(CONFDATE) |
4a121f99 | 60 | |
105a8189 DL |
61 | AR_FLAGS = @AR_FLAGS@ |
62 | ARFLAGS = @ARFLAGS@ | |
63 | RANLIB = @RANLIB@ | |
64 | ||
b8dd5f9d DL |
65 | # these two targets are provided to easily grab autoconf/Makefile variables |
66 | # you can use either: | |
67 | # eval `make VARFD=3 shvar-CFLAGS 3>&1 1>&2` | |
68 | # CFLAGS="`make VARFD=3 var-CFLAGS 3>&1 1>&2`" | |
69 | # where the former can be used to set several variables at once. Note the | |
70 | # fd redirections -- this is to prevent garbage from make rebuilding other | |
71 | # targets from causing issues. | |
72 | .PHONY: shvar-% var-% | |
73 | VARFD ?= 1 | |
74 | shvar-%: | |
75 | @echo "$*=\"$($*)\"" >&$(VARFD) | |
76 | var-%: | |
77 | @echo "$($*)" >&$(VARFD) | |
78 | ||
a71c5039 DL |
79 | if ONLY_CLIPPY |
80 | .DEFAULT_GOAL := clippy-only | |
81 | endif | |
82 | clippy-only: Makefile lib/clippy config.h | |
83 | .PHONY: clippy-only | |
84 | ||
892d21b1 DL |
85 | # overwriting these vars breaks cross-compilation. let's be helpful and warn. |
86 | # | |
87 | # note: "#AUTODERP# " will be removed from Makefile by configure. These are | |
88 | # GNU make directives & automake will f*ck them up by trying to process them | |
89 | # as automake directives. | |
90 | # | |
91 | #AUTODERP# null= | |
92 | #AUTODERP# SPACE=$(null) $(null) | |
93 | #AUTODERP# mkcheck_CC = $(findstring $(SPACE)CC=, $(SPACE)$(MAKEOVERRIDES)) | |
94 | #AUTODERP# mkcheck_CFLAGS = $(findstring $(SPACE)CFLAGS=, $(SPACE)$(MAKEOVERRIDES)) | |
95 | #AUTODERP# mkcheck_CPPFLAGS = $(findstring $(SPACE)CPPFLAGS=,$(SPACE)$(MAKEOVERRIDES)) | |
96 | #AUTODERP# mkcheck_CCLD = $(findstring $(SPACE)CCLD=, $(SPACE)$(MAKEOVERRIDES)) | |
97 | #AUTODERP# mkcheck_LD = $(findstring $(SPACE)LD=, $(SPACE)$(MAKEOVERRIDES)) | |
98 | #AUTODERP# mkcheck_LDFLAGS = $(findstring $(SPACE)LDFLAGS=, $(SPACE)$(MAKEOVERRIDES)) | |
99 | #AUTODERP# # | |
100 | #AUTODERP# ifneq ($(mkcheck_CC),) | |
101 | #AUTODERP# $(warning WARNING: you have overwritten the "CC" variable on the make command line.) | |
102 | #AUTODERP# endif | |
103 | #AUTODERP# ifneq ($(mkcheck_CFLAGS),) | |
104 | #AUTODERP# $(warning WARNING: you have overwritten the "CFLAGS" variable on the make command line.) | |
105 | #AUTODERP# endif | |
106 | #AUTODERP# ifneq ($(mkcheck_CPPFLAGS),) | |
107 | #AUTODERP# $(warning WARNING: you have overwritten the "CPPFLAGS" variable on the make command line.) | |
108 | #AUTODERP# endif | |
109 | #AUTODERP# ifneq ($(mkcheck_CCLD),) | |
110 | #AUTODERP# $(warning WARNING: you have overwritten the "CCLD" variable on the make command line.) | |
111 | #AUTODERP# endif | |
112 | #AUTODERP# ifneq ($(mkcheck_LD),) | |
113 | #AUTODERP# $(warning WARNING: you have overwritten the "LD" variable on the make command line.) | |
114 | #AUTODERP# endif | |
115 | #AUTODERP# ifneq ($(mkcheck_LDFLAGS),) | |
116 | #AUTODERP# $(warning WARNING: you have overwritten the "LDFLAGS" variable on the make command line.) | |
117 | #AUTODERP# endif | |
118 | #AUTODERP# # | |
119 | #AUTODERP# ifneq ($(mkcheck_CC)$(mkcheck_CFLAGS)$(mkcheck_CPPFLAGS)$(mkcheck_CCLD)$(mkcheck_LD)$(mkcheck_LDFLAGS),) | |
120 | #AUTODERP# $(warning ------) | |
121 | #AUTODERP# $(warning While overwriting these variables works most of the time, it is not recommended and can cause confusing build errors.) | |
122 | #AUTODERP# $(warning This is especially problematic when cross-compiling, since tools that run on the build system during the build process will not be compiled correctly.) | |
123 | #AUTODERP# $(warning All of these variables should be supplied to 'configure', and they will be remembered and correctly applied during 'make'.) | |
124 | #AUTODERP# $(warning ------) | |
125 | #AUTODERP# endif | |
126 | ||
4a121f99 | 127 | EXTRA_DIST = |
0045c130 | 128 | EXTRA_PROGRAMS = |
4a121f99 | 129 | BUILT_SOURCES = |
0f8b5fd5 | 130 | CLEANFILES = |
67cf020d | 131 | DISTCLEANFILES = |
8fb40377 | 132 | SUFFIXES = |
4a121f99 DL |
133 | |
134 | bin_PROGRAMS = | |
135 | sbin_PROGRAMS = | |
bd354725 | 136 | sbin_SCRIPTS = |
4a121f99 DL |
137 | noinst_PROGRAMS = |
138 | noinst_HEADERS = | |
139 | noinst_LIBRARIES = | |
9e53b315 | 140 | nodist_noinst_DATA = |
4a121f99 | 141 | lib_LTLIBRARIES = |
64d44794 | 142 | module_LTLIBRARIES = |
4a121f99 | 143 | pkginclude_HEADERS = |
70d27c5b | 144 | nodist_pkginclude_HEADERS = |
1c2facd1 | 145 | dist_yangmodels_DATA = |
9e53b315 | 146 | man_MANS = |
d7b86ae4 | 147 | vtysh_daemons = |
94cfb069 | 148 | clippy_scan = |
4a121f99 | 149 | |
6a35bfba DL |
150 | ## libtool, the self-made GNU scourge |
151 | ## ... this should fix relinking | |
152 | ## ... and AUTOMAKE_DUMMY is needed to prevent automake from treating this | |
153 | ## as overriding the normal targets... | |
154 | $(AUTOMAKE_DUMMY)install-moduleLTLIBRARIES: install-libLTLIBRARIES | |
155 | $(AUTOMAKE_DUMMY)install-binPROGRAMS: install-libLTLIBRARIES | |
156 | $(AUTOMAKE_DUMMY)install-sbinPROGRAMS: install-libLTLIBRARIES | |
157 | ||
1c84efe4 CH |
158 | # Include default rules to compile protobuf message sources |
159 | SUFFIXES += .proto .pb-c.c .pb-c.h | |
160 | ||
161 | # Rules | |
162 | ||
163 | AM_V_PROTOC_C = $(am__v_PROTOC_C_$(V)) | |
164 | am__v_PROTOC_C_ = $(am__v_PROTOC_C_$(AM_DEFAULT_VERBOSITY)) | |
165 | am__v_PROTOC_C_0 = @echo " PROTOC_C" $@; | |
166 | am__v_PROTOC_C_1 = | |
167 | ||
9b8f605b | 168 | %.pb-c.c %.pb-c.h : %.proto |
1c84efe4 CH |
169 | $(AM_V_PROTOC_C)$(PROTOC_C) -I$(top_srcdir) --c_out=$(top_builddir) $^ |
170 | $(AM_V_GEN)$(SED) -i -e '1i\ | |
171 | #include "config.h"' $@ | |
172 | ||
9e53b315 DL |
173 | include doc/subdir.am |
174 | include doc/user/subdir.am | |
175 | include doc/manpages/subdir.am | |
176 | include doc/developer/subdir.am | |
ba777396 | 177 | include include/subdir.am |
4a121f99 | 178 | include lib/subdir.am |
67fa73f2 | 179 | include mlag/subdir.am |
64d44794 | 180 | include zebra/subdir.am |
bd354725 | 181 | include watchfrr/subdir.am |
0f8b5fd5 DL |
182 | include qpb/subdir.am |
183 | include fpm/subdir.am | |
ec2ac5f2 | 184 | include grpc/subdir.am |
bd354725 | 185 | include tools/subdir.am |
4a121f99 | 186 | |
1c84efe4 CH |
187 | include mgmtd/subdir.am |
188 | ||
84d837b7 DL |
189 | include bgpd/subdir.am |
190 | include bgpd/rfp-example/librfp/subdir.am | |
191 | include bgpd/rfp-example/rfptest/subdir.am | |
7f269117 DL |
192 | include ripd/subdir.am |
193 | include ripngd/subdir.am | |
afca0690 DL |
194 | include ospfd/subdir.am |
195 | include ospf6d/subdir.am | |
196 | include ospfclient/subdir.am | |
86e463cf | 197 | include isisd/subdir.am |
cde8cd9d | 198 | include nhrpd/subdir.am |
30237d29 | 199 | include ldpd/subdir.am |
b6f5781c DL |
200 | include babeld/subdir.am |
201 | include eigrpd/subdir.am | |
8a71d93d | 202 | include sharpd/subdir.am |
35a3c3c1 | 203 | include pimd/subdir.am |
e5c83d9b | 204 | include pbrd/subdir.am |
7e24fdf3 | 205 | include staticd/subdir.am |
7134904b | 206 | include bfdd/subdir.am |
1c2facd1 RW |
207 | include yang/subdir.am |
208 | include yang/libyang_plugins/subdir.am | |
5435a2bf | 209 | include vrrpd/subdir.am |
74971473 JG |
210 | include pceplib/subdir.am |
211 | include pceplib/test/subdir.am | |
4d7b695d | 212 | include pathd/subdir.am |
7f269117 | 213 | |
8b7668ec | 214 | include vtysh/subdir.am |
a1286a32 | 215 | include tests/subdir.am |
ff37641b | 216 | include tests/topotests/subdir.am |
718e3744 | 217 | |
53d93be1 DL |
218 | if PKGSRC |
219 | rcdir=@pkgsrcrcdir@ | |
220 | rc_SCRIPTS = \ | |
221 | pkgsrc/bgpd.sh \ | |
222 | pkgsrc/ospf6d.sh \ | |
223 | pkgsrc/ospfd.sh \ | |
224 | pkgsrc/ripd.sh \ | |
225 | pkgsrc/ripngd.sh \ | |
226 | pkgsrc/zebra.sh \ | |
1c84efe4 | 227 | pkgsrc/mgmtd.sh \ |
53d93be1 DL |
228 | # end |
229 | endif | |
230 | ||
231 | EXTRA_DIST += \ | |
53d93be1 | 232 | aclocal.m4 \ |
d85cb6b6 | 233 | README.md \ |
53d93be1 | 234 | m4/README.txt \ |
d6e76257 | 235 | m4/libtool-whole-archive.patch \ |
06871ed9 | 236 | config.version \ |
53d93be1 DL |
237 | \ |
238 | python/clidef.py \ | |
239 | python/clippy/__init__.py \ | |
36a8fdfd DL |
240 | python/clippy/elf.py \ |
241 | python/clippy/uidhash.py \ | |
879a9dc5 | 242 | python/makevars.py \ |
94cfb069 | 243 | python/makefile.py \ |
36a8fdfd DL |
244 | python/tiabwarfo.py \ |
245 | python/xrelfo.py \ | |
89cb86ae | 246 | python/xref2vtysh.py \ |
36a8fdfd DL |
247 | python/test_xrelfo.py \ |
248 | python/runtests.py \ | |
249 | \ | |
250 | python/xrefstructs.json \ | |
53d93be1 | 251 | \ |
c4831d28 | 252 | tools/etc/logrotate.d/frr \ |
53d93be1 DL |
253 | redhat/frr.pam \ |
254 | redhat/frr.spec \ | |
53d93be1 DL |
255 | \ |
256 | snapcraft/snapcraft.yaml \ | |
257 | snapcraft/README.snap_build.md \ | |
258 | snapcraft/README.usage.md \ | |
259 | snapcraft/extra_version_info.txt \ | |
260 | snapcraft/scripts \ | |
261 | snapcraft/defaults \ | |
262 | snapcraft/helpers \ | |
263 | snapcraft/snap \ | |
f8948c1e | 264 | babeld/Makefile \ |
1c84efe4 | 265 | mgmtd/Makefile \ |
f8948c1e DL |
266 | bgpd/Makefile \ |
267 | bgpd/rfp-example/librfp/Makefile \ | |
268 | bgpd/rfp-example/rfptest/Makefile \ | |
9e53b315 DL |
269 | doc/Makefile \ |
270 | doc/developer/Makefile \ | |
271 | doc/manpages/Makefile \ | |
272 | doc/user/Makefile \ | |
f8948c1e DL |
273 | eigrpd/Makefile \ |
274 | fpm/Makefile \ | |
ec2ac5f2 | 275 | grpc/Makefile \ |
f8948c1e DL |
276 | isisd/Makefile \ |
277 | ldpd/Makefile \ | |
278 | lib/Makefile \ | |
279 | nhrpd/Makefile \ | |
280 | ospf6d/Makefile \ | |
281 | ospfclient/Makefile \ | |
282 | ospfd/Makefile \ | |
283 | pbrd/Makefile \ | |
284 | pimd/Makefile \ | |
f8948c1e DL |
285 | qpb/Makefile \ |
286 | ripd/Makefile \ | |
287 | ripngd/Makefile \ | |
288 | staticd/Makefile \ | |
289 | tests/Makefile \ | |
290 | tools/Makefile \ | |
291 | vtysh/Makefile \ | |
292 | watchfrr/Makefile \ | |
293 | zebra/Makefile \ | |
5435a2bf | 294 | vrrpd/Makefile \ |
53d93be1 | 295 | # end |
0fc42949 | 296 | |
8fb40377 DL |
297 | AM_V_LLVM_BC = $(am__v_LLVM_BC_$(V)) |
298 | am__v_LLVM_BC_ = $(am__v_LLVM_BC_$(AM_DEFAULT_VERBOSITY)) | |
299 | am__v_LLVM_BC_0 = @echo " LLVM.BC " $@; | |
300 | am__v_LLVM_BC_1 = | |
301 | ||
302 | AM_V_LLVM_LD = $(am__v_LLVM_LD_$(V)) | |
303 | am__v_LLVM_LD_ = $(am__v_LLVM_LD_$(AM_DEFAULT_VERBOSITY)) | |
304 | am__v_LLVM_LD_0 = @echo " LLVM.LD " $@; | |
305 | am__v_LLVM_LD_1 = | |
306 | ||
307 | SUFFIXES += .lo.bc .o.bc | |
308 | ||
309 | .o.o.bc: | |
310 | $(AM_V_LLVM_BC)$(COMPILE) -emit-llvm -c -o $@ $(patsubst %.o,%.c,$<) | |
311 | .lo.lo.bc: | |
312 | $(AM_V_LLVM_BC)$(COMPILE) -emit-llvm -c -o $@ $(patsubst %.lo,%.c,$<) | |
313 | ||
314 | %.cg.json: %.bc tools/frr-llvm-cg | |
315 | tools/frr-llvm-cg -o $@ $< | |
3d62176b DL |
316 | %.cg.dot: %.cg.json |
317 | $(PYTHON) $(top_srcdir)/python/callgraph-dot.py $< $@ | |
318 | %.cg.svg: %.cg.dot | |
319 | @echo if the following command fails, you need to install graphviz. | |
320 | @echo also, the output is nondeterministic. run it multiple times and use the nicest output. | |
321 | @echo tuning parameters may yield nicer looking graphs as well. | |
322 | fdp -GK=0.7 -Gstart=42231337 -Gmaxiter=2000 -Elen=2 -Gnodesep=1.5 -Tsvg -o$@ $< | |
323 | # don't delete intermediaries | |
324 | .PRECIOUS: %.cg.json %.cg.dot | |
8fb40377 DL |
325 | |
326 | # <lib>.la.bc, <lib>.a.bc and <daemon>.bc targets are generated by | |
327 | # python/makefile.py | |
328 | LLVM_LINK = llvm-link-$(llvm_version) | |
329 | ||
330 | clean-local: clean-python clean-llvm-bitcode | |
331 | .PHONY: clean-python clean-llvm-bitcode | |
67cf020d | 332 | clean-python: |
dbd10c03 RK |
333 | find . -name __pycache__ -o -name .pytest_cache | xargs rm -rf |
334 | find . -name "*.pyc" -o -name "*_clippy.c" | xargs rm -f | |
67cf020d | 335 | |
8fb40377 | 336 | clean-llvm-bitcode: |
3d62176b | 337 | find . -name "*.bc" -o -name "*.cg.json" -o -name "*.cg.dot" -o -name "*.cg.svg" | xargs rm -f |
8fb40377 | 338 | |
0b9013e4 DL |
339 | redistclean: |
340 | $(MAKE) distclean CONFIG_CLEAN_FILES="$(filter-out $(EXTRA_DIST), $(CONFIG_CLEAN_FILES))" | |
341 | ||
da5a0d00 | 342 | indent: |
1c84efe4 | 343 | tools/indent.py `find sharpd bgpd mgmtd eigrpd include isisd lib nhrpd ospf6d ospfd pimd qpb ripd vtysh zebra -name '*.[ch]' | grep -v include/linux` |
83284209 AJ |
344 | |
345 | if HAVE_GCOV | |
346 | ||
347 | coverage: check | |
348 | @ find . -name '*.o' -exec gcov {} \; | |
349 | ||
350 | yorn: | |
351 | @ echo "OK to upload coverage to https://coverage.io [y/N]:" | |
352 | @ read yn; test "$$yn" = "y" | |
353 | ||
354 | upload-check-coverage: | |
355 | @ if [ "x${COMMIT}" = "x" ]; then echo "COMMIT required"; exit 1; fi | |
356 | @ if [ "x${TOKEN}" = "x" ]; then echo "TOKEN required"; exit 1; fi | |
357 | curl -s https://codecov.io/bash | bash -s - -C ${COMMIT} -t ${TOKEN} | |
358 | ||
359 | force-check-coverage: coverage upload-check-coverage | |
360 | ||
361 | check-coverage: coverage yorn upload-check-coverage | |
362 | ||
363 | endif |