• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# -*- Makefile -*-
2
3AM_CFLAGS        = ${regular_CFLAGS}
4AM_CPPFLAGS      = ${regular_CPPFLAGS} -I${top_builddir}/include -I${top_srcdir}/include -I${top_srcdir} ${kinclude_CPPFLAGS} ${libmnl_CFLAGS} ${libnftnl_CFLAGS} ${libnetfilter_conntrack_CFLAGS}
5
6BUILT_SOURCES =
7
8xtables_legacy_multi_SOURCES  = xtables-legacy-multi.c iptables-xml.c
9xtables_legacy_multi_CFLAGS   = ${AM_CFLAGS}
10xtables_legacy_multi_LDADD    = ../extensions/libext.a
11if ENABLE_STATIC
12xtables_legacy_multi_CFLAGS  += -DALL_INCLUSIVE
13endif
14if ENABLE_IPV4
15xtables_legacy_multi_SOURCES += iptables-standalone.c iptables.c
16xtables_legacy_multi_CFLAGS  += -DENABLE_IPV4
17xtables_legacy_multi_LDADD   += ../libiptc/libip4tc.la ../extensions/libext4.a
18endif
19if ENABLE_IPV6
20xtables_legacy_multi_SOURCES += ip6tables-standalone.c ip6tables.c
21xtables_legacy_multi_CFLAGS  += -DENABLE_IPV6
22xtables_legacy_multi_LDADD   += ../libiptc/libip6tc.la ../extensions/libext6.a
23endif
24xtables_legacy_multi_SOURCES += xshared.c iptables-restore.c iptables-save.c
25xtables_legacy_multi_LDADD   += ../libxtables/libxtables.la -lm
26
27# iptables using nf_tables api
28if ENABLE_NFTABLES
29xtables_nft_multi_SOURCES  = xtables-nft-multi.c iptables-xml.c
30xtables_nft_multi_CFLAGS   = ${AM_CFLAGS}
31xtables_nft_multi_LDADD    = ../extensions/libext.a ../extensions/libext_ebt.a
32if ENABLE_STATIC
33xtables_nft_multi_CFLAGS  += -DALL_INCLUSIVE
34endif
35xtables_nft_multi_CFLAGS  += -DENABLE_NFTABLES -DENABLE_IPV4 -DENABLE_IPV6
36xtables_nft_multi_SOURCES += xtables-save.c xtables-restore.c \
37				xtables-standalone.c xtables.c nft.c \
38				nft-shared.c nft-ipv4.c nft-ipv6.c nft-arp.c \
39				xtables-monitor.c nft-cache.c \
40				xtables-arp-standalone.c xtables-arp.c \
41				nft-bridge.c nft-cmd.c nft-chain.c \
42				xtables-eb-standalone.c xtables-eb.c \
43				xtables-eb-translate.c \
44				xtables-translate.c
45xtables_nft_multi_LDADD   += ${libmnl_LIBS} ${libnftnl_LIBS} ${libnetfilter_conntrack_LIBS} ../extensions/libext4.a ../extensions/libext6.a ../extensions/libext_ebt.a ../extensions/libext_arpt.a
46xtables_nft_multi_SOURCES += xshared.c
47xtables_nft_multi_LDADD   += ../libxtables/libxtables.la -lm
48endif
49
50sbin_PROGRAMS    = xtables-legacy-multi
51if ENABLE_NFTABLES
52sbin_PROGRAMS	+= xtables-nft-multi
53endif
54man_MANS         = iptables.8 iptables-restore.8 iptables-save.8 \
55                   iptables-xml.1 ip6tables.8 ip6tables-restore.8 \
56                   ip6tables-save.8 iptables-extensions.8 \
57                   iptables-apply.8 ip6tables-apply.8
58
59sbin_SCRIPTS     = iptables-apply
60
61if ENABLE_NFTABLES
62man_MANS	+= xtables-nft.8 xtables-translate.8 xtables-legacy.8 \
63                   iptables-translate.8 ip6tables-translate.8 \
64		   iptables-restore-translate.8 ip6tables-restore-translate.8 \
65                   xtables-monitor.8 \
66                   arptables-nft.8 arptables-nft-restore.8 arptables-nft-save.8 \
67                   ebtables-nft.8
68endif
69CLEANFILES       = iptables.8 xtables-monitor.8 \
70		   iptables-xml.1 iptables-apply.8 \
71		   iptables-extensions.8 iptables-extensions.8.tmpl \
72		   iptables-restore.8 iptables-save.8 \
73		   iptables-restore-translate.8 ip6tables-restore-translate.8 \
74		   iptables-translate.8 ip6tables-translate.8
75
76vx_bin_links   = iptables-xml
77if ENABLE_IPV4
78v4_sbin_links  = iptables-legacy iptables-legacy-restore iptables-legacy-save \
79		 iptables iptables-restore iptables-save
80endif
81if ENABLE_IPV6
82v6_sbin_links  = ip6tables-legacy ip6tables-legacy-restore ip6tables-legacy-save \
83		 ip6tables ip6tables-restore ip6tables-save
84endif
85if ENABLE_NFTABLES
86x_sbin_links  = iptables-nft iptables-nft-restore iptables-nft-save \
87		ip6tables-nft ip6tables-nft-restore ip6tables-nft-save \
88		iptables-translate ip6tables-translate \
89		iptables-restore-translate ip6tables-restore-translate \
90		arptables-nft arptables \
91		arptables-nft-restore arptables-restore \
92		arptables-nft-save arptables-save \
93		ebtables-nft ebtables \
94		ebtables-nft-restore ebtables-restore \
95		ebtables-nft-save ebtables-save \
96		xtables-monitor
97endif
98
99iptables-extensions.8: iptables-extensions.8.tmpl ../extensions/matches.man ../extensions/targets.man
100	${AM_VERBOSE_GEN} sed \
101		-e '/@MATCH@/ r ../extensions/matches.man' \
102		-e '/@TARGET@/ r ../extensions/targets.man' $< >$@;
103
104iptables-translate.8 ip6tables-translate.8 iptables-restore-translate.8 ip6tables-restore-translate.8:
105	${AM_VERBOSE_GEN} echo '.so man8/xtables-translate.8' >$@
106
107pkgconfig_DATA = xtables.pc
108
109# Using if..fi avoids an ugly "error (ignored)" message :)
110install-exec-hook:
111	-if test -z "${DESTDIR}"; then /sbin/ldconfig; fi;
112	${INSTALL} -dm0755 "${DESTDIR}${bindir}";
113	for i in ${vx_bin_links}; do ${LN_S} -f "${sbindir}/xtables-legacy-multi" "${DESTDIR}${bindir}/$$i"; done;
114	for i in ${v4_sbin_links}; do ${LN_S} -f xtables-legacy-multi "${DESTDIR}${sbindir}/$$i"; done;
115	for i in ${v6_sbin_links}; do ${LN_S} -f xtables-legacy-multi "${DESTDIR}${sbindir}/$$i"; done;
116	for i in ${x_sbin_links}; do ${LN_S} -f xtables-nft-multi "${DESTDIR}${sbindir}/$$i"; done;
117	${LN_S} -f iptables-apply "${DESTDIR}${sbindir}/ip6tables-apply"
118
119uninstall-hook:
120	dir=${DESTDIR}${bindir}; { \
121		test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; \
122	} || { \
123		test -z "${vx_bin_links}" || ( \
124			cd "$$dir" && rm -f ${vx_bin_links} \
125		) \
126	}
127	dir=${DESTDIR}${sbindir}; { \
128		test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; \
129	} || { \
130		test -z "${v4_sbin_links}" || ( \
131			cd "$$dir" && rm -f ${v4_sbin_links} \
132		); \
133		test -z "${v6_sbin_links}" || ( \
134			cd "$$dir" && rm -f ${v6_sbin_links} \
135		); \
136		test -z "${x_sbin_links}" || ( \
137			cd "$$dir" && rm -f ${x_sbin_links} \
138		); \
139		( cd "$$dir" && rm -f ip6tables-apply ); \
140	}
141