From 0d0ef5c79805e6a7dc95f82c1cb67be09422b9ed Mon Sep 17 00:00:00 2001 From: "/C=EU/ST=EU/CN=Patrick McHardy/emailAddress=kaber@trash.net" Date: Sun, 20 Jan 2008 13:14:00 +0000 Subject: Converts the iptables build infrastructure to autotools. - Can build both static and dynamic at the same time - iptables-static will be a multi-binary, semi-static (link against libc but w/o dynamic plugins) - Always build IPv6 modules - consider INSTALL Signed-off-by: Jan Engelhardt --- Makefile.am | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 Makefile.am (limited to 'Makefile.am') diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..17c78a7 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,92 @@ +# -*- Makefile -*- + +AUTOMAKE_OPTIONS = foreign subdir-objects +AM_CFLAGS = ${regular_CFLAGS} -I${top_srcdir}/include +SUBDIRS := extensions +if ENABLE_DEVEL +SUBDIRS += libipq +endif + +# libiptc +libiptc_libiptc_a_SOURCES = libiptc/libip4tc.c libiptc/libip6tc.c + +# iptables, dynamic +iptables_SOURCES = iptables-standalone.c iptables.c xtables.c +iptables_LDFLAGS = -rdynamic +iptables_LDADD = -ldl -lm libiptc/libiptc.a extensions/libext4.a + +iptables_multi_SOURCES = iptables-multi.c iptables-save.c \ + iptables-restore.c iptables-xml.c \ + iptables-standalone.c iptables.c xtables.c +iptables_multi_CFLAGS = ${AM_CFLAGS} -DIPTABLES_MULTI +iptables_multi_LDFLAGS = ${iptables_LDFLAGS} +iptables_multi_LDADD = ${iptables_LDADD} + +iptables_restore_SOURCES = iptables-restore.c iptables.c xtables.c +iptables_restore_LDFLAGS = ${iptables_LDFLAGS} +iptables_restore_LDADD = ${iptables_LDADD} + +iptables_save_SOURCES = iptables-save.c iptables.c xtables.c +iptables_save_LDFLAGS = ${iptables_LDFLAGS} +iptables_save_LDADD = ${iptables_LDADD} + +# iptables-multi, semi-static +iptables_static_SOURCES = ${iptables_multi_SOURCES} +iptables_static_CFLAGS = ${iptables_multi_CFLAGS} -DNO_SHARED_LIBS=1 +iptables_static_LDADD = -lm libiptc/libiptc.a extensions/libext4.a + +iptables_xml_SOURCES = iptables-xml.c + +# ip6tables, dynamic +ip6tables_SOURCES = ip6tables-standalone.c ip6tables.c xtables.c +ip6tables_LDFLAGS = -rdynamic +ip6tables_LDADD = -ldl -lm libiptc/libiptc.a extensions/libext6.a + +ip6tables_multi_SOURCES = ip6tables-multi.c ip6tables-save.c \ + ip6tables-restore.c ip6tables-standalone.c \ + ip6tables.c xtables.c +ip6tables_multi_CFLAGS = ${AM_CFLAGS} -DIPTABLES_MULTI +ip6tables_multi_LDFLAGS = ${ip6tables_LDFLAGS} +ip6tables_multi_LDADD = ${ip6tables_LDADD} + +ip6tables_restore_SOURCES = ip6tables-restore.c ip6tables.c xtables.c +ip6tables_restore_LDFLAGS = ${ip6tables_LDFLAGS} +ip6tables_restore_LDADD = ${ip6tables_LDADD} + +ip6tables_save_SOURCES = ip6tables-save.c ip6tables.c xtables.c +ip6tables_save_LDFLAGS = ${ip6tables_LDFLAGS} +ip6tables_save_LDADD = ${ip6tables_LDADD} + +# iptables-multi, semi-static +ip6tables_static_SOURCES = ${ip6tables_multi_SOURCES} +ip6tables_static_CFLAGS = ${ip6tables_multi_CFLAGS} -DNO_SHARED_LIBS=1 +ip6tables_static_LDADD = -lm libiptc/libiptc.a extensions/libext6.a + +noinst_LIBRARIES := libiptc/libiptc.a +bin_PROGRAMS := iptables-xml +sbin_PROGRAMS := +noinst_PROGRAMS := +man_MANS := iptables.8 iptables-restore.8 iptables-save.8 \ + iptables-xml.8 ip6tables.8 ip6tables-restore.8 \ + ip6tables-save.8 +CLEANFILES := iptables.8 ip6tables.8 +if ENABLE_DEVEL +include_HEADERS := include/xtables.h include/iptables.h include/ip6tables.h +endif + +if ENABLE_STATIC +sbin_PROGRAMS += iptables-static ip6tables-static +endif +if ENABLE_SHARED +sbin_PROGRAMS += iptables iptables-multi iptables-restore iptables-save \ + ip6tables ip6tables-multi ip6tables-restore ip6tables-save +endif + +iptables.8: ${srcdir}/iptables.8.in extensions/matches4.man extensions/targets4.man + ${AM_VERBOSE_GEN} sed -e '/@MATCH@/ r extensions/matches4.man' -e '/@TARGET@/ r extensions/targets4.man' $< >$@; + +ip6tables.8: ${srcdir}/ip6tables.8.in extensions/matches6.man extensions/targets6.man + ${AM_VERBOSE_GEN} sed -e '/@MATCH@/ r extensions/matches6.man' -e '/@TARGET@/ r extensions/targets6.man' $< >$@; + +extensions/%: + ${MAKE} ${AM_MAKEFLAGS} -C $(@D) $(@F) -- cgit v1.2.3