]> granicus.if.org Git - libnl/blob - Makefile.am
tests: Add test to {de}activate loopback interface
[libnl] / Makefile.am
1 # -*- Makefile -*-
2
3 ACLOCAL_AMFLAGS = -I m4
4
5 lib_LTLIBRARIES =
6 noinst_LTLIBRARIES =
7 check_LTLIBRARIES =
8
9 check_PROGRAMS =
10 check_programs =
11
12 bin_PROGRAMS =
13 sbin_PROGRAMS =
14 noinst_PROGRAMS =
15
16 TESTS =
17
18 CLEANFILES =
19 EXTRA_DIST =
20
21 DISTCHECK_CONFIGURE_FLAGS = \
22         --disable-dependency-tracking
23
24 pkgconfig_DATA = \
25         libnl-3.0.pc \
26         libnl-route-3.0.pc \
27         libnl-genl-3.0.pc \
28         libnl-nf-3.0.pc \
29         libnl-xfrm-3.0.pc \
30         libnl-idiag-3.0.pc
31
32 warn_cppflags = \
33         -Wall \
34         -Wextra \
35         -Wmissing-prototypes \
36         -Wno-unused-parameter \
37         -Wno-sign-compare \
38         -Wno-missing-field-initializers \
39         $(NULL)
40
41 ###############################################################################
42
43 libnlincludedir = $(includedir)/libnl@MAJ_VERSION@
44
45 libnlinclude_netlinkdir = $(libnlincludedir)/netlink
46 libnlinclude_netlink_HEADERS = \
47         include/netlink/addr.h \
48         include/netlink/attr.h \
49         include/netlink/cache-api.h \
50         include/netlink/cache.h \
51         include/netlink/data.h \
52         include/netlink/errno.h \
53         include/netlink/handlers.h \
54         include/netlink/hash.h \
55         include/netlink/hashtable.h \
56         include/netlink/list.h \
57         include/netlink/msg.h \
58         include/netlink/netlink-compat.h \
59         include/netlink/netlink-kernel.h \
60         include/netlink/netlink.h \
61         include/netlink/object-api.h \
62         include/netlink/object.h \
63         include/netlink/socket.h \
64         include/netlink/types.h \
65         include/netlink/utils.h \
66         include/netlink/version.h
67 libnlinclude_netlink_fib_lookupdir = $(libnlincludedir)/netlink/fib_lookup
68 libnlinclude_netlink_fib_lookup_HEADERS = \
69         include/netlink/fib_lookup/lookup.h \
70         include/netlink/fib_lookup/request.h
71 libnlinclude_netlink_genldir = $(libnlincludedir)/netlink/genl
72 libnlinclude_netlink_genl_HEADERS = \
73         include/netlink/genl/ctrl.h \
74         include/netlink/genl/family.h \
75         include/netlink/genl/genl.h \
76         include/netlink/genl/mngt.h
77 libnlinclude_netlink_idiagdir = $(libnlincludedir)/netlink/idiag
78 libnlinclude_netlink_idiag_HEADERS = \
79         include/netlink/idiag/idiagnl.h \
80         include/netlink/idiag/meminfo.h \
81         include/netlink/idiag/msg.h \
82         include/netlink/idiag/req.h \
83         include/netlink/idiag/vegasinfo.h
84 libnlinclude_netlink_netfilterdir = $(libnlincludedir)/netlink/netfilter
85 libnlinclude_netlink_netfilter_HEADERS = \
86         include/netlink/netfilter/ct.h \
87         include/netlink/netfilter/exp.h \
88         include/netlink/netfilter/log.h \
89         include/netlink/netfilter/log_msg.h \
90         include/netlink/netfilter/netfilter.h \
91         include/netlink/netfilter/nfnl.h \
92         include/netlink/netfilter/queue.h \
93         include/netlink/netfilter/queue_msg.h
94 libnlinclude_netlink_routedir = $(libnlincludedir)/netlink/route
95 libnlinclude_netlink_route_HEADERS = \
96         include/netlink/route/action.h \
97         include/netlink/route/addr.h \
98         include/netlink/route/class.h \
99         include/netlink/route/classifier.h \
100         include/netlink/route/link.h \
101         include/netlink/route/neighbour.h \
102         include/netlink/route/neightbl.h \
103         include/netlink/route/netconf.h \
104         include/netlink/route/nexthop.h \
105         include/netlink/route/pktloc.h \
106         include/netlink/route/qdisc.h \
107         include/netlink/route/route.h \
108         include/netlink/route/rtnl.h \
109         include/netlink/route/rule.h \
110         include/netlink/route/tc-api.h \
111         include/netlink/route/tc.h
112 libnlinclude_netlink_route_actdir = $(libnlincludedir)/netlink/route/act
113 libnlinclude_netlink_route_act_HEADERS = \
114         include/netlink/route/act/gact.h \
115         include/netlink/route/act/mirred.h \
116         include/netlink/route/act/skbedit.h
117 libnlinclude_netlink_route_clsdir = $(libnlincludedir)/netlink/route/cls
118 libnlinclude_netlink_route_cls_HEADERS = \
119         include/netlink/route/cls/basic.h \
120         include/netlink/route/cls/cgroup.h \
121         include/netlink/route/cls/ematch.h \
122         include/netlink/route/cls/fw.h \
123         include/netlink/route/cls/police.h \
124         include/netlink/route/cls/u32.h
125 libnlinclude_netlink_route_cls_ematchdir = $(libnlincludedir)/netlink/route/cls/ematch
126 libnlinclude_netlink_route_cls_ematch_HEADERS = \
127         include/netlink/route/cls/ematch/cmp.h \
128         include/netlink/route/cls/ematch/meta.h \
129         include/netlink/route/cls/ematch/nbyte.h \
130         include/netlink/route/cls/ematch/text.h
131 libnlinclude_netlink_route_linkdir = $(libnlincludedir)/netlink/route/link
132 libnlinclude_netlink_route_link_HEADERS = \
133         include/netlink/route/link/api.h \
134         include/netlink/route/link/bonding.h \
135         include/netlink/route/link/bridge.h \
136         include/netlink/route/link/can.h \
137         include/netlink/route/link/inet.h \
138         include/netlink/route/link/inet6.h \
139         include/netlink/route/link/info-api.h \
140         include/netlink/route/link/ip6tnl.h \
141         include/netlink/route/link/ipgre.h \
142         include/netlink/route/link/ipip.h \
143         include/netlink/route/link/ipvlan.h \
144         include/netlink/route/link/ipvti.h \
145         include/netlink/route/link/macsec.h \
146         include/netlink/route/link/macvlan.h \
147         include/netlink/route/link/macvtap.h \
148         include/netlink/route/link/ppp.h \
149         include/netlink/route/link/sit.h \
150         include/netlink/route/link/sriov.h \
151         include/netlink/route/link/veth.h \
152         include/netlink/route/link/vlan.h \
153         include/netlink/route/link/vrf.h \
154         include/netlink/route/link/vxlan.h
155 libnlinclude_netlink_route_qdiscdir = $(libnlincludedir)/netlink/route/qdisc
156 libnlinclude_netlink_route_qdisc_HEADERS = \
157         include/netlink/route/qdisc/cbq.h \
158         include/netlink/route/qdisc/dsmark.h \
159         include/netlink/route/qdisc/fifo.h \
160         include/netlink/route/qdisc/fq_codel.h \
161         include/netlink/route/qdisc/hfsc.h \
162         include/netlink/route/qdisc/htb.h \
163         include/netlink/route/qdisc/netem.h \
164         include/netlink/route/qdisc/plug.h \
165         include/netlink/route/qdisc/prio.h \
166         include/netlink/route/qdisc/red.h \
167         include/netlink/route/qdisc/sfq.h \
168         include/netlink/route/qdisc/tbf.h
169 libnlinclude_netlink_xfrmdir = $(libnlincludedir)/netlink/xfrm
170 libnlinclude_netlink_xfrm_HEADERS = \
171         include/netlink/xfrm/ae.h \
172         include/netlink/xfrm/lifetime.h \
173         include/netlink/xfrm/sa.h \
174         include/netlink/xfrm/selector.h \
175         include/netlink/xfrm/sp.h \
176         include/netlink/xfrm/template.h
177
178 if ENABLE_CLI
179 libnlinclude_netlink_clidir = $(libnlincludedir)/netlink/cli
180 libnlinclude_netlink_cli_HEADERS = \
181         include/netlink/cli/addr.h \
182         include/netlink/cli/class.h \
183         include/netlink/cli/cls.h \
184         include/netlink/cli/ct.h \
185         include/netlink/cli/exp.h \
186         include/netlink/cli/link.h \
187         include/netlink/cli/neigh.h \
188         include/netlink/cli/qdisc.h \
189         include/netlink/cli/route.h \
190         include/netlink/cli/rule.h \
191         include/netlink/cli/tc.h \
192         include/netlink/cli/utils.h
193 endif
194
195 noinst_HEADERS = \
196         include/linux-private/linux/can/netlink.h \
197         include/linux-private/linux/fib_rules.h \
198         include/linux-private/linux/gen_stats.h \
199         include/linux-private/linux/genetlink.h \
200         include/linux-private/linux/if.h \
201         include/linux-private/linux/if_addr.h \
202         include/linux-private/linux/if_arp.h \
203         include/linux-private/linux/if_bridge.h \
204         include/linux-private/linux/if_ether.h \
205         include/linux-private/linux/if_link.h \
206         include/linux-private/linux/if_macsec.h \
207         include/linux-private/linux/if_tunnel.h \
208         include/linux-private/linux/if_vlan.h \
209         include/linux-private/linux/in.h \
210         include/linux-private/linux/in6.h \
211         include/linux-private/linux/inet_diag.h \
212         include/linux-private/linux/ip.h \
213         include/linux-private/linux/ip_mp_alg.h \
214         include/linux-private/linux/ipv6.h \
215         include/linux-private/linux/libc-compat.h \
216         include/linux-private/linux/lwtunnel.h \
217         include/linux-private/linux/mpls.h \
218         include/linux-private/linux/mpls_iptunnel.h \
219         include/linux-private/linux/neighbour.h \
220         include/linux-private/linux/netconf.h \
221         include/linux-private/linux/netfilter.h \
222         include/linux-private/linux/netfilter/nf_conntrack_common.h \
223         include/linux-private/linux/netfilter/nfnetlink.h \
224         include/linux-private/linux/netfilter/nfnetlink_compat.h \
225         include/linux-private/linux/netfilter/nfnetlink_conntrack.h \
226         include/linux-private/linux/netfilter/nfnetlink_log.h \
227         include/linux-private/linux/netfilter/nfnetlink_queue.h \
228         include/linux-private/linux/netlink.h \
229         include/linux-private/linux/pkt_cls.h \
230         include/linux-private/linux/pkt_sched.h \
231         include/linux-private/linux/rtnetlink.h \
232         include/linux-private/linux/snmp.h \
233         include/linux-private/linux/sock_diag.h \
234         include/linux-private/linux/socket.h \
235         include/linux-private/linux/tc_act/tc_gact.h \
236         include/linux-private/linux/tc_act/tc_mirred.h \
237         include/linux-private/linux/tc_act/tc_skbedit.h \
238         include/linux-private/linux/tc_ematch/tc_em_meta.h \
239         include/linux-private/linux/veth.h \
240         include/linux-private/linux/xfrm.h \
241         include/netlink-private/cache-api.h \
242         include/netlink-private/genl.h \
243         include/netlink-private/netlink.h \
244         include/netlink-private/object-api.h \
245         include/netlink-private/route/link/api.h \
246         include/netlink-private/route/link/sriov.h \
247         include/netlink-private/route/mpls.h \
248         include/netlink-private/route/nexthop-encap.h \
249         include/netlink-private/route/tc-api.h \
250         include/netlink-private/socket.h \
251         include/netlink-private/tc.h \
252         include/netlink-private/types.h \
253         include/netlink-private/utils.h
254
255 ###############################################################################
256
257 # Hack to avoid using ylwrap. It does not function correctly in combination
258 # with --header-file=
259
260 lib/route/pktloc_grammar.h: lib/route/pktloc_grammar.c
261         @true
262
263 lib/route/pktloc_grammar.c: lib/route/pktloc_grammar.l lib/route/.dirstamp
264         $(AM_V_GEN) $(FLEX) --header-file=lib/route/pktloc_grammar.h $(LFLAGS) -o $@ $<
265
266 lib/route/pktloc_syntax.h: lib/route/pktloc_syntax.c
267         @true
268
269 lib/route/pktloc_syntax.c: lib/route/pktloc_syntax.y lib/route/.dirstamp
270         $(AM_V_GEN) $(YACC) -d $(YFLAGS) -o $@ $<
271
272 lib/route/cls/ematch_grammar.h: lib/route/cls/ematch_grammar.c
273         @true
274
275 lib/route/cls/ematch_grammar.c: lib/route/cls/ematch_grammar.l lib/route/cls/.dirstamp
276         $(AM_V_GEN) $(FLEX) --header-file=lib/route/cls/ematch_grammar.h $(LFLAGS) -o $@ $<
277
278 lib/route/cls/ematch_syntax.h: lib/route/cls/ematch_syntax.c
279         @true
280
281 lib/route/cls/ematch_syntax.c: lib/route/cls/ematch_syntax.y lib/route/cls/.dirstamp
282         $(AM_V_GEN) $(YACC) -d $(YFLAGS) -o $@ $<
283
284 grammar_files_sources = \
285         lib/route/pktloc_grammar.c \
286         lib/route/pktloc_syntax.c \
287         lib/route/cls/ematch_grammar.c \
288         lib/route/cls/ematch_syntax.c
289
290 grammar_files_headers = $(grammar_files_sources:%.c=%.h)
291
292 CLEANFILES += \
293         $(grammar_files_sources) \
294         $(grammar_files_headers)
295
296 EXTRA_DIST += \
297         lib/route/pktloc_grammar.l \
298         lib/route/pktloc_syntax.y \
299         lib/route/cls/ematch_grammar.l \
300         lib/route/cls/ematch_syntax.y
301
302 ###############################################################################
303
304 lib_cppflags = \
305         $(warn_cppflags) \
306         -D_GNU_SOURCE \
307         -DSYSCONFDIR=\"$(sysconfdir)/libnl\" \
308         -I$(srcdir)/include/linux-private \
309         -I$(srcdir)/include \
310         -I$(builddir)/include \
311         -I$(builddir)/lib/route \
312         -I$(builddir)/lib/route/cls
313
314 lib_LTLIBRARIES += lib/libnl-3.la
315
316 lib_libnl_3_la_SOURCES = \
317         lib/addr.c \
318         lib/attr.c \
319         lib/cache.c \
320         lib/cache_mngr.c \
321         lib/cache_mngt.c \
322         lib/data.c \
323         lib/error.c \
324         lib/handlers.c \
325         lib/msg.c \
326         lib/nl.c \
327         lib/object.c \
328         lib/socket.c \
329         lib/utils.c \
330         lib/version.c \
331         lib/hash.c \
332         lib/hashtable.c \
333         lib/mpls.c
334 EXTRA_lib_libnl_3_la_DEPENDENCIES = \
335         libnl-3.sym
336 lib_libnl_3_la_CPPFLAGS = \
337         $(lib_cppflags)
338 lib_libnl_3_la_LDFLAGS = \
339         -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
340         -Wl,--version-script=$(srcdir)/libnl-3.sym
341
342 lib_LTLIBRARIES += lib/libnl-route-3.la
343
344 lib_libnl_route_3_la_SOURCES = \
345         lib/fib_lookup/lookup.c \
346         lib/fib_lookup/request.c \
347         lib/route/act.c \
348         lib/route/act/gact.c \
349         lib/route/act/mirred.c \
350         lib/route/act/skbedit.c \
351         lib/route/addr.c \
352         lib/route/class.c \
353         lib/route/classid.c \
354         lib/route/cls/basic.c \
355         lib/route/cls.c \
356         lib/route/cls/cgroup.c \
357         lib/route/cls/ematch.c \
358         lib/route/cls/ematch/cmp.c \
359         lib/route/cls/ematch/container.c \
360         lib/route/cls/ematch/meta.c \
361         lib/route/cls/ematch/nbyte.c \
362         lib/route/cls/ematch/text.c \
363         lib/route/cls/fw.c \
364         lib/route/cls/police.c \
365         lib/route/cls/u32.c \
366         lib/route/link/api.c \
367         lib/route/link/bonding.c \
368         lib/route/link/bridge.c \
369         lib/route/link.c \
370         lib/route/link/can.c \
371         lib/route/link/dummy.c \
372         lib/route/link/ifb.c \
373         lib/route/link/inet6.c \
374         lib/route/link/inet.c \
375         lib/route/link/ip6tnl.c \
376         lib/route/link/ipgre.c \
377         lib/route/link/ipip.c \
378         lib/route/link/ipvlan.c \
379         lib/route/link/ipvti.c \
380         lib/route/link/macsec.c \
381         lib/route/link/macvlan.c \
382         lib/route/link/ppp.c \
383         lib/route/link/sit.c \
384         lib/route/link/sriov.c \
385         lib/route/link/veth.c \
386         lib/route/link/vlan.c \
387         lib/route/link/vrf.c \
388         lib/route/link/vxlan.c \
389         lib/route/neigh.c \
390         lib/route/neightbl.c \
391         lib/route/netconf.c \
392         lib/route/nexthop.c \
393         lib/route/nexthop_encap.c \
394         lib/route/nh_encap_mpls.c \
395         lib/route/pktloc.c \
396         lib/route/qdisc/blackhole.c \
397         lib/route/qdisc.c \
398         lib/route/qdisc/cbq.c \
399         lib/route/qdisc/dsmark.c \
400         lib/route/qdisc/fifo.c \
401         lib/route/qdisc/fq_codel.c \
402         lib/route/qdisc/hfsc.c \
403         lib/route/qdisc/htb.c \
404         lib/route/qdisc/ingress.c \
405         lib/route/qdisc/netem.c \
406         lib/route/qdisc/plug.c \
407         lib/route/qdisc/prio.c \
408         lib/route/qdisc/red.c \
409         lib/route/qdisc/sfq.c \
410         lib/route/qdisc/tbf.c \
411         lib/route/route.c \
412         lib/route/route_obj.c \
413         lib/route/route_utils.c \
414         lib/route/rtnl.c \
415         lib/route/rule.c \
416         lib/route/tc.c \
417         $(NULL)
418 nodist_lib_libnl_route_3_la_SOURCES = \
419         $(grammar_files_sources)
420 EXTRA_lib_libnl_route_3_la_DEPENDENCIES = \
421         libnl-route-3.sym
422 lib_libnl_route_3_la_CPPFLAGS = \
423         $(lib_cppflags)
424 lib_libnl_route_3_la_LDFLAGS = \
425         -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
426         -Wl,--version-script=$(srcdir)/libnl-route-3.sym
427 lib_libnl_route_3_la_LIBADD = \
428         lib/libnl-3.la
429
430 $(lib_libnl_route_3_la_OBJECTS): $(grammar_files_headers)
431
432 lib_LTLIBRARIES += lib/libnl-idiag-3.la
433
434 lib_libnl_idiag_3_la_SOURCES = \
435         lib/idiag/idiag_meminfo_obj.c \
436         lib/idiag/idiag_vegasinfo_obj.c \
437         lib/idiag/idiag_msg_obj.c \
438         lib/idiag/idiag_req_obj.c \
439         lib/idiag/idiag.c
440 EXTRA_lib_libnl_idiag_3_la_DEPENDENCIES = \
441         libnl-idiag-3.sym
442 lib_libnl_idiag_3_la_CPPFLAGS = \
443         $(lib_cppflags)
444 lib_libnl_idiag_3_la_LDFLAGS = \
445         -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
446         -Wl,--version-script=$(srcdir)/libnl-idiag-3.sym
447 lib_libnl_idiag_3_la_LIBADD = \
448         lib/libnl-3.la
449
450 lib_LTLIBRARIES += lib/libnl-genl-3.la
451
452 lib_libnl_genl_3_la_SOURCES = \
453         lib/genl/ctrl.c \
454         lib/genl/family.c \
455         lib/genl/genl.c \
456         lib/genl/mngt.c
457 EXTRA_lib_libnl_genl_3_la_DEPENDENCIES = \
458         libnl-genl-3.sym
459 lib_libnl_genl_3_la_CPPFLAGS = \
460         $(lib_cppflags)
461 lib_libnl_genl_3_la_LDFLAGS = \
462         -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
463         -Wl,--version-script=$(srcdir)/libnl-genl-3.sym
464 lib_libnl_genl_3_la_LIBADD = \
465         lib/libnl-3.la
466
467 lib_LTLIBRARIES += lib/libnl-nf-3.la
468
469 lib_libnl_nf_3_la_SOURCES = \
470         lib/netfilter/ct.c \
471         lib/netfilter/ct_obj.c \
472         lib/netfilter/log.c \
473         lib/netfilter/log_msg.c \
474         lib/netfilter/log_msg_obj.c \
475         lib/netfilter/log_obj.c \
476         lib/netfilter/netfilter.c \
477         lib/netfilter/nfnl.c \
478         lib/netfilter/queue.c \
479         lib/netfilter/queue_msg.c \
480         lib/netfilter/queue_msg_obj.c \
481         lib/netfilter/queue_obj.c \
482         lib/netfilter/exp.c \
483         lib/netfilter/exp_obj.c
484 lib_libnl_nf_3_la_CPPFLAGS = \
485         $(lib_cppflags)
486 EXTRA_lib_libnl_nf_3_la_DEPENDENCIES = \
487         libnl-nf-3.sym
488 lib_libnl_nf_3_la_LDFLAGS = \
489         -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
490         -Wl,--version-script=$(srcdir)/libnl-nf-3.sym
491 lib_libnl_nf_3_la_LIBADD  = \
492         lib/libnl-3.la \
493         lib/libnl-route-3.la
494
495 lib_LTLIBRARIES += lib/libnl-xfrm-3.la
496
497 lib_libnl_xfrm_3_la_SOURCES = \
498         lib/xfrm/ae.c \
499         lib/xfrm/lifetime.c \
500         lib/xfrm/sa.c \
501         lib/xfrm/selector.c \
502         lib/xfrm/sp.c \
503         lib/xfrm/template.c
504 lib_libnl_xfrm_3_la_CPPFLAGS = \
505         $(lib_cppflags)
506 lib_libnl_xfrm_3_la_LDFLAGS = \
507         -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
508         -Wl,--version-script=$(srcdir)/libnl-xfrm-3.sym
509 EXTRA_lib_libnl_xfrm_3_la_DEPENDENCIES = \
510         libnl-xfrm-3.sym
511 lib_libnl_xfrm_3_la_LIBADD = \
512         lib/libnl-3.la
513
514 lib_cli_ltlibraries_cls = \
515         lib/cli/cls/basic.la \
516         lib/cli/cls/cgroup.la
517 lib_cli_ltlibraries_qdisc = \
518         lib/cli/qdisc/bfifo.la \
519         lib/cli/qdisc/blackhole.la \
520         lib/cli/qdisc/fq_codel.la \
521         lib/cli/qdisc/hfsc.la \
522         lib/cli/qdisc/htb.la \
523         lib/cli/qdisc/ingress.la \
524         lib/cli/qdisc/pfifo.la \
525         lib/cli/qdisc/plug.la
526
527 if ENABLE_CLI
528 pkglib_clsdir = $(pkglibdir)/cli/cls
529 pkglib_qdiscdir = $(pkglibdir)/cli/qdisc
530 pkglib_cls_LTLIBRARIES = $(lib_cli_ltlibraries_cls)
531 pkglib_qdisc_LTLIBRARIES = $(lib_cli_ltlibraries_qdisc)
532 else
533 check_LTLIBRARIES += \
534         $(lib_cli_ltlibraries_cls) \
535         $(lib_cli_ltlibraries_qdisc)
536 endif
537
538 lib_cli_ldflags = \
539         -module -avoid-version
540
541 lib_cli_cls_basic_la_CPPFLAGS       = $(lib_cppflags)
542 lib_cli_cls_basic_la_LDFLAGS        = $(lib_cli_ldflags)
543 lib_cli_cls_cgroup_la_CPPFLAGS      = $(lib_cppflags)
544 lib_cli_cls_cgroup_la_LDFLAGS       = $(lib_cli_ldflags)
545 lib_cli_qdisc_bfifo_la_CPPFLAGS     = $(lib_cppflags)
546 lib_cli_qdisc_bfifo_la_LDFLAGS      = $(lib_cli_ldflags)
547 lib_cli_qdisc_blackhole_la_CPPFLAGS = $(lib_cppflags)
548 lib_cli_qdisc_blackhole_la_LDFLAGS  = $(lib_cli_ldflags)
549 lib_cli_qdisc_fq_codel_la_CPPFLAGS  = $(lib_cppflags)
550 lib_cli_qdisc_fq_codel_la_LDFLAGS   = $(lib_cli_ldflags)
551 lib_cli_qdisc_hfsc_la_CPPFLAGS      = $(lib_cppflags)
552 lib_cli_qdisc_hfsc_la_LDFLAGS       = $(lib_cli_ldflags)
553 lib_cli_qdisc_htb_la_CPPFLAGS       = $(lib_cppflags)
554 lib_cli_qdisc_htb_la_LDFLAGS        = $(lib_cli_ldflags)
555 lib_cli_qdisc_ingress_la_CPPFLAGS   = $(lib_cppflags)
556 lib_cli_qdisc_ingress_la_LDFLAGS    = $(lib_cli_ldflags)
557 lib_cli_qdisc_pfifo_la_CPPFLAGS     = $(lib_cppflags)
558 lib_cli_qdisc_pfifo_la_LDFLAGS      = $(lib_cli_ldflags)
559 lib_cli_qdisc_plug_la_CPPFLAGS      = $(lib_cppflags)
560 lib_cli_qdisc_plug_la_LDFLAGS       = $(lib_cli_ldflags)
561
562 ###############################################################################
563
564 src_lib_ldflags =
565
566 if ENABLE_CLI
567 lib_LTLIBRARIES += src/lib/libnl-cli-3.la
568 src_lib_ldflags += -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
569 else
570 check_LTLIBRARIES += src/lib/libnl-cli-3.la
571 endif
572
573 src_lib_libnl_cli_3_la_SOURCES = \
574         src/lib/utils.c \
575         src/lib/addr.c \
576         src/lib/ct.c \
577         src/lib/link.c \
578         src/lib/neigh.c \
579         src/lib/rule.c \
580         src/lib/route.c \
581         src/lib/tc.c \
582         src/lib/qdisc.c \
583         src/lib/class.c \
584         src/lib/cls.c \
585         src/lib/exp.c
586 EXTRA_src_lib_libnl_cli_3_la_DEPENDENCIES = \
587         libnl-cli-3.sym
588 src_lib_libnl_cli_3_la_CPPFLAGS = \
589         $(warn_cppflags) \
590         -D_GNU_SOURCE \
591         -DPKGLIBDIR=\"$(pkglibdir)\" \
592         -DSYSCONFDIR=\"$(sysconfdir)\" \
593         -I$(srcdir)/include/linux-private \
594         -I$(srcdir)/include \
595         -I$(builddir)/include
596 src_lib_libnl_cli_3_la_LDFLAGS = \
597         $(src_lib_ldflags) \
598         -Wl,--version-script=$(srcdir)/libnl-cli-3.sym
599 src_lib_libnl_cli_3_la_LIBADD = \
600         lib/libnl-3.la \
601         lib/libnl-route-3.la \
602         lib/libnl-nf-3.la \
603         lib/libnl-genl-3.la \
604         -ldl
605
606 ###############################################################################
607
608 src_cppflags = \
609         $(warn_cppflags) \
610         -D_GNU_SOURCE \
611         -DSYSCONFDIR=\"$(sysconfdir)/libnl\" \
612         -I$(srcdir)/include/linux-private \
613         -I$(srcdir)/include \
614         -I$(builddir)/include
615
616 src_ldadd = \
617         src/lib/libnl-cli-3.la \
618         lib/libnl-3.la \
619         lib/libnl-nf-3.la \
620         lib/libnl-genl-3.la \
621         lib/libnl-route-3.la \
622         lib/libnl-idiag-3.la
623
624 cli_programs = \
625         src/genl-ctrl-list \
626         src/idiag-socket-details \
627         src/nf-ct-add \
628         src/nf-ct-list \
629         src/nf-exp-add \
630         src/nf-exp-delete \
631         src/nf-exp-list \
632         src/nf-log \
633         src/nf-monitor \
634         src/nf-queue \
635         src/nl-addr-add \
636         src/nl-addr-delete \
637         src/nl-addr-list \
638         src/nl-class-add \
639         src/nl-class-delete \
640         src/nl-class-list \
641         src/nl-classid-lookup \
642         src/nl-cls-add \
643         src/nl-cls-delete \
644         src/nl-cls-list \
645         src/nl-fib-lookup \
646         src/nl-link-enslave \
647         src/nl-link-ifindex2name \
648         src/nl-link-list \
649         src/nl-link-name2ifindex \
650         src/nl-link-release \
651         src/nl-link-set \
652         src/nl-link-stats \
653         src/nl-list-caches \
654         src/nl-list-sockets \
655         src/nl-monitor \
656         src/nl-neigh-add \
657         src/nl-neigh-delete \
658         src/nl-neigh-list \
659         src/nl-neightbl-list \
660         src/nl-pktloc-lookup \
661         src/nl-qdisc-add \
662         src/nl-qdisc-delete \
663         src/nl-qdisc-list \
664         src/nl-route-add \
665         src/nl-route-delete \
666         src/nl-route-get \
667         src/nl-route-list \
668         src/nl-rule-list \
669         src/nl-tctree-list \
670         src/nl-util-addr
671
672 if ENABLE_CLI
673 if ENABLE_CLI_INSTALL_BIN
674 bin_PROGRAMS += $(cli_programs)
675 else
676 if ENABLE_CLI_INSTALL_SBIN
677 sbin_PROGRAMS += $(cli_programs)
678 else
679 noinst_PROGRAMS += $(cli_programs)
680 endif
681 endif
682 else
683 check_PROGRAMS += $(cli_programs)
684 endif
685
686 src_genl_ctrl_list_CPPFLAGS =       $(src_cppflags)
687 src_genl_ctrl_list_LDADD =          $(src_ldadd)
688 src_idiag_socket_details_CPPFLAGS = $(src_cppflags)
689 src_idiag_socket_details_LDADD =    $(src_ldadd)
690 src_nf_ct_add_CPPFLAGS =            $(src_cppflags)
691 src_nf_ct_add_LDADD =               $(src_ldadd)
692 src_nf_ct_list_CPPFLAGS =           $(src_cppflags)
693 src_nf_ct_list_LDADD =              $(src_ldadd)
694 src_nf_exp_add_CPPFLAGS =           $(src_cppflags)
695 src_nf_exp_add_LDADD =              $(src_ldadd)
696 src_nf_exp_delete_CPPFLAGS =        $(src_cppflags)
697 src_nf_exp_delete_LDADD =           $(src_ldadd)
698 src_nf_exp_list_CPPFLAGS =          $(src_cppflags)
699 src_nf_exp_list_LDADD =             $(src_ldadd)
700 src_nf_log_CPPFLAGS =               $(src_cppflags)
701 src_nf_log_LDADD =                  $(src_ldadd)
702 src_nf_monitor_CPPFLAGS =           $(src_cppflags)
703 src_nf_monitor_LDADD =              $(src_ldadd)
704 src_nf_queue_CPPFLAGS =             $(src_cppflags)
705 src_nf_queue_LDADD =                $(src_ldadd)
706 src_nl_addr_add_CPPFLAGS =          $(src_cppflags)
707 src_nl_addr_add_LDADD =             $(src_ldadd)
708 src_nl_addr_delete_CPPFLAGS =       $(src_cppflags)
709 src_nl_addr_delete_LDADD =          $(src_ldadd)
710 src_nl_addr_list_CPPFLAGS =         $(src_cppflags)
711 src_nl_addr_list_LDADD =            $(src_ldadd)
712 src_nl_class_add_CPPFLAGS =         $(src_cppflags)
713 src_nl_class_add_LDADD =            $(src_ldadd)
714 src_nl_class_delete_CPPFLAGS =      $(src_cppflags)
715 src_nl_class_delete_LDADD =         $(src_ldadd)
716 src_nl_class_list_CPPFLAGS =        $(src_cppflags)
717 src_nl_class_list_LDADD =           $(src_ldadd)
718 src_nl_classid_lookup_CPPFLAGS =    $(src_cppflags)
719 src_nl_classid_lookup_LDADD =       $(src_ldadd)
720 src_nl_cls_add_CPPFLAGS =           $(src_cppflags)
721 src_nl_cls_add_LDADD =              $(src_ldadd)
722 src_nl_cls_delete_CPPFLAGS =        $(src_cppflags)
723 src_nl_cls_delete_LDADD =           $(src_ldadd)
724 src_nl_cls_list_CPPFLAGS =          $(src_cppflags)
725 src_nl_cls_list_LDADD =             $(src_ldadd)
726 src_nl_fib_lookup_CPPFLAGS =        $(src_cppflags)
727 src_nl_fib_lookup_LDADD =           $(src_ldadd)
728 src_nl_link_enslave_CPPFLAGS =      $(src_cppflags)
729 src_nl_link_enslave_LDADD =         $(src_ldadd)
730 src_nl_link_ifindex2name_CPPFLAGS = $(src_cppflags)
731 src_nl_link_ifindex2name_LDADD =    $(src_ldadd)
732 src_nl_link_list_CPPFLAGS =         $(src_cppflags)
733 src_nl_link_list_LDADD =            $(src_ldadd)
734 src_nl_link_name2ifindex_CPPFLAGS = $(src_cppflags)
735 src_nl_link_name2ifindex_LDADD =    $(src_ldadd)
736 src_nl_link_release_CPPFLAGS =      $(src_cppflags)
737 src_nl_link_release_LDADD =         $(src_ldadd)
738 src_nl_link_set_CPPFLAGS =          $(src_cppflags)
739 src_nl_link_set_LDADD =             $(src_ldadd)
740 src_nl_link_stats_CPPFLAGS =        $(src_cppflags)
741 src_nl_link_stats_LDADD =           $(src_ldadd)
742 src_nl_list_caches_CPPFLAGS =       $(src_cppflags)
743 src_nl_list_caches_LDADD =          $(src_ldadd)
744 src_nl_list_sockets_CPPFLAGS =      $(src_cppflags)
745 src_nl_list_sockets_LDADD =         $(src_ldadd)
746 src_nl_monitor_CPPFLAGS =           $(src_cppflags)
747 src_nl_monitor_LDADD =              $(src_ldadd)
748 src_nl_neigh_add_CPPFLAGS =         $(src_cppflags)
749 src_nl_neigh_add_LDADD =            $(src_ldadd)
750 src_nl_neigh_delete_CPPFLAGS =      $(src_cppflags)
751 src_nl_neigh_delete_LDADD =         $(src_ldadd)
752 src_nl_neigh_list_CPPFLAGS =        $(src_cppflags)
753 src_nl_neigh_list_LDADD =           $(src_ldadd)
754 src_nl_neightbl_list_CPPFLAGS =     $(src_cppflags)
755 src_nl_neightbl_list_LDADD =        $(src_ldadd)
756 src_nl_pktloc_lookup_CPPFLAGS =     $(src_cppflags)
757 src_nl_pktloc_lookup_LDADD =        $(src_ldadd)
758 src_nl_qdisc_add_CPPFLAGS =         $(src_cppflags)
759 src_nl_qdisc_add_LDADD =            $(src_ldadd)
760 src_nl_qdisc_delete_CPPFLAGS =      $(src_cppflags)
761 src_nl_qdisc_delete_LDADD =         $(src_ldadd)
762 src_nl_qdisc_list_CPPFLAGS =        $(src_cppflags)
763 src_nl_qdisc_list_LDADD =           $(src_ldadd)
764 src_nl_route_add_CPPFLAGS =         $(src_cppflags)
765 src_nl_route_add_LDADD =            $(src_ldadd)
766 src_nl_route_delete_CPPFLAGS =      $(src_cppflags)
767 src_nl_route_delete_LDADD =         $(src_ldadd)
768 src_nl_route_get_CPPFLAGS =         $(src_cppflags)
769 src_nl_route_get_LDADD =            $(src_ldadd)
770 src_nl_route_list_CPPFLAGS =        $(src_cppflags)
771 src_nl_route_list_LDADD =           $(src_ldadd)
772 src_nl_rule_list_CPPFLAGS =         $(src_cppflags)
773 src_nl_rule_list_LDADD =            $(src_ldadd)
774 src_nl_tctree_list_CPPFLAGS =       $(src_cppflags)
775 src_nl_tctree_list_LDADD =          $(src_ldadd)
776 src_nl_util_addr_CPPFLAGS =         $(src_cppflags)
777 src_nl_util_addr_LDADD =            $(src_ldadd)
778
779 ###############################################################################
780
781 tests_cppflags = \
782         $(warn_cppflags) \
783         -D_GNU_SOURCE \
784         -DSYSCONFDIR=\"$(sysconfdir)/libnl\" \
785         -I$(srcdir)/include/linux-private \
786         -I$(srcdir)/include \
787         -I$(builddir)/include
788
789 tests_ldadd = \
790         lib/libnl-3.la \
791         lib/libnl-nf-3.la \
792         lib/libnl-genl-3.la \
793         lib/libnl-route-3.la
794
795 check_PROGRAMS += \
796         tests/test-complex-HTB-with-hash-filters \
797         tests/test-create-bond \
798         tests/test-create-bridge \
799         tests/test-create-ifb \
800         tests/test-create-ip6tnl \
801         tests/test-create-ipgre \
802         tests/test-create-ipgretap \
803         tests/test-create-ipip \
804         tests/test-create-ipvlan \
805         tests/test-create-ipvti \
806         tests/test-create-macsec \
807         tests/test-create-macvlan \
808         tests/test-create-macvtap \
809         tests/test-create-sit \
810         tests/test-create-veth \
811         tests/test-create-vlan \
812         tests/test-create-vrf \
813         tests/test-create-vxlan \
814         tests/test-delete-link \
815         tests/test-socket-creation \
816         tests/test-u32-filter-with-actions \
817         tests/test-loopback-up-down
818
819 tests_test_create_bond_CPPFLAGS                   = $(tests_cppflags)
820 tests_test_create_bond_LDADD                      = $(tests_ldadd)
821 tests_test_create_vlan_CPPFLAGS                   = $(tests_cppflags)
822 tests_test_create_vlan_LDADD                      = $(tests_ldadd)
823 tests_test_create_vxlan_CPPFLAGS                  = $(tests_cppflags)
824 tests_test_create_vxlan_LDADD                     = $(tests_ldadd)
825 tests_test_create_veth_CPPFLAGS                   = $(tests_cppflags)
826 tests_test_create_veth_LDADD                      = $(tests_ldadd)
827 tests_test_create_bridge_CPPFLAGS                 = $(tests_cppflags)
828 tests_test_create_bridge_LDADD                    = $(tests_ldadd)
829 tests_test_create_ip6tnl_CPPFLAGS                 = $(tests_cppflags)
830 tests_test_create_ip6tnl_LDADD                    = $(tests_ldadd)
831 tests_test_create_ipgre_CPPFLAGS                  = $(tests_cppflags)
832 tests_test_create_ipgre_LDADD                     = $(tests_ldadd)
833 tests_test_create_ipgretap_CPPFLAGS               = $(tests_cppflags)
834 tests_test_create_ipgretap_LDADD                  = $(tests_ldadd)
835 tests_test_create_ipip_CPPFLAGS                   = $(tests_cppflags)
836 tests_test_create_ipip_LDADD                      = $(tests_ldadd)
837 tests_test_create_ipvti_CPPFLAGS                  = $(tests_cppflags)
838 tests_test_create_ipvti_LDADD                     = $(tests_ldadd)
839 tests_test_create_macsec_CPPFLAGS                 = $(tests_cppflags)
840 tests_test_create_macsec_LDADD                    = $(tests_ldadd)
841 tests_test_create_macvlan_CPPFLAGS                = $(tests_cppflags)
842 tests_test_create_macvlan_LDADD                   = $(tests_ldadd)
843 tests_test_create_macvtap_CPPFLAGS                = $(tests_cppflags)
844 tests_test_create_macvtap_LDADD                   = $(tests_ldadd)
845 tests_test_create_ipvlan_CPPFLAGS                 = $(tests_cppflags)
846 tests_test_create_ipvlan_LDADD                    = $(tests_ldadd)
847 tests_test_create_vrf_CPPFLAGS                    = $(tests_cppflags)
848 tests_test_create_vrf_LDADD                       = $(tests_ldadd)
849 tests_test_create_sit_CPPFLAGS                    = $(tests_cppflags)
850 tests_test_create_sit_LDADD                       = $(tests_ldadd)
851 tests_test_create_ifb_CPPFLAGS                    = $(tests_cppflags)
852 tests_test_create_ifb_LDADD                       = $(tests_ldadd)
853 tests_test_delete_link_CPPFLAGS                   = $(tests_cppflags)
854 tests_test_delete_link_LDADD                      = $(tests_ldadd)
855 tests_test_socket_creation_CPPFLAGS               = $(tests_cppflags)
856 tests_test_socket_creation_LDADD                  = $(tests_ldadd)
857 tests_test_complex_HTB_with_hash_filters_CPPFLAGS = $(tests_cppflags)
858 tests_test_complex_HTB_with_hash_filters_LDADD    = $(tests_ldadd)
859 tests_test_u32_filter_with_actions_CPPFLAGS       = $(tests_cppflags)
860 tests_test_u32_filter_with_actions_LDADD          = $(tests_ldadd)
861 tests_test_loopback_up_down_CPPFLAGS              = $(tests_cppflags)
862 tests_test_loopback_up_down_LDADD                 = $(tests_ldadd)
863
864 check_PROGRAMS += \
865         tests/test-cache-mngr \
866         tests/test-genl \
867         tests/test-nf-cache-mngr
868
869 tests_cli_ldadd = \
870         $(tests_ldadd) \
871         src/lib/libnl-cli-3.la
872
873 tests_test_cache_mngr_CPPFLAGS                    = $(tests_cppflags)
874 tests_test_cache_mngr_LDADD                       = $(tests_cli_ldadd)
875 tests_test_genl_CPPFLAGS                          = $(tests_cppflags)
876 tests_test_genl_LDADD                             = $(tests_cli_ldadd)
877 tests_test_nf_cache_mngr_CPPFLAGS                 = $(tests_cppflags)
878 tests_test_nf_cache_mngr_LDADD                    = $(tests_cli_ldadd)
879
880
881 if WITH_CHECK
882 check_programs += tests/check-all
883 endif
884
885 tests_check_all_SOURCES = \
886         tests/util.h \
887         tests/check-all.c \
888         tests/check-addr.c \
889         tests/check-attr.c
890
891 tests_check_all_CPPFLAGS = \
892         $(tests_cppflags) \
893         $(CHECK_CFLAGS)
894
895 tests_check_all_LDADD = \
896         $(tests_ldadd) \
897         $(CHECK_LIBS)
898
899 ###############################################################################
900
901 dist_man8_MANS = \
902         man/nl-classid-lookup.8 \
903         man/nl-pktloc-lookup.8 \
904         man/nl-qdisc-add.8 \
905         man/nl-qdisc-delete.8 \
906         man/nl-qdisc-list.8 \
907         man/genl-ctrl-list.8
908
909 ###############################################################################
910
911 EXTRA_DIST += \
912         python/README \
913         \
914         python/doc/conf.py \
915         python/doc/core.rst \
916         python/doc/index.rst \
917         python/doc/route_addr.rst \
918         python/doc/route.rst \
919         \
920         python/examples/iface.py \
921         python/examples/nl80211.py \
922         python/examples/wiphy.py \
923         \
924         python/netlink/capi.i \
925         python/netlink/fixes.h \
926         python/netlink/__init__.py \
927         python/netlink/core.py \
928         python/netlink/util.py \
929         python/netlink/utils.h \
930         \
931         python/netlink/genl/capi.i \
932         python/netlink/genl/__init__.py \
933         \
934         python/netlink/route/capi.i \
935         python/netlink/route/__init__.py \
936         python/netlink/route/address.py \
937         python/netlink/route/link.py \
938         python/netlink/route/tc.py \
939         python/netlink/route/links/__init__.py \
940         python/netlink/route/links/dummy.py \
941         python/netlink/route/links/inet.py \
942         python/netlink/route/links/vlan.py \
943         python/netlink/route/qdisc/__init__.py \
944         python/netlink/route/qdisc/htb.py \
945         \
946         python/tests/test-create-bridge.py
947
948 ###############################################################################
949
950 check_PROGRAMS += $(check_programs)
951 TESTS += $(check_programs)
952
953 if ENABLE_CLI
954 pkgconfig_DATA += libnl-cli-3.0.pc
955 endif
956
957 pkgsysconfdir = $(sysconfdir)/libnl
958 pkgsysconf_DATA = \
959         etc/pktloc \
960         etc/classid
961
962 EXTRA_DIST += \
963         $(pkgsysconf_DATA) \
964         libnl-3.sym \
965         libnl-cli-3.sym \
966         libnl-genl-3.sym \
967         libnl-idiag-3.sym \
968         libnl-nf-3.sym \
969         libnl-route-3.sym \
970         libnl-xfrm-3.sym