087a9dd0554529ee533c03a5e1909928f03c76d7
[iptables.git] / ipset / Makefile
1 #!/usr/bin/make
2
3 ######################################################################
4 # YOU SHOULD NOT NEED TO TOUCH ANYTHING BELOW THIS LINE
5 ######################################################################
6
7 ifndef KERNEL_DIR
8 KERNEL_DIR=/usr/src/linux
9 endif
10
11 IPSET_VERSION:=2.2.8
12
13 PREFIX:=/usr/local
14 LIBDIR:=$(PREFIX)/lib
15 BINDIR:=$(PREFIX)/sbin
16 MANDIR:=$(PREFIX)/man
17 INCDIR:=$(PREFIX)/include
18 IPSET_LIB_DIR:=$(LIBDIR)/ipset
19
20 # directory for new iptables releases
21 RELEASE_DIR:=/tmp
22
23 COPT_FLAGS:=-O2
24 CFLAGS:=$(COPT_FLAGS) -Wall -Wunused -I$(KERNEL_DIR)/include -I. # -g -DIPSET_DEBUG #-pg # -DIPTC_DEBUG
25 SH_CFLAGS:=$(CFLAGS) -fPIC
26 SETTYPES:=ipmap portmap macipmap iphash nethash iptree ipporthash
27
28 PROGRAMS=ipset
29 SHARED_LIBS=$(foreach T, $(SETTYPES),libipset_$(T).so)
30 INSTALL=$(DESTDIR)$(BINDIR)/ipset $(DESTDIR)$(MANDIR)/man8/ipset.8
31 INSTALL+=$(foreach T, $(SETTYPES), $(DESTDIR)$(LIBDIR)/ipset/libipset_$(T).so)
32
33 all: $(PROGRAMS) $(SHARED_LIBS)
34
35 install: all $(INSTALL)
36
37 clean: $(EXTRA_CLEANS)
38         rm -rf $(PROGRAMS) $(SHARED_LIBS) *.o *~
39
40 #The ipset(8) self
41 ipset.o: ipset.c
42         $(CC) $(CFLAGS) -DIPSET_VERSION=\"$(IPSET_VERSION)\" -DIPSET_LIB_DIR=\"$(IPSET_LIB_DIR)\" -c -o $@ $<
43
44 ipset: ipset.o
45         $(CC) $(CFLAGS) -ldl -rdynamic -o $@ $^
46
47 #Pooltypes
48 ipset_%.o: ipset_%.c
49         $(CC) $(SH_CFLAGS) -o $@ -c $<
50
51 libipset_%.so: ipset_%.o
52         $(LD) -shared -o $@ $<
53
54 $(DESTDIR)$(LIBDIR)/ipset/libipset_%.so: libipset_%.so
55         @[ -d $(DESTDIR)$(LIBDIR)/ipset ] || mkdir -p $(DESTDIR)$(LIBDIR)/ipset
56         cp $< $@
57
58 $(DESTDIR)$(BINDIR)/ipset: ipset
59         @[ -d $(DESTDIR)$(BINDIR) ] || mkdir -p $(DESTDIR)$(BINDIR)
60         cp $< $@
61
62 $(DESTDIR)$(MANDIR)/man8/ipset.8: ipset.8
63         @[ -d $(DESTDIR)$(MANDIR)/man8 ] || mkdir -p $(DESTDIR)$(MANDIR)/man8
64         cp $< $@