From a1187fff744cf407c010fb52a482950d958dbf02 Mon Sep 17 00:00:00 2001 From: laforge Date: Mon, 6 Aug 2001 18:50:21 +0000 Subject: - added patch to support statically linking of iptables - iptables-save/-restore is no longer experimental --- extensions/Makefile | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'extensions/Makefile') diff --git a/extensions/Makefile b/extensions/Makefile index d7b6173..e420aeb 100644 --- a/extensions/Makefile +++ b/extensions/Makefile @@ -16,6 +16,7 @@ PF6_EXT_SLIB+=$(PF6_EXT_SLIB_OPTS) OPTIONALS+=$(patsubst %,IPv4:%,$(PF_EXT_SLIB_OPTS)) OPTIONALS+=$(patsubst %,IPv6:%,$(PF6_EXT_SLIB_OPTS)) +ifndef NO_SHARED_LIBS SHARED_LIBS+=$(foreach T,$(PF_EXT_SLIB),extensions/libipt_$(T).so) EXTRA_INSTALLS+=$(foreach T, $(PF_EXT_SLIB), $(DESTDIR)$(LIBDIR)/iptables/libipt_$(T).so) @@ -23,12 +24,57 @@ ifdef DO_IPV6 SHARED_LIBS+=$(foreach T,$(PF6_EXT_SLIB),extensions/libip6t_$(T).so) EXTRA_INSTALLS+=$(foreach T, $(PF6_EXT_SLIB), $(DESTDIR)$(LIBDIR)/iptables/libip6t_$(T).so) endif +else # NO_SHARED_LIBS +EXT_OBJS+=$(foreach T,$(PF_EXT_SLIB),extensions/libipt_$(T).o) +EXT_FUNC+=$(foreach T,$(PF_EXT_SLIB),ipt_$(T)) +EXT_OBJS+= extensions/initext.o +EXT6_OBJS+=$(foreach T,$(PF6_EXT_SLIB),extensions/libip6t_$(T).o) +EXT6_FUNC+=$(foreach T,$(PF6_EXT_SLIB),ip6t_$(T)) +EXT6_OBJS+= extensions/initext6.o +endif ifndef TOPLEVEL_INCLUDED local: cd .. && $(MAKE) $(SHARED_LIBS) endif +ifdef NO_SHARED_LIBS +extensions/libext.a: $(EXT_OBJS) + rm -f $@; ar crv $@ $(EXT_OBJS) + +extensions/libext6.a: $(EXT6_OBJS) + rm -f $@; ar crv $@ $(EXT6_OBJS) + +extensions/initext.o: extensions/initext.c +extensions/initext6.o: extensions/initext6.c + +extensions/initext.c: extensions/Makefile + echo "" > $@ + for i in $(EXT_FUNC); do \ + echo "extern void $${i}_init(void);" >> $@; \ + done + echo "void init_extensions(void) {" >> $@ + for i in $(EXT_FUNC); do \ + echo " $${i}_init();" >> $@; \ + done + echo "}" >> $@ + +extensions/initext6.c: extensions/Makefile + echo "" > $@ + for i in $(EXT6_FUNC); do \ + echo "extern void $${i}_init(void);" >> $@; \ + done + echo "void init_extensions(void) {" >> $@ + for i in $(EXT6_FUNC); do \ + echo " $${i}_init();" >> $@; \ + done + echo "}" >> $@ + +extensions/lib%.o: extensions/lib%.c + $(CC) $(CFLAGS) -D_INIT=$*_init -c -o $@ $< + +endif + $(DESTDIR)$(LIBDIR)/iptables/libipt_%.so: extensions/libipt_%.so @[ -d $(DESTDIR)$(LIBDIR)/iptables ] || mkdir -p $(DESTDIR)$(LIBDIR)/iptables cp $< $@ -- cgit v1.2.3