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
)
20 PF_EXT_SLIB
+=hashlimit NFQUEUE NOTRACK
27 PF6_EXT_SLIB
:=connmark icmp6 length limit mac mark multiport standard state rt hl web string
28 PF6_EXT_SLIB
+=tcp udp CONNMARK LOG MARK IMQ TCPMSS REJECT
29 ifeq ($(CONFIG_LINUX26
),y
)
30 PF6_EXT_SLIB
+=connlimit hashlimit recent NFQUEUE ROUTE HL connbytes iprange webmon dscp
34 ifeq ($(DO_SELINUX
), 1)
35 PF_EXT_SE_SLIB
:=SECMARK CONNSECMARK
36 PF6_EXT_SE_SLIB
:=SECMARK CONNSECMARK
40 #PF_EXT_SLIB_OPTS:=$(foreach T,$(wildcard extensions/.*-test),$(shell KERNEL_DIR=$(KERNEL_DIR) $(T)))
41 #PF6_EXT_SLIB_OPTS:=$(foreach T,$(wildcard extensions/.*-test6),$(shell KERNEL_DIR=$(KERNEL_DIR) $(T)))
43 PF_EXT_ALL_SLIB
:=$(patsubst extensions
/libipt_
%.c
, %, $(wildcard extensions
/libipt_
*.c
))
44 PF6_EXT_ALL_SLIB
:=$(patsubst extensions
/libip6t_
%.c
, %, $(wildcard extensions
/libip6t_
*.c
))
46 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
)))
47 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
)))
48 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
)))
49 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
)))
51 PF_EXT_MAN_MATCHES
:=$(filter $(PF_EXT_ALL_SLIB
), $(PF_EXT_MAN_ALL_MATCHES
))
52 PF_EXT_MAN_TARGETS
:=$(filter $(PF_EXT_ALL_SLIB
), $(PF_EXT_MAN_ALL_TARGETS
))
53 PF_EXT_MAN_EXTRA_MATCHES
:=$(filter-out $(PF_EXT_MAN_MATCHES
), $(PF_EXT_MAN_ALL_MATCHES
))
54 PF_EXT_MAN_EXTRA_TARGETS
:=$(filter-out $(PF_EXT_MAN_TARGETS
), $(PF_EXT_MAN_ALL_TARGETS
))
55 PF6_EXT_MAN_MATCHES
:=$(filter $(PF6_EXT_ALL_SLIB
), $(PF6_EXT_MAN_ALL_MATCHES
))
56 PF6_EXT_MAN_TARGETS
:=$(filter $(PF6_EXT_ALL_SLIB
), $(PF6_EXT_MAN_ALL_TARGETS
))
57 PF6_EXT_MAN_EXTRA_MATCHES
:=$(filter-out $(PF6_EXT_MAN_MATCHES
), $(PF6_EXT_MAN_ALL_MATCHES
))
58 PF6_EXT_MAN_EXTRA_TARGETS
:=$(filter-out $(PF6_EXT_MAN_TARGETS
), $(PF6_EXT_MAN_ALL_TARGETS
))
62 @echo ALL_SLIB
: $(PF_EXT_ALL_SLIB
)
63 @echo ALL_MATCH
: $(PF_EXT_MAN_ALL_MATCHES
)
64 @echo ALL_TARGET
: $(PF_EXT_MAN_ALL_TARGETS
)
66 PF_EXT_SLIB
+=$(PF_EXT_SLIB_OPTS
)
67 PF6_EXT_SLIB
+=$(PF6_EXT_SLIB_OPTS
)
69 OPTIONALS
+=$(patsubst %,IPv4
:%,$(PF_EXT_SLIB_OPTS
))
72 SHARED_LIBS
+=$(foreach T
,$(PF_EXT_SLIB
),extensions
/libipt_
$(T
).so
)
73 SHARED_SE_LIBS
+=$(foreach T
,$(PF_EXT_SE_SLIB
),extensions
/libipt_
$(T
).so
)
74 EXTRA_INSTALLS
+=$(foreach T
, $(PF_EXT_SLIB
), $(DESTDIR
)$(LIBDIR
)/iptables
/libipt_
$(T
).so
)
75 EXTRA_INSTALLS
+=$(foreach T
, $(PF_EXT_SE_SLIB
), $(DESTDIR
)$(LIBDIR
)/iptables
/libipt_
$(T
).so
)
78 OPTIONALS
+=$(patsubst %,IPv6
:%,$(PF6_EXT_SLIB_OPTS
))
79 SHARED_LIBS
+=$(foreach T
,$(PF6_EXT_SLIB
),extensions
/libip6t_
$(T
).so
)
80 SHARED_SE_LIBS
+=$(foreach T
,$(PF6_EXT_SE_SLIB
),extensions
/libip6t_
$(T
).so
)
81 EXTRA_INSTALLS
+=$(foreach T
, $(PF6_EXT_SLIB
), $(DESTDIR
)$(LIBDIR
)/iptables
/libip6t_
$(T
).so
)
82 EXTRA_INSTALLS
+=$(foreach T
, $(PF6_EXT_SE_SLIB
), $(DESTDIR
)$(LIBDIR
)/iptables
/libip6t_
$(T
).so
)
85 EXT_OBJS
+=$(foreach T
,$(PF_EXT_SLIB
),extensions
/libipt_
$(T
).o
)
86 EXT_OBJS
+=$(foreach T
,$(PF_EXT_SE_SLIB
),extensions
/libipt_
$(T
).o
)
87 EXT_FUNC
+=$(foreach T
,$(PF_EXT_SLIB
),ipt_
$(T
))
88 EXT_FUNC
+=$(foreach T
,$(PF_EXT_SE_SLIB
),ipt_
$(T
))
89 EXT_OBJS
+= extensions
/initext.o
91 EXT6_OBJS
+=$(foreach T
,$(PF6_EXT_SLIB
),extensions
/libip6t_
$(T
).o
)
92 EXT6_OBJS
+=$(foreach T
,$(PF6_EXT_SE_SLIB
),extensions
/libip6t_
$(T
).o
)
93 EXT6_FUNC
+=$(foreach T
,$(PF6_EXT_SLIB
),ip6t_
$(T
))
94 EXT6_FUNC
+=$(foreach T
,$(PF6_EXT_SE_SLIB
),ip6t_
$(T
))
95 EXT6_OBJS
+= extensions
/initext6.o
97 endif # NO_SHARED_LIBS
99 ifndef TOPLEVEL_INCLUDED
101 cd ..
&& $(MAKE
) $(SHARED_LIBS
) $(SHARED_SE_LIBS
)
105 extensions
/libext.a
: $(EXT_OBJS
)
106 rm -f
$@
; ar crv
$@
$(EXT_OBJS
)
108 extensions
/libext6.a
: $(EXT6_OBJS
)
109 rm -f
$@
; ar crv
$@
$(EXT6_OBJS
)
111 extensions
/initext.o
: extensions
/initext.c
112 extensions
/initext6.o
: extensions
/initext6.c
114 extensions
/initext.c
: extensions
/Makefile
116 for i in
$(EXT_FUNC
); do \
117 echo
"extern void $${i}_init(void);" >> $@
; \
119 echo
"void init_extensions(void) {" >> $@
120 for i in
$(EXT_FUNC
); do \
121 echo
" $${i}_init();" >> $@
; \
125 extensions
/initext6.c
: extensions
/Makefile
127 for i in
$(EXT6_FUNC
); do \
128 echo
"extern void $${i}_init(void);" >> $@
; \
130 echo
"void init_extensions(void) {" >> $@
131 for i in
$(EXT6_FUNC
); do \
132 echo
" $${i}_init();" >> $@
; \
136 extensions
/lib
%.o
: extensions
/lib
%.c
137 $(CC
) $(CFLAGS
) -D_INIT
=$*_init
-c
-o
$@
$<
141 EXTRAS
+= extensions
/libipt_targets.man
142 extensions
/libipt_targets.man
: $(patsubst %,extensions
/libipt_
%.man
,$(PF_EXT_MAN_ALL_TARGETS
))
143 @for ext in
$(PF_EXT_MAN_TARGETS
); do \
145 cat extensions
/libipt_
$$ext.man
;\
146 done
>extensions
/libipt_targets.man
147 @if
[ -n
"$(PF_EXT_MAN_EXTRA_TARGETS)" ]; then \
148 extra
=$(PF_EXT_MAN_EXTRA_TARGETS
) ;\
149 for ext in
$${extra
:-""}; do \
150 echo
".SS $$ext (not supported, see Patch-O-Matic)" ;\
151 cat extensions
/libipt_
$$ext.man
;\
153 fi
>>extensions
/libipt_targets.man
155 EXTRAS
+= extensions
/libipt_matches.man
156 extensions
/libipt_matches.man
: $(patsubst %,extensions
/libipt_
%.man
,$(PF_EXT_MAN_ALL_MATCHES
))
157 @for ext in
$(PF_EXT_MAN_MATCHES
); do \
159 cat extensions
/libipt_
$$ext.man
;\
160 done
>extensions
/libipt_matches.man
161 @if
[ -n
"$(PF_EXT_MAN_EXTRA_MATCHES)" ]; then \
162 extra
=$(PF_EXT_MAN_EXTRA_MATCHES
) ;\
163 for ext in
$${extra
:-""}; do \
164 echo
".SS $$ext (not supported, see Patch-O-Matic)" ;\
165 cat extensions
/libipt_
$$ext.man
;\
167 fi
>>extensions
/libipt_matches.man
169 EXTRAS
+= extensions
/libip6t_targets.man
170 extensions
/libip6t_targets.man
: $(patsubst %, extensions
/libip6t_
%.man
, $(PF6_EXT_MAN_ALL_TARGETS
))
171 @for ext in
$(PF6_EXT_MAN_TARGETS
); do \
173 cat extensions
/libip6t_
$$ext.man
;\
174 done
>extensions
/libip6t_targets.man
175 @if
[ -n
"$(PF6_EXT_MAN_EXTRA_TARGETS)" ]; then \
176 extra
=$(PF6_EXT_MAN_EXTRA_TARGETS
) ;\
177 for ext in
$${extra
:-""}; do \
178 echo
".SS $$ext (not supported, see Patch-O-Matic)" ;\
179 cat extensions
/libip6t_
$$ext.man
;\
181 fi
>>extensions
/libip6t_targets.man
183 EXTRAS
+= extensions
/libip6t_matches.man
184 extensions
/libip6t_matches.man
: $(patsubst %, extensions
/libip6t_
%.man
, $(PF6_EXT_MAN_ALL_MATCHES
))
185 @for ext in
$(PF6_EXT_MAN_MATCHES
); do \
187 cat extensions
/libip6t_
$$ext.man
;\
188 done
>extensions
/libip6t_matches.man
189 @if
[ -n
"$(PF6_EXT_MAN_EXTRA_MATCHES)" ]; then \
190 extra
=$(PF6_EXT_MAN_EXTRA_MATCHES
) ;\
191 for ext in
$${extra
:-""}; do \
192 echo
".SS $$ext (not supported, see Patch-O-Matic)" ;\
193 cat extensions
/libip6t_
$$ext.man
;\
195 fi
>>extensions
/libip6t_matches.man
197 $(DESTDIR
)$(LIBDIR
)/iptables
/libipt_
%.so
: extensions
/libipt_
%.so
198 @
[ -d
$(DESTDIR
)$(LIBDIR
)/iptables
] || mkdir
-p
$(DESTDIR
)$(LIBDIR
)/iptables
201 $(DESTDIR
)$(LIBDIR
)/iptables
/libip6t_
%.so
: extensions
/libip6t_
%.so
202 @
[ -d
$(DESTDIR
)$(LIBDIR
)/iptables
] || mkdir
-p
$(DESTDIR
)$(LIBDIR
)/iptables