--- a/extensions/GNUmakefile.in
+++ b/extensions/GNUmakefile.in
-@@ -85,7 +85,7 @@ pf6_solibs := $(patsubst %,libip6t_%.
+@@ -86,7 +86,7 @@ pfx_symlink_files := $(patsubst %,libxt_
#
# Building blocks
#
targets_install :=
libext_objs := ${pfx_objs}
libext_ebt_objs := ${pfb_objs}
-@@ -112,7 +112,7 @@ clean:
+@@ -119,7 +119,7 @@ clean:
distclean: clean
init%.o: init%.c
-include .*.d
-@@ -144,22 +144,22 @@ xt_connlabel_LIBADD = @libnetfilter_conn
+@@ -151,22 +151,22 @@ xt_connlabel_LIBADD = @libnetfilter_conn
# handling code in the Makefiles.
#
lib%.o: ${srcdir}/lib%.c
-libext.a: initext.o ${libext_objs}
- ${AM_VERBOSE_AR} ${AR} crs $@ $^;
+libiptext.so: initext.o ${libext_objs}
-+ ${AM_VERBOSE_CCLD} ${CCLD} ${AM_LDFLAGS} -shared ${LDFLAGS} -o $@ $^ -L../libxtables/.libs -lxtables ${$*_LIBADD};
++ ${AM_VERBOSE_CCLD} ${CCLD} ${AM_LDFLAGS} -shared ${LDFLAGS} -o $@ $^ -L../libxtables/.libs -lxtables $(foreach obj,$^,${$(patsubst lib%.o,%,$(obj))_LIBADD});
-libext_ebt.a: initextb.o ${libext_ebt_objs}
- ${AM_VERBOSE_AR} ${AR} crs $@ $^;
+libiptext_ebt.so: initextb.o ${libext_ebt_objs}
-+ ${AM_VERBOSE_CCLD} ${CCLD} ${AM_LDFLAGS} -shared ${LDFLAGS} -o $@ $^ -L../libxtables/.libs -lxtables ${$*_LIBADD};
++ ${AM_VERBOSE_CCLD} ${CCLD} ${AM_LDFLAGS} -shared ${LDFLAGS} -o $@ $^ -L../libxtables/.libs -lxtables $(foreach obj,$^,${$(patsubst lib%.o,%,$(obj))_LIBADD});
-libext_arpt.a: initexta.o ${libext_arpt_objs}
- ${AM_VERBOSE_AR} ${AR} crs $@ $^;
+libiptext_arpt.so: initexta.o ${libext_arpt_objs}
-+ ${AM_VERBOSE_CCLD} ${CCLD} ${AM_LDFLAGS} -shared ${LDFLAGS} -o $@ $^ -L../libxtables/.libs -lxtables ${$*_LIBADD};
++ ${AM_VERBOSE_CCLD} ${CCLD} ${AM_LDFLAGS} -shared ${LDFLAGS} -o $@ $^ -L../libxtables/.libs -lxtables $(foreach obj,$^,${$(patsubst lib%.o,%,$(obj))_LIBADD});
-libext4.a: initext4.o ${libext4_objs}
- ${AM_VERBOSE_AR} ${AR} crs $@ $^;
+libiptext4.so: initext4.o ${libext4_objs}
-+ ${AM_VERBOSE_CCLD} ${CCLD} ${AM_LDFLAGS} -shared ${LDFLAGS} -o $@ $^ -L../libxtables/.libs -lxtables ${$*_LIBADD};
++ ${AM_VERBOSE_CCLD} ${CCLD} ${AM_LDFLAGS} -shared ${LDFLAGS} -o $@ $^ -L../libxtables/.libs -lxtables $(foreach obj,$^,${$(patsubst lib%.o,%,$(obj))_LIBADD});
-libext6.a: initext6.o ${libext6_objs}
- ${AM_VERBOSE_AR} ${AR} crs $@ $^;
+libiptext6.so: initext6.o ${libext6_objs}
-+ ${AM_VERBOSE_CCLD} ${CCLD} ${AM_LDFLAGS} -shared ${LDFLAGS} -o $@ $^ -L../libxtables/.libs -lxtables ${$*_LIBADD};
++ ${AM_VERBOSE_CCLD} ${CCLD} ${AM_LDFLAGS} -shared ${LDFLAGS} -o $@ $^ -L../libxtables/.libs -lxtables $(foreach obj,$^,${$(patsubst lib%.o,%,$(obj))_LIBADD});
initext_func := $(addprefix xt_,${pfx_build_static})
initextb_func := $(addprefix ebt_,${pfb_build_static})
--- a/iptables/Makefile.am
+++ b/iptables/Makefile.am
-@@ -8,7 +8,8 @@ BUILT_SOURCES =
+@@ -8,19 +8,22 @@ BUILT_SOURCES =
- xtables_multi_SOURCES = xtables-multi.c iptables-xml.c
- xtables_multi_CFLAGS = ${AM_CFLAGS}
--xtables_multi_LDADD = ../extensions/libext.a
-+xtables_multi_LDADD =
-+xtables_multi_LDFLAGS = -L../extensions/ -liptext
+ xtables_legacy_multi_SOURCES = xtables-legacy-multi.c iptables-xml.c
+ xtables_legacy_multi_CFLAGS = ${AM_CFLAGS}
+-xtables_legacy_multi_LDADD = ../extensions/libext.a
++xtables_legacy_multi_LDADD =
++xtables_legacy_multi_LDFLAGS = -L../extensions/ -liptext
if ENABLE_STATIC
- xtables_multi_CFLAGS += -DALL_INCLUSIVE
+ xtables_legacy_multi_CFLAGS += -DALL_INCLUSIVE
endif
-@@ -16,13 +17,15 @@ if ENABLE_IPV4
- xtables_multi_SOURCES += iptables-save.c iptables-restore.c \
- iptables-standalone.c iptables.c
- xtables_multi_CFLAGS += -DENABLE_IPV4
--xtables_multi_LDADD += ../libiptc/libip4tc.la ../extensions/libext4.a
-+xtables_multi_LDADD += ../libiptc/libip4tc.la
-+xtables_multi_LDFLAGS += -liptext4
+ if ENABLE_IPV4
+ xtables_legacy_multi_SOURCES += iptables-standalone.c iptables.c
+ xtables_legacy_multi_CFLAGS += -DENABLE_IPV4
+-xtables_legacy_multi_LDADD += ../libiptc/libip4tc.la ../extensions/libext4.a
++xtables_legacy_multi_LDADD += ../libiptc/libip4tc.la
++xtables_legacy_multi_LDFLAGS += -liptext4
endif
if ENABLE_IPV6
- xtables_multi_SOURCES += ip6tables-save.c ip6tables-restore.c \
- ip6tables-standalone.c ip6tables.c
- xtables_multi_CFLAGS += -DENABLE_IPV6
--xtables_multi_LDADD += ../libiptc/libip6tc.la ../extensions/libext6.a
-+xtables_multi_LDADD += ../libiptc/libip6tc.la
-+xtables_multi_LDFLAGS += -liptext6
+ xtables_legacy_multi_SOURCES += ip6tables-standalone.c ip6tables.c
+ xtables_legacy_multi_CFLAGS += -DENABLE_IPV6
+-xtables_legacy_multi_LDADD += ../libiptc/libip6tc.la ../extensions/libext6.a
++xtables_legacy_multi_LDADD += ../libiptc/libip6tc.la
++xtables_legacy_multi_LDFLAGS += -liptext6
endif
- xtables_multi_SOURCES += xshared.c
- xtables_multi_LDADD += ../libxtables/libxtables.la -lm
+ xtables_legacy_multi_SOURCES += xshared.c iptables-restore.c iptables-save.c
+ xtables_legacy_multi_LDADD += ../libxtables/libxtables.la -lm
+@@ -30,7 +33,8 @@ if ENABLE_NFTABLES
+ BUILT_SOURCES += xtables-config-parser.h
+ xtables_nft_multi_SOURCES = xtables-nft-multi.c iptables-xml.c
+ xtables_nft_multi_CFLAGS = ${AM_CFLAGS}
+-xtables_nft_multi_LDADD = ../extensions/libext.a ../extensions/libext_ebt.a
++xtables_nft_multi_LDADD =
++xtables_nft_multi_LDFLAGS = -L../extensions/ -liptext -liptext_ebt
+ if ENABLE_STATIC
+ xtables_nft_multi_CFLAGS += -DALL_INCLUSIVE
+ endif
+@@ -45,7 +49,8 @@ xtables_nft_multi_SOURCES += xtables-sav
+ xtables-eb-standalone.c xtables-eb.c \
+ xtables-eb-translate.c \
+ xtables-translate.c
+-xtables_nft_multi_LDADD += ${libmnl_LIBS} ${libnftnl_LIBS} ${libnetfilter_conntrack_LIBS} ../extensions/libext4.a ../extensions/libext6.a ../extensions/libext_ebt.a ../extensions/libext_arpt.a
++xtables_nft_multi_LDADD += ${libmnl_LIBS} ${libnftnl_LIBS} ${libnetfilter_conntrack_LIBS}
++xtables_nft_multi_LDFLAGS += -liptext4 -liptext6 -liptext_arpt
+ # yacc and lex generate dirty code
+ xtables_nft_multi-xtables-config-parser.o xtables_nft_multi-xtables-config-syntax.o: AM_CFLAGS += -Wno-missing-prototypes -Wno-missing-declarations -Wno-implicit-function-declaration -Wno-nested-externs -Wno-undef -Wno-redundant-decls
+ xtables_nft_multi_SOURCES += xshared.c