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
)
19 PF_EXT_SLIB
+=hashlimit NFQUEUE NOTRACK
23 PF6_EXT_SLIB
:=connmark icmp6 length limit mac mark multiport standard state rt hl web
24 PF6_EXT_SLIB
+=tcp udp CONNMARK LOG MARK IMQ TCPMSS REJECT
25 ifeq ($(CONFIG_LINUX26
),y
)
26 PF6_EXT_SLIB
+=connlimit hashlimit recent NFQUEUE ROUTE HL connbytes iprange webmon dscp
30 ifeq ($(DO_SELINUX
), 1)
31 PF_EXT_SE_SLIB
:=SECMARK CONNSECMARK
32 PF6_EXT_SE_SLIB
:=SECMARK CONNSECMARK
36 #PF_EXT_SLIB_OPTS:=$(foreach T,$(wildcard extensions/.*-test),$(shell KERNEL_DIR=$(KERNEL_DIR) $(T)))
37 #PF6_EXT_SLIB_OPTS:=$(foreach T,$(wildcard extensions/.*-test6),$(shell KERNEL_DIR=$(KERNEL_DIR) $(T)))
39 PF_EXT_ALL_SLIB
:=$(patsubst extensions
/libipt_
%.c
, %, $(wildcard extensions
/libipt_
*.c
))
40 PF6_EXT_ALL_SLIB
:=$(patsubst extensions
/libip6t_
%.c
, %, $(wildcard extensions
/libip6t_
*.c
))
42 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
)))
43 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
)))
44 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
)))
45 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
)))
47 PF_EXT_MAN_MATCHES
:=$(filter $(PF_EXT_ALL_SLIB
), $(PF_EXT_MAN_ALL_MATCHES
))
48 PF_EXT_MAN_TARGETS
:=$(filter $(PF_EXT_ALL_SLIB
), $(PF_EXT_MAN_ALL_TARGETS
))
49 PF_EXT_MAN_EXTRA_MATCHES
:=$(filter-out $(PF_EXT_MAN_MATCHES
), $(PF_EXT_MAN_ALL_MATCHES
))
50 PF_EXT_MAN_EXTRA_TARGETS
:=$(filter-out $(PF_EXT_MAN_TARGETS
), $(PF_EXT_MAN_ALL_TARGETS
))
51 PF6_EXT_MAN_MATCHES
:=$(filter $(PF6_EXT_ALL_SLIB
), $(PF6_EXT_MAN_ALL_MATCHES
))
52 PF6_EXT_MAN_TARGETS
:=$(filter $(PF6_EXT_ALL_SLIB
), $(PF6_EXT_MAN_ALL_TARGETS
))
53 PF6_EXT_MAN_EXTRA_MATCHES
:=$(filter-out $(PF6_EXT_MAN_MATCHES
), $(PF6_EXT_MAN_ALL_MATCHES
))
54 PF6_EXT_MAN_EXTRA_TARGETS
:=$(filter-out $(PF6_EXT_MAN_TARGETS
), $(PF6_EXT_MAN_ALL_TARGETS
))
58 @echo ALL_SLIB
: $(PF_EXT_ALL_SLIB
)
59 @echo ALL_MATCH
: $(PF_EXT_MAN_ALL_MATCHES
)
60 @echo ALL_TARGET
: $(PF_EXT_MAN_ALL_TARGETS
)
62 PF_EXT_SLIB
+=$(PF_EXT_SLIB_OPTS
)
63 PF6_EXT_SLIB
+=$(PF6_EXT_SLIB_OPTS
)
65 OPTIONALS
+=$(patsubst %,IPv4
:%,$(PF_EXT_SLIB_OPTS
))
68 SHARED_LIBS
+=$(foreach T
,$(PF_EXT_SLIB
),extensions
/libipt_
$(T
).so
)
69 SHARED_SE_LIBS
+=$(foreach T
,$(PF_EXT_SE_SLIB
),extensions
/libipt_
$(T
).so
)
70 EXTRA_INSTALLS
+=$(foreach T
, $(PF_EXT_SLIB
), $(DESTDIR
)$(LIBDIR
)/iptables
/libipt_
$(T
).so
)
71 EXTRA_INSTALLS
+=$(foreach T
, $(PF_EXT_SE_SLIB
), $(DESTDIR
)$(LIBDIR
)/iptables
/libipt_
$(T
).so
)
74 OPTIONALS
+=$(patsubst %,IPv6
:%,$(PF6_EXT_SLIB_OPTS
))
75 SHARED_LIBS
+=$(foreach T
,$(PF6_EXT_SLIB
),extensions
/libip6t_
$(T
).so
)
76 SHARED_SE_LIBS
+=$(foreach T
,$(PF6_EXT_SE_SLIB
),extensions
/libip6t_
$(T
).so
)
77 EXTRA_INSTALLS
+=$(foreach T
, $(PF6_EXT_SLIB
), $(DESTDIR
)$(LIBDIR
)/iptables
/libip6t_
$(T
).so
)
78 EXTRA_INSTALLS
+=$(foreach T
, $(PF6_EXT_SE_SLIB
), $(DESTDIR
)$(LIBDIR
)/iptables
/libip6t_
$(T
).so
)
81 EXT_OBJS
+=$(foreach T
,$(PF_EXT_SLIB
),extensions
/libipt_
$(T
).o
)
82 EXT_OBJS
+=$(foreach T
,$(PF_EXT_SE_SLIB
),extensions
/libipt_
$(T
).o
)
83 EXT_FUNC
+=$(foreach T
,$(PF_EXT_SLIB
),ipt_
$(T
))
84 EXT_FUNC
+=$(foreach T
,$(PF_EXT_SE_SLIB
),ipt_
$(T
))
85 EXT_OBJS
+= extensions
/initext.o
87 EXT6_OBJS
+=$(foreach T
,$(PF6_EXT_SLIB
),extensions
/libip6t_
$(T
).o
)
88 EXT6_OBJS
+=$(foreach T
,$(PF6_EXT_SE_SLIB
),extensions
/libip6t_
$(T
).o
)
89 EXT6_FUNC
+=$(foreach T
,$(PF6_EXT_SLIB
),ip6t_
$(T
))
90 EXT6_FUNC
+=$(foreach T
,$(PF6_EXT_SE_SLIB
),ip6t_
$(T
))
91 EXT6_OBJS
+= extensions
/initext6.o
93 endif # NO_SHARED_LIBS
95 ifndef TOPLEVEL_INCLUDED
97 cd ..
&& $(MAKE
) $(SHARED_LIBS
) $(SHARED_SE_LIBS
)
101 extensions
/libext.a
: $(EXT_OBJS
)
102 rm -f
$@
; ar crv
$@
$(EXT_OBJS
)
104 extensions
/libext6.a
: $(EXT6_OBJS
)
105 rm -f
$@
; ar crv
$@
$(EXT6_OBJS
)
107 extensions
/initext.o
: extensions
/initext.c
108 extensions
/initext6.o
: extensions
/initext6.c
110 extensions
/initext.c
: extensions
/Makefile
112 for i in
$(EXT_FUNC
); do \
113 echo
"extern void $${i}_init(void);" >> $@
; \
115 echo
"void init_extensions(void) {" >> $@
116 for i in
$(EXT_FUNC
); do \
117 echo
" $${i}_init();" >> $@
; \
121 extensions
/initext6.c
: extensions
/Makefile
123 for i in
$(EXT6_FUNC
); do \
124 echo
"extern void $${i}_init(void);" >> $@
; \
126 echo
"void init_extensions(void) {" >> $@
127 for i in
$(EXT6_FUNC
); do \
128 echo
" $${i}_init();" >> $@
; \
132 extensions
/lib
%.o
: extensions
/lib
%.c
133 $(CC
) $(CFLAGS
) -D_INIT
=$*_init
-c
-o
$@
$<
137 EXTRAS
+= extensions
/libipt_targets.man
138 extensions
/libipt_targets.man
: $(patsubst %,extensions
/libipt_
%.man
,$(PF_EXT_MAN_ALL_TARGETS
))
139 @for ext in
$(PF_EXT_MAN_TARGETS
); do \
141 cat extensions
/libipt_
$$ext.man
;\
142 done
>extensions
/libipt_targets.man
143 @if
[ -n
"$(PF_EXT_MAN_EXTRA_TARGETS)" ]; then \
144 extra
=$(PF_EXT_MAN_EXTRA_TARGETS
) ;\
145 for ext in
$${extra
:-""}; do \
146 echo
".SS $$ext (not supported, see Patch-O-Matic)" ;\
147 cat extensions
/libipt_
$$ext.man
;\
149 fi
>>extensions
/libipt_targets.man
151 EXTRAS
+= extensions
/libipt_matches.man
152 extensions
/libipt_matches.man
: $(patsubst %,extensions
/libipt_
%.man
,$(PF_EXT_MAN_ALL_MATCHES
))
153 @for ext in
$(PF_EXT_MAN_MATCHES
); do \
155 cat extensions
/libipt_
$$ext.man
;\
156 done
>extensions
/libipt_matches.man
157 @if
[ -n
"$(PF_EXT_MAN_EXTRA_MATCHES)" ]; then \
158 extra
=$(PF_EXT_MAN_EXTRA_MATCHES
) ;\
159 for ext in
$${extra
:-""}; do \
160 echo
".SS $$ext (not supported, see Patch-O-Matic)" ;\
161 cat extensions
/libipt_
$$ext.man
;\
163 fi
>>extensions
/libipt_matches.man
165 EXTRAS
+= extensions
/libip6t_targets.man
166 extensions
/libip6t_targets.man
: $(patsubst %, extensions
/libip6t_
%.man
, $(PF6_EXT_MAN_ALL_TARGETS
))
167 @for ext in
$(PF6_EXT_MAN_TARGETS
); do \
169 cat extensions
/libip6t_
$$ext.man
;\
170 done
>extensions
/libip6t_targets.man
171 @if
[ -n
"$(PF6_EXT_MAN_EXTRA_TARGETS)" ]; then \
172 extra
=$(PF6_EXT_MAN_EXTRA_TARGETS
) ;\
173 for ext in
$${extra
:-""}; do \
174 echo
".SS $$ext (not supported, see Patch-O-Matic)" ;\
175 cat extensions
/libip6t_
$$ext.man
;\
177 fi
>>extensions
/libip6t_targets.man
179 EXTRAS
+= extensions
/libip6t_matches.man
180 extensions
/libip6t_matches.man
: $(patsubst %, extensions
/libip6t_
%.man
, $(PF6_EXT_MAN_ALL_MATCHES
))
181 @for ext in
$(PF6_EXT_MAN_MATCHES
); do \
183 cat extensions
/libip6t_
$$ext.man
;\
184 done
>extensions
/libip6t_matches.man
185 @if
[ -n
"$(PF6_EXT_MAN_EXTRA_MATCHES)" ]; then \
186 extra
=$(PF6_EXT_MAN_EXTRA_MATCHES
) ;\
187 for ext in
$${extra
:-""}; do \
188 echo
".SS $$ext (not supported, see Patch-O-Matic)" ;\
189 cat extensions
/libip6t_
$$ext.man
;\
191 fi
>>extensions
/libip6t_matches.man
193 $(DESTDIR
)$(LIBDIR
)/iptables
/libipt_
%.so
: extensions
/libipt_
%.so
194 @
[ -d
$(DESTDIR
)$(LIBDIR
)/iptables
] || mkdir
-p
$(DESTDIR
)$(LIBDIR
)/iptables
197 $(DESTDIR
)$(LIBDIR
)/iptables
/libip6t_
%.so
: extensions
/libip6t_
%.so
198 @
[ -d
$(DESTDIR
)$(LIBDIR
)/iptables
] || mkdir
-p
$(DESTDIR
)$(LIBDIR
)/iptables