]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
Move common parts of libext{4,6}.a into libext.a
authorMaciej Żenczykowski <maze@google.com>
Wed, 6 Apr 2011 20:35:11 +0000 (13:35 -0700)
committerMaciej Żenczykowski <maze@google.com>
Wed, 20 Apr 2011 01:21:39 +0000 (18:21 -0700)
Signed-off-by: Maciej Zenczykowski <maze@google.com>
.gitignore
Makefile.am
extensions/GNUmakefile.in
include/xtables.h.in
ip6tables-restore.c
ip6tables-save.c
ip6tables-standalone.c
iptables-restore.c
iptables-save.c
iptables-standalone.c

index e5d309968b23108768c6482b00ddd56a753b44d6..9b59e6a615947a4eb765c58c183b018961c177d6 100644 (file)
@@ -13,6 +13,7 @@ Makefile
 Makefile.in
 
 /extensions/GNUmakefile
+/extensions/initext.c
 /extensions/initext?.c
 /extensions/matches?.man
 /extensions/targets?.man
index fbed41fca64a2ee7af3a7d2c13326cc01c22fa85..6affcac2b40c7db3a85638c9ec0bda5d10f3fb1a 100644 (file)
@@ -45,7 +45,9 @@ if ENABLE_STATIC
 iptables_multi_CFLAGS    += -DALL_INCLUSIVE
 endif
 iptables_multi_LDFLAGS    = -rdynamic
-iptables_multi_LDADD      = libiptc/libip4tc.la extensions/libext4.a libxtables.la -lm
+iptables_multi_LDADD      = libiptc/libip4tc.la \
+                            extensions/libext.a extensions/libext4.a \
+                            libxtables.la -lm
 
 ip6tables_multi_SOURCES   = ip6tables-multi.c ip6tables-save.c \
                             ip6tables-restore.c ip6tables-standalone.c \
@@ -55,7 +57,9 @@ if ENABLE_STATIC
 ip6tables_multi_CFLAGS   += -DALL_INCLUSIVE
 endif
 ip6tables_multi_LDFLAGS   = -rdynamic
-ip6tables_multi_LDADD     = libiptc/libip6tc.la extensions/libext6.a libxtables.la -lm
+ip6tables_multi_LDADD     = libiptc/libip6tc.la \
+                            extensions/libext.a extensions/libext6.a \
+                            libxtables.la -lm
 
 sbin_PROGRAMS    =
 man_MANS         = iptables.8 iptables-restore.8 iptables-save.8 \
index 0e562fb56ecd05423e62493edde05f2bd2ebccac..a511a39aa0bc91eb06b2323520149e3af40f4c5e 100644 (file)
@@ -51,11 +51,13 @@ pf6_solibs    := $(patsubst %,libip6t_%.so,${pf6_build_mod})
 #
 # Building blocks
 #
-targets := libext4.a libext6.a matches4.man matches6.man \
+targets := libext.a libext4.a libext6.a \
+           matches4.man matches6.man \
            targets4.man targets6.man
 targets_install :=
-@ENABLE_STATIC_TRUE@ libext4_objs := ${pfx_objs} ${pf4_objs}
-@ENABLE_STATIC_TRUE@ libext6_objs := ${pfx_objs} ${pf6_objs}
+@ENABLE_STATIC_TRUE@ libext_objs := ${pfx_objs}
+@ENABLE_STATIC_TRUE@ libext4_objs := ${pf4_objs}
+@ENABLE_STATIC_TRUE@ libext6_objs := ${pf6_objs}
 @ENABLE_STATIC_FALSE@ targets += ${pfx_solibs} ${pf4_solibs} ${pf6_solibs}
 @ENABLE_STATIC_FALSE@ targets_install += ${pfx_solibs} ${pf4_solibs} ${pf6_solibs}
 
@@ -70,7 +72,7 @@ install: ${targets_install}
        if test -n "${targets_install}"; then install -pm0755 $^ "${DESTDIR}${xtlibdir}/"; fi;
 
 clean:
-       rm -f *.o *.oo *.so *.a {matches,targets}[46].man initext4.c initext6.c;
+       rm -f *.o *.oo *.so *.a {matches,targets}[46].man initext.c initext4.c initext6.c;
 
 distclean: clean
        rm -f .*.d .*.dd;
@@ -101,36 +103,61 @@ lib%.oo: ${srcdir}/lib%.c
 lib%.o: ${srcdir}/lib%.c
        ${AM_VERBOSE_CC} ${CC} ${AM_DEPFLAGS} ${AM_CFLAGS} -DNO_SHARED_LIBS=1 -D_INIT=lib$*_init ${CFLAGS} -o $@ -c $<;
 
+libext.a: initext.o ${libext_objs}
+       ${AM_VERBOSE_AR} ${AR} crs $@ $^;
+
 libext4.a: initext4.o ${libext4_objs}
        ${AM_VERBOSE_AR} ${AR} crs $@ $^;
 
 libext6.a: initext6.o ${libext6_objs}
        ${AM_VERBOSE_AR} ${AR} crs $@ $^;
 
-initext_func  := $(addprefix xt_,${pfx_build_mod}) $(addprefix ipt_,${pf4_build_mod})
-initext6_func := $(addprefix xt_,${pfx_build_mod}) $(addprefix ip6t_,${pf6_build_mod})
+initext_func  := $(addprefix xt_,${pfx_build_mod})
+initext4_func := $(addprefix ipt_,${pf4_build_mod})
+initext6_func := $(addprefix ip6t_,${pf6_build_mod})
 
