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