blob: ec6f93906b92637571b7c9fa9cc9c0fb3832fad3 [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -07001# -*- Makefile -*-
2
3ACLOCAL_AMFLAGS = -I m4
4AUTOMAKE_OPTIONS = foreign subdir-objects
5
6AM_CFLAGS = ${regular_CFLAGS} -I${top_builddir}/include -I${top_srcdir}/include ${kinclude_CFLAGS}
7SUBDIRS = extensions
8if ENABLE_DEVEL
9SUBDIRS += include
10endif
11if ENABLE_LIBIPQ
12SUBDIRS += libipq
13endif
14lib_LTLIBRARIES =
15
16# libiptc
17lib_LTLIBRARIES += libiptc/libiptc.la
18libiptc_libiptc_la_SOURCES = libiptc/libip4tc.c libiptc/libip6tc.c
19libiptc_libiptc_la_LDFLAGS = -version-info 0:0:0
20
21lib_LTLIBRARIES += libxtables.la
22libxtables_la_SOURCES = xtables.c
23libxtables_la_LDFLAGS = -version-info ${libxtables_vcurrent}:0:${libxtables_vage}
24libxtables_la_LIBADD = -ldl
25
26# iptables, dynamic
27iptables_SOURCES = iptables-standalone.c iptables.c
28iptables_LDFLAGS = -rdynamic
29iptables_LDADD = libiptc/libiptc.la extensions/libext4.a libxtables.la -lm
30
31iptables_xml_LDADD = libxtables.la
32iptables_multi_SOURCES = iptables-multi.c iptables-save.c \
33 iptables-restore.c iptables-xml.c \
34 iptables-standalone.c iptables.c
35iptables_multi_CFLAGS = ${AM_CFLAGS} -DIPTABLES_MULTI
36iptables_multi_LDFLAGS = ${iptables_LDFLAGS}
37iptables_multi_LDADD = ${iptables_LDADD}
38
39iptables_restore_SOURCES = iptables-restore.c iptables.c
40iptables_restore_LDFLAGS = ${iptables_LDFLAGS}
41iptables_restore_LDADD = ${iptables_LDADD}
42
43iptables_save_SOURCES = iptables-save.c iptables.c
44iptables_save_LDFLAGS = ${iptables_LDFLAGS}
45iptables_save_LDADD = ${iptables_LDADD}
46
47# iptables-multi, semi-static
48iptables_static_SOURCES = ${iptables_multi_SOURCES} xtables.c
49iptables_static_CFLAGS = ${iptables_multi_CFLAGS} -DNO_SHARED_LIBS=1
50iptables_static_LDADD = libiptc/libiptc.la extensions/libext4.a -lm
51
52iptables_xml_SOURCES = iptables-xml.c
53
54# ip6tables, dynamic
55ip6tables_SOURCES = ip6tables-standalone.c ip6tables.c
56ip6tables_LDFLAGS = -rdynamic
57ip6tables_LDADD = libiptc/libiptc.la extensions/libext6.a libxtables.la -lm
58
59ip6tables_multi_SOURCES = ip6tables-multi.c ip6tables-save.c \
60 ip6tables-restore.c ip6tables-standalone.c \
61 ip6tables.c
62ip6tables_multi_CFLAGS = ${AM_CFLAGS} -DIPTABLES_MULTI
63ip6tables_multi_LDFLAGS = ${ip6tables_LDFLAGS}
64ip6tables_multi_LDADD = ${ip6tables_LDADD}
65
66ip6tables_restore_SOURCES = ip6tables-restore.c ip6tables.c
67ip6tables_restore_LDFLAGS = ${ip6tables_LDFLAGS}
68ip6tables_restore_LDADD = ${ip6tables_LDADD}
69
70ip6tables_save_SOURCES = ip6tables-save.c ip6tables.c
71ip6tables_save_LDFLAGS = ${ip6tables_LDFLAGS}
72ip6tables_save_LDADD = ${ip6tables_LDADD}
73
74# iptables-multi, semi-static
75ip6tables_static_SOURCES = ${ip6tables_multi_SOURCES} xtables.c
76ip6tables_static_CFLAGS = ${ip6tables_multi_CFLAGS} -DNO_SHARED_LIBS=1
77ip6tables_static_LDADD = libiptc/libiptc.la extensions/libext6.a -lm
78
79bin_PROGRAMS =
80sbin_PROGRAMS =
81noinst_PROGRAMS =
82man_MANS = iptables.8 iptables-restore.8 iptables-save.8 \
83 iptables-xml.8 ip6tables.8 ip6tables-restore.8 \
84 ip6tables-save.8
85CLEANFILES = iptables.8 ip6tables.8
86
87if ENABLE_STATIC
88if ENABLE_IPV4
89sbin_PROGRAMS += iptables-static
90endif
91if ENABLE_IPV6
92sbin_PROGRAMS += ip6tables-static
93endif
94endif
95if ENABLE_SHARED
96if ENABLE_IPV4
97sbin_PROGRAMS += iptables iptables-multi iptables-restore iptables-save
98endif
99if ENABLE_IPV6
100sbin_PROGRAMS += ip6tables ip6tables-multi ip6tables-restore ip6tables-save
101endif
102bin_PROGRAMS += iptables-xml
103endif
104
105iptables.8: ${srcdir}/iptables.8.in extensions/matches4.man extensions/targets4.man
106 ${AM_VERBOSE_GEN} sed -e 's/@PACKAGE_AND_VERSION@/${PACKAGE} ${PACKAGE_VERSION}/g' -e '/@MATCH@/ r extensions/matches4.man' -e '/@TARGET@/ r extensions/targets4.man' $< >$@;
107
108ip6tables.8: ${srcdir}/ip6tables.8.in extensions/matches6.man extensions/targets6.man
109 ${AM_VERBOSE_GEN} sed -e 's/@PACKAGE_AND_VERSION@/${PACKAGE} ${PACKAGE_VERSION}/g' -e '/@MATCH@/ r extensions/matches6.man' -e '/@TARGET@/ r extensions/targets6.man' $< >$@;
110
111pkgconfig_DATA = libiptc.pc xtables.pc
112
113.PHONY: tarball
114tarball:
115 rm -Rf /tmp/${PACKAGE_TARNAME}-${PACKAGE_VERSION};
116 pushd ${top_srcdir} && git archive --prefix=${PACKAGE_TARNAME}-${PACKAGE_VERSION}/ HEAD | tar -C /tmp -x && popd;
117 pushd /tmp/${PACKAGE_TARNAME}-${PACKAGE_VERSION} && ./autogen.sh && popd;
118 tar -C /tmp -cjf ${PACKAGE_TARNAME}-${PACKAGE_VERSION}.tar.bz2 --owner=root --group=root ${PACKAGE_TARNAME}-${PACKAGE_VERSION}/;
119 rm -Rf /tmp/${PACKAGE_TARNAME}-${PACKAGE_VERSION};
120
121config.status: extensions/GNUmakefile.in \
122 include/xtables.h.in include/iptables/internal.h.in
123
124# Using if..fi avoids an ugly "error (ignored)" message :)
125install-exec-hook:
126 -if test -z "${DESTDIR}"; then /sbin/ldconfig; fi;