3 ######################################################################
4 # YOU SHOULD NOT NEED TO TOUCH ANYTHING BELOW THIS LINE
5 ######################################################################
8 KERNEL_DIR
=/lib
/modules
/`uname -r`/build
11 KBUILD_OUTPUT
=$(KERNEL_DIR
)
16 ifndef IP_NF_SET_HASHSIZE
17 IP_NF_SET_HASHSIZE
=1024
27 BINDIR
:=$(PREFIX
)/sbin
29 INCDIR
:=$(PREFIX
)/include
30 IPSET_LIB_DIR
:=$(LIBDIR
)/ipset
32 # directory for new iptables releases
46 -Wmissing-declarations \
47 -Wmissing-prototypes \
49 -Wold-style-definition \
59 -Wno-missing-field-initializers
61 ifndef NO_EXTRA_WARN_FLAGS
62 WARN_FLAGS
+=$(EXTRA_WARN_FLAGS
)
66 CFLAGS
:=$(ABI_FLAGS
) $(COPT_FLAGS
) $(WARN_FLAGS
) -Ikernel
/include -I.
# -g -DIPSET_DEBUG
67 CFLAGS
+=-DIP_NF_SET_HASHSIZE
=$(IP_NF_SET_HASHSIZE
)
68 SH_CFLAGS
:=$(CFLAGS
) -fPIC
70 SETTYPES
:=ipmap portmap macipmap
71 SETTYPES
+=iptree iptreemap
72 SETTYPES
+=iphash nethash ipporthash ipportiphash ipportnethash
76 SHARED_LIBS
=$(foreach T
, $(SETTYPES
),libipset_
$(T
).so
)
77 INSTALL
=$(DESTDIR
)$(BINDIR
)/ipset
$(DESTDIR
)$(MANDIR
)/man8
/ipset
.8
78 INSTALL
+=$(foreach T
, $(SETTYPES
), $(DESTDIR
)$(LIBDIR
)/ipset
/libipset_
$(T
).so
)
85 cd tests
; .
/runtest.sh
87 binaries
: $(PROGRAMS
) $(SHARED_LIBS
)
89 binaries_install
: binaries
$(INSTALL
)
92 cd kernel
; .
/patch_kernel
$(KERNEL_DIR
)
95 @
[ ! -f
$(KERNEL_DIR
)/net
/ipv4
/netfilter
/Config.in
] ||
(echo
"Error: The directory '$(KERNEL_DIR)' looks like a Linux 2.4.x kernel source tree, you have to patch it by 'make patch_kernel'." && exit
1)
96 @
[ -f
$(KERNEL_DIR
)/net
/ipv4
/netfilter
/Kconfig
] ||
(echo
"Error: The directory '$(KERNEL_DIR)' doesn't look like a Linux 2.6.x kernel source tree." && exit
1)
97 @
[ -f
$(KBUILD_OUTPUT
)/.config
] ||
(echo
"Error: The kernel source in '$(KERNEL_DIR)' must be configured" && exit
1)
98 @
[ -f
$(KBUILD_OUTPUT
)/Module.symvers
] || echo
"Warning: You should run 'make modules' in '$(KERNEL_DIR)' beforehand"
99 cd kernel
; make
-C
$(KBUILD_OUTPUT
) M
=`pwd` V
=$V IP_NF_SET_MAX
=$(IP_NF_SET_MAX
) IP_NF_SET_HASHSIZE
=$(IP_NF_SET_HASHSIZE
) modules
101 modules_install
: modules
102 cd kernel
; make
-C
$(KBUILD_OUTPUT
) M
=`pwd` modules_install
104 install: binaries_install modules_install
106 clean: $(EXTRA_CLEANS
)
107 rm -rf
$(PROGRAMS
) $(SHARED_LIBS
) *.o
*~ tests
/*~
108 # [ -f $(KERNEL_DIR)/net/ipv4/netfilter/Config.in ] || (cd kernel; make -C $(KERNEL_DIR) M=`pwd` clean)
111 cp
-a .
/tmp
/ipset-
$(IPSET_VERSION
)
112 tar cjf ..
/ipset-
$(IPSET_VERSION
).
tar.bz2
-C
/tmp
--exclude
=.git ipset-
$(IPSET_VERSION
)
113 rm -rf
/tmp
/ipset-
$(IPSET_VERSION
)
116 ipset.o
: ipset.c ipset.h
117 $(CC
) $(CFLAGS
) -DIPSET_VERSION
=\"$(IPSET_VERSION
)\" -DIPSET_LIB_DIR
=\"$(IPSET_LIB_DIR
)\" -c
-o
$@
$<
120 $(CC
) $(CFLAGS
) $(LDFLAGS
) -rdynamic
-o
$@
$^
-ldl
123 ipset_
%.o
: ipset_
%.c ipset.h
124 $(CC
) $(SH_CFLAGS
) -o
$@
-c
$<
126 libipset_
%.so
: ipset_
%.o
127 $(CC
) -shared
$(LDFLAGS
) -o
$@
$<
129 $(DESTDIR
)$(LIBDIR
)/ipset
/libipset_
%.so
: libipset_
%.so
130 @
[ -d
$(DESTDIR
)$(LIBDIR
)/ipset
] || mkdir
-p
$(DESTDIR
)$(LIBDIR
)/ipset
133 $(DESTDIR
)$(BINDIR
)/ipset
: ipset
134 @
[ -d
$(DESTDIR
)$(BINDIR
) ] || mkdir
-p
$(DESTDIR
)$(BINDIR
)
137 $(DESTDIR
)$(MANDIR
)/man8
/ipset
.8: ipset
.8
138 @
[ -d
$(DESTDIR
)$(MANDIR
)/man8
] || mkdir
-p
$(DESTDIR
)$(MANDIR
)/man8