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