MFC r1.6 r1.15 (HEAD)
[dragonfly.git] / contrib / ipfilter / BSD / Makefile
blob50a61e886a44142f2827a0e38a92137c00a1579e
2 # Copyright (C) 1993-1998 by Darren Reed.
4 # Redistribution and use in source and binary forms are permitted
5 # provided that this notice is preserved and due credit is given
6 # to the original author and the contributors.
8 BINDEST=/usr/sbin
9 SBINDEST=/sbin
10 SEARCHDIRS=$(BINDEST) $(SBINDEST) /bin /usr/bin /sbin /usr/sbin \
11 /usr/local/bin /usr/local/sbin
12 MANDIR=/usr/share/man
13 CC=cc -Wall -Wstrict-prototypes -Wuninitialized -O
14 CFLAGS=-g -I$(TOP)
16 # For NetBSD/FreeBSD
18 DEVFS!=/usr/bin/lsvfs 2>&1 | sed -n 's/.*devfs.*/-DDEVFS/p'
19 CPU!=uname -m
20 INC=-I/usr/include -I/sys -I/sys/sys -I/sys/arch
21 DEF=-D$(CPU) -D__$(CPU)__ -DINET -DKERNEL -D_KERNEL $(INC) $(DEVFS)
22 IPDEF=$(DEF) -DGATEWAY -DDIRECTED_BROADCAST
23 VNODESHDIR=/sys/kern
24 MLD=$(ML) vnode_if.h
25 ML=mln_ipl.c
26 IPFILC=ip_fil.c
27 LKM=if_ipl.o
28 DLKM=
29 MFLAGS="BINDEST=$(BINDEST)" "SBINDEST=$(SBINDEST)" "MANDIR=$(MANDIR)" \
30 'CFLAGS=$(CFLAGS) $(SOLARIS2)' "IPFLKM=$(IPFLKM)" \
31 "IPFLOG=$(IPFLOG)" "LOGFAC=$(LOGFAC)" "POLICY=$(POLICY)" \
32 "SOLARIS2=$(SOLARIS2)" "DEBUG=$(DEBUG)" "DCPU=$(CPU)" \
33 "CPUDIR=$(CPUDIR)"
35 ########## ########## ########## ########## ########## ########## ##########
37 CP=/bin/cp
38 RM=/bin/rm
39 CHMOD=/bin/chmod
40 INSTALL=install
42 MODOBJS=ip_fil.o fil_k.o ml_ipl.o ip_nat.o ip_frag.o ip_state.o ip_proxy.o \
43 ip_auth.o ip_log.o
44 DFLAGS=$(IPFLKM) $(DEF) $(DLKM)
45 IPF=ipf.o parse.o common.o opt.o facpri.o
46 IPT=ipt.o parse.o common.o fil.o ipft_sn.o ipft_ef.o ipft_td.o ipft_pc.o \
47 opt.o ipft_tx.o misc.o ip_frag_u.o ip_state_u.o ip_nat_u.o ip_proxy_u.o \
48 ip_auth_u.o ipft_hx.o ip_fil_u.o ip_log_u.o natparse.o facpri.o \
49 printnat.o printstate.o
50 IPNAT=ipnat.o kmem.o natparse.o common.o printnat.o
51 FILS=fils.o parse.o kmem.o opt.o facpri.o common.o printstate.o
53 build all: ipf ipfs ipfstat ipftest ipmon ipnat $(LKM)
54 /bin/rm -f $(TOP)/ipf
55 ln -s `pwd`/ipf $(TOP)
56 /bin/rm -f $(TOP)/ipftest
57 ln -s `pwd`/ipftest $(TOP)
58 /bin/rm -f $(TOP)/ipmon
59 ln -s `pwd`/ipmon $(TOP)
60 /bin/rm -f $(TOP)/ipnat
61 ln -s `pwd`/ipnat $(TOP)
63 ipfstat: $(FILS)
64 $(CC) -static $(DEBUG) $(CFLAGS) $(STATETOP_CFLAGS) $(STATETOP_INC) \
65 $(FILS) -o $@ $(LIBS) $(STATETOP_LIB) -lkvm
67 ipf: $(IPF)
68 $(CC) -static $(DEBUG) $(CFLAGS) $(IPF) -o $@ $(LIBS)
70 ipftest: $(IPT)
71 $(CC) $(DEBUG) $(CFLAGS) $(IPT) -o $@ $(LIBS)
73 ipnat: $(IPNAT)
74 $(CC) -static $(DEBUG) $(CFLAGS) $(IPNAT) -o $@ $(LIBS) -lkvm
76 ipfs: ipfs.o
77 $(CC) -static $(DEBUG) $(CFLAGS) ipfs.o -o $@ $(LIBS)
79 tests:
80 (cd test; make )
82 fils.o: $(TOP)/fils.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_frag.h \
83 $(TOP)/ip_compat.h $(TOP)/ip_state.h $(TOP)/ip_nat.h
84 $(CC) $(DEBUG) $(CFLAGS) $(STATETOP_CFLAGS) $(STATETOP_INC) \
85 -c $(TOP)/fils.c -o $@
87 ipfs.o: $(TOP)/ipfs.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_state.h \
88 $(TOP)/ip_nat.h
89 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipfs.c -o $@
91 fil.o: $(TOP)/fil.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_compat.h
92 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/fil.c -o $@
94 fil_k.o: $(TOP)/fil.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_compat.h \
95 $(TOP)/ipl.h
96 $(CC) $(DEBUG) $(CFLAGS) $(POLICY) $(DFLAGS) -c $(TOP)/fil.c -o $@
98 ipf.o: $(TOP)/ipf.c $(TOP)/ip_fil.h $(TOP)/ipf.h
99 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipf.c -o $@
101 ipt.o: $(TOP)/ipt.c $(TOP)/ip_fil.h $(TOP)/ipt.h $(TOP)/ipf.h
102 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipt.c -o $@
104 misc.o: $(TOP)/misc.c $(TOP)/ip_fil.h $(TOP)/ipt.h $(TOP)/ipf.h
105 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/misc.c -o $@
107 opt.o: $(TOP)/opt.c $(TOP)/ip_fil.h $(TOP)/ipf.h
108 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/opt.c -o $@
110 ipnat.o: $(TOP)/ipnat.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_nat.h
111 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipnat.c -o $@
113 natparse.o: $(TOP)/natparse.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_nat.h \
114 $(TOP)/ip_compat.h
115 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/natparse.c -o $@
117 printnat.o: $(TOP)/printnat.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_nat.h \
118 $(TOP)/ip_compat.h $(TOP)/ip_proxy.h
119 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/printnat.c -o $@
121 printstate.o: $(TOP)/printstate.c $(TOP)/ip_fil.h $(TOP)/ipf.h \
122 $(TOP)/ip_state.h $(TOP)/ip_compat.h
123 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/printstate.c -o $@
125 ipft_sn.o: $(TOP)/ipft_sn.c $(TOP)/ipt.h $(TOP)/ipf.h $(TOP)/ip_fil.h \
126 $(TOP)/snoop.h
127 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipft_sn.c -o $@
129 ipft_ef.o: $(TOP)/ipft_ef.c $(TOP)/ipf.h $(TOP)/ip_fil.h $(TOP)/ipt.h
130 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipft_ef.c -o $@
132 ipft_td.o: $(TOP)/ipft_td.c $(TOP)/ipf.h $(TOP)/ip_fil.h $(TOP)/ipt.h
133 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipft_td.c -o $@
135 ipft_pc.o: $(TOP)/ipft_pc.c $(TOP)/ipf.h $(TOP)/ip_fil.h $(TOP)/ipt.h
136 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipft_pc.c -o $@
138 ipft_tx.o: $(TOP)/ipft_tx.c $(TOP)/ipf.h $(TOP)/ip_fil.h $(TOP)/ipt.h
139 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipft_tx.c -o $@
141 ipft_hx.o: $(TOP)/ipft_hx.c $(TOP)/ipf.h $(TOP)/ip_fil.h $(TOP)/ipt.h
142 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipft_hx.c -o $@
144 ip_nat_u.o: $(TOP)/ip_nat.c $(TOP)/ip_nat.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h
145 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ip_nat.c -o $@
147 ip_proxy_u.o: $(TOP)/ip_proxy.c $(TOP)/ip_proxy.h $(TOP)/ip_compat.h \
148 $(TOP)/ip_fil.h $(TOP)/ip_ftp_pxy.c $(TOP)/ip_rcmd_pxy.c \
149 $(TOP)/ip_raudio_pxy.c $(TOP)/ip_ipsec_pxy.c $(TOP)/ip_nat.h
150 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ip_proxy.c -o $@
152 ip_frag_u.o: $(TOP)/ip_frag.c $(TOP)/ip_frag.h $(TOP)/ip_compat.h \
153 $(TOP)/ip_fil.h
154 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ip_frag.c -o $@
156 ip_state_u.o: $(TOP)/ip_state.c $(TOP)/ip_state.h $(TOP)/ip_compat.h \
157 $(TOP)/ip_fil.h $(TOP)/ip_nat.h
158 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ip_state.c -o $@
160 ip_auth_u.o: $(TOP)/ip_auth.c $(TOP)/ip_auth.h $(TOP)/ip_compat.h \
161 $(TOP)/ip_fil.h
162 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ip_auth.c -o $@
164 ip_fil_u.o: $(TOP)/$(IPFILC) $(TOP)/ip_fil.h $(TOP)/ip_compat.h
165 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/$(IPFILC) -o $@
167 ip_log_u.o: $(TOP)/ip_log.c $(TOP)/ip_fil.h $(TOP)/ip_compat.h
168 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ip_log.c -o $@
170 if_ipl.o: $(MODOBJS)
171 ld -r $(MODOBJS) -o $(LKM)
172 ${RM} -f if_ipl
174 ipf.ko ipl.ko: $(MODOBJS)
175 gensetdefs $(MODOBJS)
176 $(CC) $(DEBUG) $(CFLAGS) -c setdef0.c
177 $(CC) $(DEBUG) $(CFLAGS) -c setdef1.c
178 ld -Bshareable -o $(LKM) setdef0.o $(MODOBJS) setdef1.o
180 ip_nat.o: $(TOP)/ip_nat.c $(TOP)/ip_nat.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h
181 $(CC) $(DEBUG) $(CFLAGS) $(DFLAGS) -c $(TOP)/ip_nat.c -o $@
183 ip_frag.o: $(TOP)/ip_frag.c $(TOP)/ip_frag.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h
184 $(CC) $(DEBUG) $(CFLAGS) $(DFLAGS) -c $(TOP)/ip_frag.c -o $@
186 ip_state.o: $(TOP)/ip_state.c $(TOP)/ip_state.h $(TOP)/ip_compat.h \
187 $(TOP)/ip_fil.h $(TOP)/ip_nat.h
188 $(CC) $(DEBUG) $(CFLAGS) $(DFLAGS) -c $(TOP)/ip_state.c -o $@
190 ip_proxy.o: $(TOP)/ip_proxy.c $(TOP)/ip_proxy.h $(TOP)/ip_compat.h \
191 $(TOP)/ip_fil.h $(TOP)/ip_ftp_pxy.c $(TOP)/ip_raudio_pxy.c \
192 $(TOP)/ip_rcmd_pxy.c $(TOP)/ip_ipsec_pxy.c $(TOP)/ip_nat.h
193 $(CC) $(DEBUG) $(CFLAGS) $(DFLAGS) -c $(TOP)/ip_proxy.c -o $@
195 ip_auth.o: $(TOP)/ip_auth.c $(TOP)/ip_auth.h $(TOP)/ip_compat.h \
196 $(TOP)/ip_fil.h
197 $(CC) $(DEBUG) $(CFLAGS) $(DFLAGS) -c $(TOP)/ip_auth.c -o $@
199 ip_fil.o: $(TOP)/$(IPFILC) $(TOP)/ip_fil.h $(TOP)/ip_compat.h $(TOP)/ip_nat.h
200 $(CC) $(DEBUG) $(CFLAGS) $(DFLAGS) -c $(TOP)/$(IPFILC) -o $@
202 ip_log.o: $(TOP)/ip_log.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h
203 $(CC) $(DEBUG) $(CFLAGS) $(DFLAGS) -c $(TOP)/ip_log.c -o $@
205 vnode_if.h: $(VNODESHDIR)/vnode_if.sh $(VNODESHDIR)/vnode_if.src
206 mkdir -p ../sys
207 sh $(VNODESHDIR)/vnode_if.sh $(VNODESHDIR)/vnode_if.src
208 if [ -f ../sys/vnode_if.h ] ; then mv ../sys/vnode_if.h .; fi
209 rmdir ../sys
211 ml_ipl.o: $(TOP)/$(MLD) $(TOP)/ipl.h
212 -/bin/rm -f vnode_if.c
213 $(CC) -I. $(CFLAGS) $(DFLAGS) -c $(TOP)/$(ML) -o $@
215 kmem.o: $(TOP)/kmem.c
216 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/kmem.c -o $@
218 parse.o: $(TOP)/parse.c $(TOP)/ip_fil.h
219 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/parse.c -o $@
221 common.o: $(TOP)/common.c $(TOP)/ip_fil.h
222 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/common.c -o $@
224 facpri.o: $(TOP)/facpri.c $(TOP)/facpri.h
225 $(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/facpri.c -o $@
227 ipmon: $(TOP)/ipmon.c
228 $(CC) $(DEBUG) $(CFLAGS) $(LOGFAC) $(TOP)/ipmon.c -o $@ $(LIBS)
230 clean:
231 ${RM} -f *.core *.o ipt fils ipf ipfstat ipftest ipmon if_ipl ipnat \
232 vnode_if.h $(LKM) ioconf.h *.ko setdef1.c setdef0.c setdefs.h \
233 y.tab.? lex.yy.c ipfs
234 ${RM} -f ../opt_inet6.h ../ipftest ../ipmon ../ipf ../ipnat
236 ${MAKE} -f Makefile.ipsend ${MFLAGS} clean
237 -(for i in *; do \
238 if [ -d $${i} -a -f $${i}/Makefile ] ; then \
239 cd $${i}; (make clean); cd ..; \
240 rm $${i}/Makefile $${i}/Makefile.ipsend; \
241 rmdir $${i}; \
242 fi \
243 done)
245 install:
246 for i in ip_compat.h ip_fil.h ip_nat.h ip_state.h ip_proxy.h \
247 ip_frag.h ip_auth.h; do \
248 /bin/cp $(TOP)/$$i /usr/include/netinet/; \
249 $(CHMOD) 444 /usr/include/netinet/$$i; \
250 done
251 -if [ -d /lkm -a -f if_ipl.o ] ; then \
252 cp if_ipl.o /lkm; \
254 -if [ -d /modules -a -f ipf.ko ] ; then \
255 cp ipf.ko /modules; \
257 @for i in ipf:$(SBINDEST) ipfs:$(SBINDEST) ipnat:$(SBINDEST) \
258 ipfstat:$(SBINDEST) ipftest:$(SBINDEST) ipmon:$(BINDEST); do \
259 def="`expr $$i : '[^:]*:\(.*\)'`"; \
260 p="`expr $$i : '\([^:]*\):.*'`"; \
261 for d in $(SEARCHDIRS); do \
262 if [ -f $$d/$$p ] ; then \
263 echo "$(INSTALL) -cs -g wheel -m 755 -o root $$p $$d"; \
264 $(INSTALL) -cs -g wheel -m 755 -o root $$p $$d; \
265 dd=$$d; \
266 fi; \
267 done; \
268 if [ -z "$$dd" ] ; then \
269 echo $(INSTALL) -cs -g wheel -m 755 -o root $$p $$def; \
270 $(INSTALL) -cs -g wheel -m 755 -o root $$p $$def; \
271 fi \
272 done
273 (cd $(TOP)/man; make INSTALL=$(INSTALL) MANDIR=$(MANDIR) install; cd $(TOP))