Busybox: Upgrade to 1.21.1 (stable). lsof active.
[tomato.git] / release / src / router / iptables / extensions / Makefile.orig
blobb1daa7320cf1ae48afb1bcc77112e135077f0664
1 #! /usr/bin/make
3 # WARNING:
4 # only add extensions here that are either present in the kernel, or whose
5 # header files are present in the include/linux directory of this iptables
6 # package (HW)
8 PF_EXT_SLIB:=ah addrtype comment connlimit connmark conntrack dscp ecn esp hashlimit helper icmp iprange length limit mac mark multiport owner physdev pkttype policy realm rpc sctp standard state tcp tcpmss tos ttl udp unclean CLASSIFY CONNMARK DNAT DSCP ECN LOG MARK MASQUERADE MIRROR NETMAP NFQUEUE NOTRACK REDIRECT REJECT SAME SNAT TARPIT TCPMSS TOS TRACE TTL ULOG
9 PF6_EXT_SLIB:=connmark eui64 hl icmp6 length limit mac mark multiport owner physdev policy standard state tcp udp CONNMARK HL LOG NFQUEUE MARK TRACE
11 ifeq ($(DO_SELINUX), 1)
12 PF_EXT_SE_SLIB:=SECMARK CONNSECMARK
13 PF6_EXT_SE_SLIB:=SECMARK CONNSECMARK
14 endif
16 # Optionals
17 PF_EXT_SLIB_OPTS:=$(foreach T,$(wildcard extensions/.*-test),$(shell KERNEL_DIR=$(KERNEL_DIR) $(T)))
18 PF6_EXT_SLIB_OPTS:=$(foreach T,$(wildcard extensions/.*-test6),$(shell KERNEL_DIR=$(KERNEL_DIR) $(T)))
20 PF_EXT_ALL_SLIB:=$(patsubst extensions/libipt_%.c, %, $(wildcard extensions/libipt_*.c))
21 PF6_EXT_ALL_SLIB:=$(patsubst extensions/libip6t_%.c, %, $(wildcard extensions/libip6t_*.c))
23 PF_EXT_MAN_ALL_MATCHES:=$(foreach T,$(PF_EXT_ALL_SLIB),$(shell test -f extensions/libipt_$(T).man && grep -q register_match extensions/libipt_$(T).c && echo $(T)))
24 PF_EXT_MAN_ALL_TARGETS:=$(foreach T,$(PF_EXT_ALL_SLIB),$(shell test -f extensions/libipt_$(T).man && grep -q register_target extensions/libipt_$(T).c && echo $(T)))
25 PF6_EXT_MAN_ALL_MATCHES:=$(foreach T,$(PF6_EXT_ALL_SLIB),$(shell test -f extensions/libip6t_$(T).man && grep -q register_match6 extensions/libip6t_$(T).c && echo $(T)))
26 PF6_EXT_MAN_ALL_TARGETS:=$(foreach T,$(PF6_EXT_ALL_SLIB),$(shell test -f extensions/libip6t_$(T).man && grep -q register_target6 extensions/libip6t_$(T).c && echo $(T)))
28 PF_EXT_MAN_MATCHES:=$(filter $(PF_EXT_ALL_SLIB), $(PF_EXT_MAN_ALL_MATCHES))
29 PF_EXT_MAN_TARGETS:=$(filter $(PF_EXT_ALL_SLIB), $(PF_EXT_MAN_ALL_TARGETS))
30 PF_EXT_MAN_EXTRA_MATCHES:=$(filter-out $(PF_EXT_MAN_MATCHES), $(PF_EXT_MAN_ALL_MATCHES))
31 PF_EXT_MAN_EXTRA_TARGETS:=$(filter-out $(PF_EXT_MAN_TARGETS), $(PF_EXT_MAN_ALL_TARGETS))
32 PF6_EXT_MAN_MATCHES:=$(filter $(PF6_EXT_ALL_SLIB), $(PF6_EXT_MAN_ALL_MATCHES))
33 PF6_EXT_MAN_TARGETS:=$(filter $(PF6_EXT_ALL_SLIB), $(PF6_EXT_MAN_ALL_TARGETS))
34 PF6_EXT_MAN_EXTRA_MATCHES:=$(filter-out $(PF6_EXT_MAN_MATCHES), $(PF6_EXT_MAN_ALL_MATCHES))
35 PF6_EXT_MAN_EXTRA_TARGETS:=$(filter-out $(PF6_EXT_MAN_TARGETS), $(PF6_EXT_MAN_ALL_TARGETS))
38 allman:
39 @echo ALL_SLIB: $(PF_EXT_ALL_SLIB)
40 @echo ALL_MATCH: $(PF_EXT_MAN_ALL_MATCHES)
41 @echo ALL_TARGET: $(PF_EXT_MAN_ALL_TARGETS)
43 PF_EXT_SLIB+=$(PF_EXT_SLIB_OPTS)
44 PF6_EXT_SLIB+=$(PF6_EXT_SLIB_OPTS)
46 OPTIONALS+=$(patsubst %,IPv4:%,$(PF_EXT_SLIB_OPTS))
47 OPTIONALS+=$(patsubst %,IPv6:%,$(PF6_EXT_SLIB_OPTS))
49 ifndef NO_SHARED_LIBS
50 SHARED_LIBS+=$(foreach T,$(PF_EXT_SLIB),extensions/libipt_$(T).so)
51 SHARED_SE_LIBS+=$(foreach T,$(PF_EXT_SE_SLIB),extensions/libipt_$(T).so)
52 EXTRA_INSTALLS+=$(foreach T, $(PF_EXT_SLIB), $(DESTDIR)$(LIBDIR)/iptables/libipt_$(T).so)
53 EXTRA_INSTALLS+=$(foreach T, $(PF_EXT_SE_SLIB), $(DESTDIR)$(LIBDIR)/iptables/libipt_$(T).so)
55 ifeq ($(DO_IPV6), 1)
56 SHARED_LIBS+=$(foreach T,$(PF6_EXT_SLIB),extensions/libip6t_$(T).so)
57 SHARED_SE_LIBS+=$(foreach T,$(PF6_EXT_SE_SLIB),extensions/libip6t_$(T).so)
58 EXTRA_INSTALLS+=$(foreach T, $(PF6_EXT_SLIB), $(DESTDIR)$(LIBDIR)/iptables/libip6t_$(T).so)
59 EXTRA_INSTALLS+=$(foreach T, $(PF6_EXT_SE_SLIB), $(DESTDIR)$(LIBDIR)/iptables/libip6t_$(T).so)
60 endif
61 else # NO_SHARED_LIBS
62 EXT_OBJS+=$(foreach T,$(PF_EXT_SLIB),extensions/libipt_$(T).o)
63 EXT_OBJS+=$(foreach T,$(PF_EXT_SE_SLIB),extensions/libipt_$(T).o)
64 EXT_FUNC+=$(foreach T,$(PF_EXT_SLIB),ipt_$(T))
65 EXT_FUNC+=$(foreach T,$(PF_EXT_SE_SLIB),ipt_$(T))
66 EXT_OBJS+= extensions/initext.o
67 ifeq ($(DO_IPV6), 1)
68 EXT6_OBJS+=$(foreach T,$(PF6_EXT_SLIB),extensions/libip6t_$(T).o)
69 EXT6_OBJS+=$(foreach T,$(PF6_EXT_SE_SLIB),extensions/libip6t_$(T).o)
70 EXT6_FUNC+=$(foreach T,$(PF6_EXT_SLIB),ip6t_$(T))
71 EXT6_FUNC+=$(foreach T,$(PF6_EXT_SE_SLIB),ip6t_$(T))
72 EXT6_OBJS+= extensions/initext6.o
73 endif # DO_IPV6
74 endif # NO_SHARED_LIBS
76 ifndef TOPLEVEL_INCLUDED
77 local:
78 cd .. && $(MAKE) $(SHARED_LIBS) $(SHARED_SE_LIBS)
79 endif
81 ifdef NO_SHARED_LIBS
82 extensions/libext.a: $(EXT_OBJS)
83 rm -f $@; ar crv $@ $(EXT_OBJS)
85 extensions/libext6.a: $(EXT6_OBJS)
86 rm -f $@; ar crv $@ $(EXT6_OBJS)
88 extensions/initext.o: extensions/initext.c
89 extensions/initext6.o: extensions/initext6.c
91 extensions/initext.c: extensions/Makefile
92 echo "" > $@
93 for i in $(EXT_FUNC); do \
94 echo "extern void $${i}_init(void);" >> $@; \
95 done
96 echo "void init_extensions(void) {" >> $@
97 for i in $(EXT_FUNC); do \
98 echo " $${i}_init();" >> $@; \
99 done
100 echo "}" >> $@
102 extensions/initext6.c: extensions/Makefile
103 echo "" > $@
104 for i in $(EXT6_FUNC); do \
105 echo "extern void $${i}_init(void);" >> $@; \
106 done
107 echo "void init_extensions(void) {" >> $@
108 for i in $(EXT6_FUNC); do \
109 echo " $${i}_init();" >> $@; \
110 done
111 echo "}" >> $@
113 extensions/lib%.o: extensions/lib%.c
114 $(CC) $(CFLAGS) -D_INIT=$*_init -c -o $@ $<
116 endif
118 EXTRAS += extensions/libipt_targets.man
119 extensions/libipt_targets.man: $(patsubst %,extensions/libipt_%.man,$(PF_EXT_MAN_ALL_TARGETS))
120 @for ext in $(PF_EXT_MAN_TARGETS); do \
121 echo ".SS $$ext" ;\
122 cat extensions/libipt_$$ext.man ;\
123 done >extensions/libipt_targets.man
124 @if [ -n "$(PF_EXT_MAN_EXTRA_TARGETS)" ]; then \
125 extra=$(PF_EXT_MAN_EXTRA_TARGETS) ;\
126 for ext in $${extra:-""}; do \
127 echo ".SS $$ext (not supported, see Patch-O-Matic)" ;\
128 cat extensions/libipt_$$ext.man ;\
129 done ;\
130 fi >>extensions/libipt_targets.man
132 EXTRAS += extensions/libipt_matches.man
133 extensions/libipt_matches.man: $(patsubst %,extensions/libipt_%.man,$(PF_EXT_MAN_ALL_MATCHES))
134 @for ext in $(PF_EXT_MAN_MATCHES); do \
135 echo ".SS $$ext" ;\
136 cat extensions/libipt_$$ext.man ;\
137 done >extensions/libipt_matches.man
138 @if [ -n "$(PF_EXT_MAN_EXTRA_MATCHES)" ]; then \
139 extra=$(PF_EXT_MAN_EXTRA_MATCHES) ;\
140 for ext in $${extra:-""}; do \
141 echo ".SS $$ext (not supported, see Patch-O-Matic)" ;\
142 cat extensions/libipt_$$ext.man ;\
143 done ;\
144 fi >>extensions/libipt_matches.man
146 EXTRAS += extensions/libip6t_targets.man
147 extensions/libip6t_targets.man: $(patsubst %, extensions/libip6t_%.man, $(PF6_EXT_MAN_ALL_TARGETS))
148 @for ext in $(PF6_EXT_MAN_TARGETS); do \
149 echo ".SS $$ext" ;\
150 cat extensions/libip6t_$$ext.man ;\
151 done >extensions/libip6t_targets.man
152 @if [ -n "$(PF6_EXT_MAN_EXTRA_TARGETS)" ]; then \
153 extra=$(PF6_EXT_MAN_EXTRA_TARGETS) ;\
154 for ext in $${extra:-""}; do \
155 echo ".SS $$ext (not supported, see Patch-O-Matic)" ;\
156 cat extensions/libip6t_$$ext.man ;\
157 done ;\
158 fi >>extensions/libip6t_targets.man
160 EXTRAS += extensions/libip6t_matches.man
161 extensions/libip6t_matches.man: $(patsubst %, extensions/libip6t_%.man, $(PF6_EXT_MAN_ALL_MATCHES))
162 @for ext in $(PF6_EXT_MAN_MATCHES); do \
163 echo ".SS $$ext" ;\
164 cat extensions/libip6t_$$ext.man ;\
165 done >extensions/libip6t_matches.man
166 @if [ -n "$(PF6_EXT_MAN_EXTRA_MATCHES)" ]; then \
167 extra=$(PF6_EXT_MAN_EXTRA_MATCHES) ;\
168 for ext in $${extra:-""}; do \
169 echo ".SS $$ext (not supported, see Patch-O-Matic)" ;\
170 cat extensions/libip6t_$$ext.man ;\
171 done ;\
172 fi >>extensions/libip6t_matches.man
174 $(DESTDIR)$(LIBDIR)/iptables/libipt_%.so: extensions/libipt_%.so
175 @[ -d $(DESTDIR)$(LIBDIR)/iptables ] || mkdir -p $(DESTDIR)$(LIBDIR)/iptables
176 cp $< $@
178 $(DESTDIR)$(LIBDIR)/iptables/libip6t_%.so: extensions/libip6t_%.so
179 @[ -d $(DESTDIR)$(LIBDIR)/iptables ] || mkdir -p $(DESTDIR)$(LIBDIR)/iptables
180 cp $< $@