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