-.initext4.dd: FORCE
+.initext.dd: FORCE
        @echo "${initext_func}" >$@.tmp; \
        cmp -s $@ $@.tmp || mv $@.tmp $@; \
        rm -f $@.tmp;
 
+.initext4.dd: FORCE
+       @echo "${initext4_func}" >$@.tmp; \
+       cmp -s $@ $@.tmp || mv $@.tmp $@; \
+       rm -f $@.tmp;
+
 .initext6.dd: FORCE
        @echo "${initext6_func}" >$@.tmp; \
        cmp -s $@ $@.tmp || mv $@.tmp $@; \
        rm -f $@.tmp;
 
-initext4.c: .initext4.dd
+initext.c: .initext.dd
        ${AM_VERBOSE_GEN}
        @( \
        echo "" >$@; \
        for i in ${initext_func}; do \
                echo "extern void lib$${i}_init(void);" >>$@; \
        done; \
+       echo "void init_extensions(void);" >>$@; \
+       echo "void init_extensions(void)" >>$@; \
+       echo "{" >>$@; \
+       for i in ${initext_func}; do \
+               echo  " ""lib$${i}_init();" >>$@; \
+       done; \
+       echo "}" >>$@; \
+       );
+
+initext4.c: .initext4.dd
+       ${AM_VERBOSE_GEN}
+       @( \
+       echo "" >$@; \
+       for i in ${initext4_func}; do \
+               echo "extern void lib$${i}_init(void);" >>$@; \
+       done; \
        echo "void init_extensions4(void);" >>$@; \
        echo "void init_extensions4(void)" >>$@; \
        echo "{" >>$@; \
-       for i in ${initext_func}; do \
+       for i in ${initext4_func}; do \
                echo  " ""lib$${i}_init();" >>$@; \
        done; \
        echo "}" >>$@; \
@@ -177,14 +204,14 @@ man_run    = \
                fi; \
        done >$@;
 
-matches4.man: .initext4.dd $(wildcard ${srcdir}/lib*.man)
+matches4.man: .initext.dd .initext4.dd $(wildcard ${srcdir}/lib*.man)
        $(call man_run,$(call ex_matches,${pfx_build_mod} ${pf4_build_mod}),ip,NFPROTO_IPV4)
 
-matches6.man: .initext6.dd $(wildcard ${srcdir}/lib*.man)
+matches6.man: .initext.dd .initext6.dd $(wildcard ${srcdir}/lib*.man)
        $(call man_run,$(call ex_matches,${pfx_build_mod} ${pf6_build_mod}),ip6,NFPROTO_IPV6)
 
-targets4.man: .initext4.dd $(wildcard ${srcdir}/lib*.man)
+targets4.man: .initext.dd .initext4.dd $(wildcard ${srcdir}/lib*.man)
        $(call man_run,$(call ex_targets,${pfx_build_mod} ${pf4_build_mod}),ip,NFPROTO_IPV4)
 
-targets6.man: .initext6.dd $(wildcard ${srcdir}/lib*.man)
+targets6.man: .initext.dd .initext6.dd $(wildcard ${srcdir}/lib*.man)
        $(call man_run,$(call ex_targets,${pfx_build_mod} ${pf6_build_mod}),ip6,NFPROTO_IPV6)
index b0802855e9f97f5cebd24cc0d912f6c12f400345..1d91d4dfa9d9a16ae8af4efd07fbf6b15d2c92f4 100644 (file)
@@ -422,6 +422,7 @@ extern void xtables_save_string(const char *value);
 #              undef _init
 #              define _init _INIT
 #      endif
+       extern void init_extensions(void);
        extern void init_extensions4(void);
        extern void init_extensions6(void);
 #else
index 5531d6e32eb4b5aa6e435e0581a3c76927a5e303..420bc523038b1c49765d08460fd5a84248b4e59a 100644 (file)
@@ -137,6 +137,7 @@ int main(int argc, char *argv[])
                exit(1);
        }
 #if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS)
+       init_extensions();
        init_extensions6();
 #endif
 
index d9ecc62deec324b886ef8cd95180ed1053c8b95b..39a33256185cd2f8756327ea948d2abe81850983 100644 (file)
@@ -149,6 +149,7 @@ int main(int argc, char *argv[])
                exit(1);
        }
 #if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS)
+       init_extensions();
        init_extensions6();
 #endif
 
index 7d34684064b0915389fa01612d8979258fa6ecb8..9d8d5a0f1ee6abf9fc07b3edec888137c8170efd 100644 (file)
@@ -59,6 +59,7 @@ main(int argc, char *argv[])
        }
 
 #if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS)
+       init_extensions();
        init_extensions6();
 #endif
 
index e4f0604f82a9cb5429dfb02d48ba62e28c043cab..2624599773a265415a2c0e2e4831f304a946c0dd 100644 (file)
@@ -140,6 +140,7 @@ main(int argc, char *argv[])
                exit(1);
        }
 #if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS)
+       init_extensions();
        init_extensions4();
 #endif
 
index dee1752885fd156c60f8d95af1c918bbdf683e5e..7542bdc08d419f4ab508ce8aba462c3859b9725c 100644 (file)
@@ -149,6 +149,7 @@ main(int argc, char *argv[])
                exit(1);
        }
 #if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS)
+       init_extensions();
        init_extensions4();
 #endif
 
index b0859464ee78c7c87e5e5ab2b0566502f399c5a0..87f1d31af92ff8b0b8ddd9ef75d3ff65478effea 100644 (file)
@@ -59,6 +59,7 @@ main(int argc, char *argv[])
                                exit(1);
        }
 #if defined(ALL_INCLUSIVE) || defined(NO_SHARED_LIBS)
+       init_extensions();
        init_extensions4();
 #endif