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
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
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
31 ifeq ($(DO_SELINUX
), 1)
32 PF_EXT_SE_SLIB
:=SECMARK CONNSECMARK
33 PF6_EXT_SE_SLIB
:=SECMARK CONNSECMARK
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
))
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
))
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
)
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
)
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
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
94 endif # NO_SHARED_LIBS
96 ifndef TOPLEVEL_INCLUDED
98 cd ..
&& $(MAKE
) $(SHARED_LIBS
) $(SHARED_SE_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
113 for i in
$(EXT_FUNC
); do \
114 echo
"extern void $${i}_init(void);" >> $@
; \
116 echo
"void init_extensions(void) {" >> $@
117 for i in
$(EXT_FUNC
); do \
118 echo
" $${i}_init();" >> $@
; \
122 extensions
/initext6.c
: extensions
/Makefile
124 for i in
$(EXT6_FUNC
); do \
125 echo
"extern void $${i}_init(void);" >> $@
; \
127 echo
"void init_extensions(void) {" >> $@
128 for i in
$(EXT6_FUNC
); do \
129 echo
" $${i}_init();" >> $@
; \
133 extensions
/lib
%.o
: extensions
/lib
%.c
134 $(CC
) $(CFLAGS
) -D_INIT
=$*_init
-c
-o
$@
$<
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 \
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
;\
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 \
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
;\
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 \
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
;\
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 \
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
;\
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
198 $(DESTDIR
)$(LIBDIR
)/iptables
/libip6t_
%.so
: extensions
/libip6t_
%.so
199 @
[ -d
$(DESTDIR
)$(LIBDIR
)/iptables
] || mkdir
-p
$(DESTDIR
)$(LIBDIR
)/iptables