Updates to Tomato RAF including NGINX && PHP
[tomato.git] / release / src / router / iptables / extensions / Makefile
blobc6896d8370a65607f7a56e22a120cab10cb9860d
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 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
12 PF_EXT_SLIB:=CLASSIFY CONNMARK DNAT DSCP LOG MARK MASQUERADE REDIRECT REJECT
13 PF_EXT_SLIB+=ROUTE SNAT TCPMSS TOS TRIGGER TTL NETMAP
14 PF_EXT_SLIB+=condition connlimit connmark geoip icmp iprange layer7
15 PF_EXT_SLIB+=length limit mac mark multiport recent standard state quota
16 PF_EXT_SLIB+=tcp tcpmss time tos u32 udp web dscp connbytes webmon string
17 PF_EXT_SLIB+=IMQ ipp2p
18 ifeq ($(CONFIG_LINUX26),y)
19 PF_EXT_SLIB+=hashlimit NFQUEUE NOTRACK
20 endif
21 PF_EXT_SLIB+=account
23 ifeq ($(DO_IPV6), 1)
24 PF6_EXT_SLIB:=connmark icmp6 length limit mac mark multiport standard state rt hl web
25 PF6_EXT_SLIB+=tcp udp CONNMARK LOG MARK IMQ TCPMSS REJECT
26 ifeq ($(CONFIG_LINUX26),y)
27 PF6_EXT_SLIB+=connlimit hashlimit recent NFQUEUE ROUTE HL connbytes iprange webmon dscp
28 endif
29 endif
31 ifeq ($(DO_SELINUX), 1)
32 PF_EXT_SE_SLIB:=SECMARK CONNSECMARK
33 PF6_EXT_SE_SLIB:=SECMARK CONNSECMARK
34 endif
36 # Optionals
37 #PF_EXT_SLIB_OPTS:=$(foreach T,$(wildcard extensions/.*-test),$(shell KERNEL_DIR=$(KERNEL_DIR) $(T)))
38 #PF6_EXT_SLIB_OPTS:=$(foreach T,$(wildcard extensions/.*-test6),$(shell KERNEL_DIR=$(KERNEL_DIR) $(T)))
40 PF_EXT_ALL_SLIB:=$(patsubst extensions/libipt_%.c, %, $(wildcard extensions/libipt_*.c))
41 PF6_EXT_ALL_SLIB:=$(patsubst extensions/libip6t_%.c, %, $(wildcard extensions/libip6t_*.c))
43 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)))
44 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)))
45 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)))
46 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)))
48 PF_EXT_MAN_MATCHES:=$(filter $(PF_EXT_ALL_SLIB), $(PF_EXT_MAN_ALL_MATCHES))
49 PF_EXT_MAN_TARGETS:=$(filter $(PF_EXT_ALL_SLIB), $(PF_EXT_MAN_ALL_TARGETS))
50 PF_EXT_MAN_EXTRA_MATCHES:=$(filter-out $(PF_EXT_MAN_MATCHES), $(PF_EXT_MAN_ALL_MATCHES))
51 PF_EXT_MAN_EXTRA_TARGETS:=$(filter-out $(PF_EXT_MAN_TARGETS), $(PF_EXT_MAN_ALL_TARGETS))
52 PF6_EXT_MAN_MATCHES:=$(filter $(PF6_EXT_ALL_SLIB), $(PF6_EXT_MAN_ALL_MATCHES))
53 PF6_EXT_MAN_TARGETS:=$(filter $(PF6_EXT_ALL_SLIB), $(PF6_EXT_MAN_ALL_TARGETS))
54 PF6_EXT_MAN_EXTRA_MATCHES:=$(filter-out $(PF6_EXT_MAN_MATCHES), $(PF6_EXT_MAN_ALL_MATCHES))
55 PF6_EXT_MAN_EXTRA_TARGETS:=$(filter-out $(PF6_EXT_MAN_TARGETS), $(PF6_EXT_MAN_ALL_TARGETS))
58 allman:
59 @echo ALL_SLIB: $(PF_EXT_ALL_SLIB)
60 @echo ALL_MATCH: $(PF_EXT_MAN_ALL_MATCHES)
61 @echo ALL_TARGET: $(PF_EXT_MAN_ALL_TARGETS)
63 PF_EXT_SLIB+=$(PF_EXT_SLIB_OPTS)
64 PF6_EXT_SLIB+=$(PF6_EXT_SLIB_OPTS)
66 OPTIONALS+=$(patsubst %,IPv4:%,$(PF_EXT_SLIB_OPTS))
68 ifndef NO_SHARED_LIBS
69 SHARED_LIBS+=$(foreach T,$(PF_EXT_SLIB),extensions/libipt_$(T).so)
70 SHARED_SE_LIBS+=$(foreach T,$(PF_EXT_SE_SLIB),extensions/libipt_$(T).so)
71 EXTRA_INSTALLS+=$(foreach T, $(PF_EXT_SLIB), $(DESTDIR)$(LIBDIR)/iptables/libipt_$(T).so)
72 EXTRA_INSTALLS+=$(foreach T, $(PF_EXT_SE_SLIB), $(DESTDIR)$(LIBDIR)/iptables/libipt_$(T).so)
74 ifeq ($(DO_IPV6), 1)
75 OPTIONALS+=$(patsubst %,IPv6:%,$(PF6_EXT_SLIB_OPTS))
76 SHARED_LIBS+=$(foreach T,$(PF6_EXT_SLIB),extensions/libip6t_$(T).so)
77 SHARED_SE_LIBS+=$(foreach T,$(PF6_EXT_SE_SLIB),extensions/libip6t_$(T).so)
78 EXTRA_INSTALLS+=$(foreach T, $(PF6_EXT_SLIB), $(DESTDIR)$(LIBDIR)/iptables/libip6t_$(T).so)
79 EXTRA_INSTALLS+=$(foreach T, $(PF6_EXT_SE_SLIB), $(DESTDIR)$(LIBDIR)/iptables/libip6t_$(T).so)
80 endif
81 else # NO_SHARED_LIBS
82 EXT_OBJS+=$(foreach T,$(PF_EXT_SLIB),extensions/libipt_$(T).o)
83 EXT_OBJS+=$(foreach T,$(PF_EXT_SE_SLIB),extensions/libipt_$(T).o)
84 EXT_FUNC+=$(foreach T,$(PF_EXT_SLIB),ipt_$(T))
85 EXT_FUNC+=$(foreach T,$(PF_EXT_SE_SLIB),ipt_$(T))
86 EXT_OBJS+= extensions/initext.o
87 ifeq ($(DO_IPV6), 1)
88 EXT6_OBJS+=$(foreach T,$(PF6_EXT_SLIB),extensions/libip6t_$(T).o)
89 EXT6_OBJS+=$(foreach T,$(PF6_EXT_SE_SLIB),extensions/libip6t_$(T).o)
90 EXT6_FUNC+=$(foreach T,$(PF6_EXT_SLIB),ip6t_$(T))
91 EXT6_FUNC+=$(foreach T,$(PF6_EXT_SE_SLIB),ip6t_$(T))
92 EXT6_OBJS+= extensions/initext6.o
93 endif # DO_IPV6
94 endif # NO_SHARED_LIBS
96 ifndef TOPLEVEL_INCLUDED
97 local:
98 cd .. && $(MAKE) $(SHARED_LIBS) $(SHARED_SE_LIBS)
99 endif
101 ifdef NO_SHARED_LIBS
102 extensions/libext.a: $(EXT_OBJS)
103 rm -f $@; ar crv $@ $(EXT_OBJS)
105 extensions/libext6.a: $(EXT6_OBJS)
106 rm -f $@; ar crv $@ $(EXT6_OBJS)
108 extensions/initext.o: extensions/initext.c
109 extensions/initext6.o: extensions/initext6.c
111 extensions/initext.c: extensions/Makefile
112 echo "" > $@
113 for i in $(EXT_FUNC); do \
114 echo "extern void $${i}_init(void);" >> $@; \
115 done
116 echo "void init_extensions(void) {" >> $@
117 for i in $(EXT_FUNC); do \
118 echo " $${i}_init();" >> $@; \
119 done
120 echo "}" >> $@
122 extensions/initext6.c: extensions/Makefile
123 echo "" > $@
124 for i in $(EXT6_FUNC); do \
125 echo "extern void $${i}_init(void);" >> $@; \
126 done
127 echo "void init_extensions(void) {" >> $@
128 for i in $(EXT6_FUNC); do \
129 echo " $${i}_init();" >> $@; \
130 done
131 echo "}" >> $@
133 extensions/lib%.o: extensions/lib%.c
134 $(CC) $(CFLAGS) -D_INIT=$*_init -c -o $@ $<
136 endif
138 EXTRAS += extensions/libipt_targets.man
139 extensions/libipt_targets.man: $(patsubst %,extensions/libipt_%.man,$(PF_EXT_MAN_ALL_TARGETS))
140 @for ext in $(PF_EXT_MAN_TARGETS); do \
141 echo ".SS $$ext" ;\
142 cat extensions/libipt_$$ext.man ;\
143 done >extensions/libipt_targets.man
144 @if [ -n "$(PF_EXT_MAN_EXTRA_TARGETS)" ]; then \
145 extra=$(PF_EXT_MAN_EXTRA_TARGETS) ;\
146 for ext in $${extra:-""}; do \
147 echo ".SS $$ext (not supported, see Patch-O-Matic)" ;\
148 cat extensions/libipt_$$ext.man ;\
149 done ;\
150 fi >>extensions/libipt_targets.man
152 EXTRAS += extensions/libipt_matches.man
153 extensions/libipt_matches.man: $(patsubst %,extensions/libipt_%.man,$(PF_EXT_MAN_ALL_MATCHES))
154 @for ext in $(PF_EXT_MAN_MATCHES); do \
155 echo ".SS $$ext" ;\
156 cat extensions/libipt_$$ext.man ;\
157 done >extensions/libipt_matches.man
158 @if [ -n "$(PF_EXT_MAN_EXTRA_MATCHES)" ]; then \
159 extra=$(PF_EXT_MAN_EXTRA_MATCHES) ;\
160 for ext in $${extra:-""}; do \
161 echo ".SS $$ext (not supported, see Patch-O-Matic)" ;\
162 cat extensions/libipt_$$ext.man ;\
163 done ;\
164 fi >>extensions/libipt_matches.man
166 EXTRAS += extensions/libip6t_targets.man
167 extensions/libip6t_targets.man: $(patsubst %, extensions/libip6t_%.man, $(PF6_EXT_MAN_ALL_TARGETS))
168 @for ext in $(PF6_EXT_MAN_TARGETS); do \
169 echo ".SS $$ext" ;\
170 cat extensions/libip6t_$$ext.man ;\
171 done >extensions/libip6t_targets.man
172 @if [ -n "$(PF6_EXT_MAN_EXTRA_TARGETS)" ]; then \
173 extra=$(PF6_EXT_MAN_EXTRA_TARGETS) ;\
174 for ext in $${extra:-""}; do \
175 echo ".SS $$ext (not supported, see Patch-O-Matic)" ;\
176 cat extensions/libip6t_$$ext.man ;\
177 done ;\
178 fi >>extensions/libip6t_targets.man
180 EXTRAS += extensions/libip6t_matches.man
181 extensions/libip6t_matches.man: $(patsubst %, extensions/libip6t_%.man, $(PF6_EXT_MAN_ALL_MATCHES))
182 @for ext in $(PF6_EXT_MAN_MATCHES); do \
183 echo ".SS $$ext" ;\
184 cat extensions/libip6t_$$ext.man ;\
185 done >extensions/libip6t_matches.man
186 @if [ -n "$(PF6_EXT_MAN_EXTRA_MATCHES)" ]; then \
187 extra=$(PF6_EXT_MAN_EXTRA_MATCHES) ;\
188 for ext in $${extra:-""}; do \
189 echo ".SS $$ext (not supported, see Patch-O-Matic)" ;\
190 cat extensions/libip6t_$$ext.man ;\
191 done ;\
192 fi >>extensions/libip6t_matches.man
194 $(DESTDIR)$(LIBDIR)/iptables/libipt_%.so: extensions/libipt_%.so
195 @[ -d $(DESTDIR)$(LIBDIR)/iptables ] || mkdir -p $(DESTDIR)$(LIBDIR)/iptables
196 cp $< $@
198 $(DESTDIR)$(LIBDIR)/iptables/libip6t_%.so: extensions/libip6t_%.so
199 @[ -d $(DESTDIR)$(LIBDIR)/iptables ] || mkdir -p $(DESTDIR)$(LIBDIR)/iptables
200 cp $< $@