summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--Makefile.am30
-rw-r--r--configure.ac7
-rw-r--r--xtables.pc.in11
4 files changed, 39 insertions, 13 deletions
diff --git a/.gitignore b/.gitignore
index 9ebe15ca..741f9729 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,11 +1,14 @@
.*.d
.*.dd
*.a
+*.la
+*.lo
*.oo
*.so
*.o
.deps
.dirstamp
+.libs
Makefile
Makefile.in
@@ -31,6 +34,7 @@ Makefile.in
/ltmain.sh
/missing
/stamp-h1
+/xtables.pc
/ip6tables
/ip6tables.8
diff --git a/Makefile.am b/Makefile.am
index b714b97f..48e012ef 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -11,55 +11,59 @@ endif
# libiptc
libiptc_libiptc_a_SOURCES = libiptc/libip4tc.c libiptc/libip6tc.c
+lib_LTLIBRARIES = libxtables.la
+libxtables_la_SOURCES = xtables.c
+libxtables_la_LDFLAGS = -version 0:0:0
+
# iptables, dynamic
-iptables_SOURCES = iptables-standalone.c iptables.c xtables.c
+iptables_SOURCES = iptables-standalone.c iptables.c
iptables_LDFLAGS = -rdynamic
-iptables_LDADD = -ldl -lm libiptc/libiptc.a extensions/libext4.a
+iptables_LDADD = -ldl -lm libiptc/libiptc.a extensions/libext4.a libxtables.la
iptables_multi_SOURCES = iptables-multi.c iptables-save.c \
iptables-restore.c iptables-xml.c \
- iptables-standalone.c iptables.c xtables.c
+ iptables-standalone.c iptables.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_SOURCES = iptables-restore.c iptables.c
iptables_restore_LDFLAGS = ${iptables_LDFLAGS}
iptables_restore_LDADD = ${iptables_LDADD}
-iptables_save_SOURCES = iptables-save.c iptables.c xtables.c
+iptables_save_SOURCES = iptables-save.c iptables.c
iptables_save_LDFLAGS = ${iptables_LDFLAGS}
iptables_save_LDADD = ${iptables_LDADD}
# iptables-multi, semi-static
-iptables_static_SOURCES = ${iptables_multi_SOURCES}
+iptables_static_SOURCES = ${iptables_multi_SOURCES} iptables.c xtables.c
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_SOURCES = ip6tables-standalone.c ip6tables.c
ip6tables_LDFLAGS = -rdynamic
-ip6tables_LDADD = -ldl -lm libiptc/libiptc.a extensions/libext6.a
+ip6tables_LDADD = -ldl -lm libiptc/libiptc.a extensions/libext6.a libxtables.la
ip6tables_multi_SOURCES = ip6tables-multi.c ip6tables-save.c \
ip6tables-restore.c ip6tables-standalone.c \
- ip6tables.c xtables.c
+ ip6tables.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_SOURCES = ip6tables-restore.c ip6tables.c
ip6tables_restore_LDFLAGS = ${ip6tables_LDFLAGS}
ip6tables_restore_LDADD = ${ip6tables_LDADD}
-ip6tables_save_SOURCES = ip6tables-save.c ip6tables.c xtables.c
+ip6tables_save_SOURCES = ip6tables-save.c ip6tables.c
ip6tables_save_LDFLAGS = ${ip6tables_LDFLAGS}
ip6tables_save_LDADD = ${ip6tables_LDADD}
# iptables-multi, semi-static
-ip6tables_static_SOURCES = ${ip6tables_multi_SOURCES}
+ip6tables_static_SOURCES = ${ip6tables_multi_SOURCES} ip6tables.c xtables.c
ip6tables_static_CFLAGS = ${ip6tables_multi_CFLAGS} -DNO_SHARED_LIBS=1
ip6tables_static_LDADD = -lm libiptc/libiptc.a extensions/libext6.a
@@ -92,6 +96,8 @@ ip6tables.8: ${srcdir}/ip6tables.8.in extensions/matches6.man extensions/targets
extensions/%:
${MAKE} ${AM_MAKEFLAGS} -C $(@D) $(@F)
+pkgconfig_DATA = xtables.pc
+
.PHONY: tarball
tarball:
rm -Rf /tmp/${PACKAGE_TARNAME}-${PACKAGE_VERSION};
diff --git a/configure.ac b/configure.ac
index 2ffe6c02..d86e29f1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -37,6 +37,9 @@ AC_ARG_ENABLE([devel],
[enable_devel="$enableval"], [enable_devel="yes"])
AC_ARG_ENABLE([libipq],
AS_HELP_STRING([--enable-libipq], [Build and install libipq]))
+AC_ARG_WITH([pkgconfigdir], AS_HELP_STRING([--with-pkgconfigdir=PATH],
+ [Path to the pkgconfig directory [[LIBDIR/pkgconfig]]]),
+ [pkgconfigdir="$withval"], [pkgconfigdir='${libdir}/pkgconfig'])
AC_CHECK_HEADER([linux/dccp.h])
@@ -69,6 +72,7 @@ AC_SUBST([kinclude_CFLAGS])
AC_SUBST([kbuilddir])
AC_SUBST([ksourcedir])
AC_SUBST([xtlibdir])
+AC_SUBST([pkgconfigdir])
XTABLES_VERSION_MAJOR=_XTABLES_VERSION_MAJOR
XTABLES_VERSION_MINOR=_XTABLES_VERSION_MINOR
@@ -79,4 +83,5 @@ AC_SUBST([XTABLES_VERSION_MINOR])
AC_SUBST([XTABLES_VERSION_PATCH])
AC_SUBST([XTABLES_VERSION_EXTRA])
-AC_OUTPUT([Makefile extensions/GNUmakefile libipq/Makefile include/xtables.h])
+AC_OUTPUT([Makefile extensions/GNUmakefile libipq/Makefile include/xtables.h
+ xtables.pc])
diff --git a/xtables.pc.in b/xtables.pc.in
new file mode 100644
index 00000000..7246d7bd
--- /dev/null
+++ b/xtables.pc.in
@@ -0,0 +1,11 @@
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+xtlibdir=@xtlibdir@
+includedir=@includedir@
+
+Name: xtables
+Description: Shared Xtables code for extensions and iproute2
+Version: @PACKAGE_VERSION@
+Libs: -lxtables