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
17 PF_EXT_SLIB
+=IMQ ipp2p
18 ifeq ($(CONFIG_LINUX26
),y
)
20 PF_EXT_SLIB
+=hashlimit NFQUEUE NOTRACK
26 PF6_EXT_SLIB
:=connmark icmp6 length limit mac mark multiport standard state rt hl web
27 PF6_EXT_SLIB
+=tcp udp CONNMARK LOG MARK IMQ TCPMSS REJECT
28 ifeq ($(CONFIG_LINUX26
),y
)
29 PF6_EXT_SLIB
+=connlimit hashlimit recent NFQUEUE ROUTE HL connbytes iprange webmon dscp
33 ifeq ($(DO_SELINUX
), 1)
34 PF_EXT_SE_SLIB
:=SECMARK CONNSECMARK
35 PF6_EXT_SE_SLIB
:=SECMARK CONNSECMARK
39 #PF_EXT_SLIB_OPTS:=$(foreach T,$(wildcard extensions/.*-test),$(shell KERNEL_DIR=$(KERNEL_DIR) $(T)))
40 #PF6_EXT_SLIB_OPTS:=$(foreach T,$(wildcard extensions/.*-test6),$(shell KERNEL_DIR=$(KERNEL_DIR) $(T)))
42 PF_EXT_ALL_SLIB
:=$(patsubst extensions
/libipt_
%.c
, %, $(wildcard extensions
/libipt_
*.c
))
43 PF6_EXT_ALL_SLIB
:=$(patsubst extensions
/libip6t_
%.c
, %, $(wildcard extensions
/libip6t_
*.c
))
45 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
)))
46 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
)))
47 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
)))
48 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
)))
50 PF_EXT_MAN_MATCHES
:=$(filter $(PF_EXT_ALL_SLIB
), $(PF_EXT_MAN_ALL_MATCHES
))
51 PF_EXT_MAN_TARGETS
:=$(filter $(PF_EXT_ALL_SLIB
), $(PF_EXT_MAN_ALL_TARGETS
))
52 PF_EXT_MAN_EXTRA_MATCHES
:=$(filter-out $(PF_EXT_MAN_MATCHES
), $(PF_EXT_MAN_ALL_MATCHES
))
53 PF_EXT_MAN_EXTRA_TARGETS
:=$(filter-out $(PF_EXT_MAN_TARGETS
), $(PF_EXT_MAN_ALL_TARGETS
))
54 PF6_EXT_MAN_MATCHES
:=$(filter $(PF6_EXT_ALL_SLIB
), $(PF6_EXT_MAN_ALL_MATCHES
))
55 PF6_EXT_MAN_TARGETS
:=$(filter $(PF6_EXT_ALL_SLIB
), $(PF6_EXT_MAN_ALL_TARGETS
))
56 PF6_EXT_MAN_EXTRA_MATCHES
:=$(filter-out $(PF6_EXT_MAN_MATCHES
), $(PF6_EXT_MAN_ALL_MATCHES
))
57 PF6_EXT_MAN_EXTRA_TARGETS
:=$(filter-out $(PF6_EXT_MAN_TARGETS
), $(PF6_EXT_MAN_ALL_TARGETS
))
61 @echo ALL_SLIB
: $(PF_EXT_ALL_SLIB
)
62 @echo ALL_MATCH
: $(PF_EXT_MAN_ALL_MATCHES
)
63 @echo ALL_TARGET
: $(PF_EXT_MAN_ALL_TARGETS
)
65 PF_EXT_SLIB
+=$(PF_EXT_SLIB_OPTS
)
66 PF6_EXT_SLIB
+=$(PF6_EXT_SLIB_OPTS
)
68 OPTIONALS
+=$(patsubst %,IPv4
:%,$(PF_EXT_SLIB_OPTS
))
71 SHARED_LIBS
+=$(foreach T
,$(PF_EXT_SLIB
),extensions
/libipt_
$(T
).so
)
72 SHARED_SE_LIBS
+=$(foreach T
,$(PF_EXT_SE_SLIB
),extensions
/libipt_
$(T
).so
)
73 EXTRA_INSTALLS
+=$(foreach T
, $(PF_EXT_SLIB
), $(DESTDIR
)$(LIBDIR
)/iptables
/libipt_
$(T
).so
)
74 EXTRA_INSTALLS
+=$(foreach T
, $(PF_EXT_SE_SLIB
), $(DESTDIR
)$(LIBDIR
)/iptables
/libipt_
$(T
).so
)
77 OPTIONALS
+=$(patsubst %,IPv6
:%,$(PF6_EXT_SLIB_OPTS
))
78 SHARED_LIBS
+=$(foreach T
,$(PF6_EXT_SLIB
),extensions
/libip6t_
$(T
).so
)
79 SHARED_SE_LIBS
+=$(foreach T
,$(PF6_EXT_SE_SLIB
),extensions
/libip6t_
$(T
).so
)
80 EXTRA_INSTALLS
+=$(foreach T
, $(PF6_EXT_SLIB
), $(DESTDIR
)$(LIBDIR
)/iptables
/libip6t_
$(T
).so
)
81 EXTRA_INSTALLS
+=$(foreach T
, $(PF6_EXT_SE_SLIB
), $(DESTDIR
)$(LIBDIR
)/iptables
/libip6t_
$(T
).so
)
84 EXT_OBJS
+=$(foreach T
,$(PF_EXT_SLIB
),extensions
/libipt_
$(T
).o
)
85 EXT_OBJS
+=$(foreach T
,$(PF_EXT_SE_SLIB
),extensions
/libipt_
$(T
).o
)
86 EXT_FUNC
+=$(foreach T
,$(PF_EXT_SLIB
),ipt_
$(T
))
87 EXT_FUNC
+=$(foreach T
,$(PF_EXT_SE_SLIB
),ipt_
$(T
))
88 EXT_OBJS
+= extensions
/initext.o
90 EXT6_OBJS
+=$(foreach T
,$(PF6_EXT_SLIB
),extensions
/libip6t_
$(T
).o
)
91 EXT6_OBJS
+=$(foreach T
,$(PF6_EXT_SE_SLIB
),extensions
/libip6t_
$(T
).o
)
92 EXT6_FUNC
+=$(foreach T
,$(PF6_EXT_SLIB
),ip6t_
$(T
))
93 EXT6_FUNC
+=$(foreach T
,$(PF6_EXT_SE_SLIB
),ip6t_
$(T
))
94 EXT6_OBJS
+= extensions
/initext6.o
96 endif # NO_SHARED_LIBS
98 ifndef TOPLEVEL_INCLUDED
100 cd ..
&& $(MAKE
) $(SHARED_LIBS
) $(SHARED_SE_LIBS
)
104 extensions
/libext.a
: $(EXT_OBJS
)
105 rm -f
$@
; ar crv
$@
$(EXT_OBJS
)
107 extensions
/libext6.a
: $(EXT6_OBJS
)
108 rm -f
$@
; ar crv
$@
$(EXT6_OBJS
)
110 extensions
/initext.o
: extensions
/initext.c
111 extensions
/initext6.o
: extensions
/initext6.c
113 extensions
/initext.c
: extensions
/Makefile
115 for i in
$(EXT_FUNC
); do \
116 echo
"extern void $${i}_init(void);" >> $@
; \
118 echo
"void init_extensions(void) {" >> $@
119 for i in
$(EXT_FUNC
); do \
120 echo
" $${i}_init();" >> $@
; \
124 extensions
/initext6.c
: extensions
/Makefile
126 for i in
$(EXT6_FUNC
); do \
127 echo
"extern void $${i}_init(void);" >> $@
; \
129 echo
"void init_extensions(void) {" >> $@
130 for i in
$(EXT6_FUNC
); do \
131 echo
" $${i}_init();" >> $@
; \
135 extensions
/lib
%.o
: extensions
/lib
%.c
136 $(CC
) $(CFLAGS
) -D_INIT
=$*_init
-c
-o
$@
$<
140 EXTRAS
+= extensions
/libipt_targets.man
141 extensions
/libipt_targets.man
: $(patsubst %,extensions
/libipt_
%.man
,$(PF_EXT_MAN_ALL_TARGETS
))
142 @for ext in
$(PF_EXT_MAN_TARGETS
); do \
144 cat extensions
/libipt_
$$ext.man
;\
145 done
>extensions
/libipt_targets.man
146 @if
[ -n
"$(PF_EXT_MAN_EXTRA_TARGETS)" ]; then \
147 extra
=$(PF_EXT_MAN_EXTRA_TARGETS
) ;\
148 for ext in
$${extra
:-""}; do \
149 echo
".SS $$ext (not supported, see Patch-O-Matic)" ;\
150 cat extensions
/libipt_
$$ext.man
;\
152 fi
>>extensions
/libipt_targets.man
154 EXTRAS
+= extensions
/libipt_matches.man
155 extensions
/libipt_matches.man
: $(patsubst %,extensions
/libipt_
%.man
,$(PF_EXT_MAN_ALL_MATCHES
))
156 @for ext in
$(PF_EXT_MAN_MATCHES
); do \
158 cat extensions
/libipt_
$$ext.man
;\
159 done
>extensions
/libipt_matches.man
160 @if
[ -n
"$(PF_EXT_MAN_EXTRA_MATCHES)" ]; then \
161 extra
=$(PF_EXT_MAN_EXTRA_MATCHES
) ;\
162 for ext in
$${extra
:-""}; do \
163 echo
".SS $$ext (not supported, see Patch-O-Matic)" ;\
164 cat extensions
/libipt_
$$ext.man
;\
166 fi
>>extensions
/libipt_matches.man
168 EXTRAS
+= extensions
/libip6t_targets.man
169 extensions
/libip6t_targets.man
: $(patsubst %, extensions
/libip6t_
%.man
, $(PF6_EXT_MAN_ALL_TARGETS
))
170 @for ext in
$(PF6_EXT_MAN_TARGETS
); do \
172 cat extensions
/libip6t_
$$ext.man
;\
173 done
>extensions
/libip6t_targets.man
174 @if
[ -n
"$(PF6_EXT_MAN_EXTRA_TARGETS)" ]; then \
175 extra
=$(PF6_EXT_MAN_EXTRA_TARGETS
) ;\
176 for ext in
$${extra
:-""}; do \
177 echo
".SS $$ext (not supported, see Patch-O-Matic)" ;\
178 cat extensions
/libip6t_
$$ext.man
;\
180 fi
>>extensions
/libip6t_targets.man
182 EXTRAS
+= extensions
/libip6t_matches.man
183 extensions
/libip6t_matches.man
: $(patsubst %, extensions
/libip6t_
%.man
, $(PF6_EXT_MAN_ALL_MATCHES
))
184 @for ext in
$(PF6_EXT_MAN_MATCHES
); do \
186 cat extensions
/libip6t_
$$ext.man
;\
187 done
>extensions
/libip6t_matches.man
188 @if
[ -n
"$(PF6_EXT_MAN_EXTRA_MATCHES)" ]; then \
189 extra
=$(PF6_EXT_MAN_EXTRA_MATCHES
) ;\
190 for ext in
$${extra
:-""}; do \
191 echo
".SS $$ext (not supported, see Patch-O-Matic)" ;\
192 cat extensions
/libip6t_
$$ext.man
;\
194 fi
>>extensions
/libip6t_matches.man
196 $(DESTDIR
)$(LIBDIR
)/iptables
/libipt_
%.so
: extensions
/libipt_
%.so
197 @
[ -d
$(DESTDIR
)$(LIBDIR
)/iptables
] || mkdir
-p
$(DESTDIR
)$(LIBDIR
)/iptables
200 $(DESTDIR
)$(LIBDIR
)/iptables
/libip6t_
%.so
: extensions
/libip6t_
%.so
201 @
[ -d
$(DESTDIR
)$(LIBDIR
)/iptables
] || mkdir
-p
$(DESTDIR
)$(LIBDIR
)/iptables