122514Sdarrenr#
2255332Scy# Copyright (C) 2012 by Darren Reed.
322514Sdarrenr#
4145519Sdarrenr# Redistribution and use in source and binary forms are permitted
5145519Sdarrenr# provided that this notice is preserved and due credit is given
6145519Sdarrenr# to the original author and the contributors.
722514Sdarrenr#
8113109Sdarrenr# $FreeBSD$
9172776Sdarrenr# Id: Makefile,v 2.76.2.24 2007/09/26 10:04:03 darrenr Exp $
1022514Sdarrenr#
11145519SdarrenrSHELL=/bin/sh
1226119SdarrenrBINDEST=/usr/local/bin
1326119SdarrenrSBINDEST=/sbin
1426119SdarrenrMANDIR=/usr/local/man
1524583Sdarrenr#To test prototyping
16255332ScyCC=gcc -Wstrict-prototypes -Wmissing-prototypes -Wunused -Wuninitialized
1753024Sguido#CC=gcc
1834739Speter#CC=cc -Dconst=
1922514SdarrenrDEBUG=-g
20145519Sdarrenr# -O
21145519SdarrenrCFLAGS=-I$$(TOP) -D_BSD_SOURCE
2224583SdarrenrCPU=`uname -m`
2331183SpeterCPUDIR=`uname -s|sed -e 's@/@@g'`-`uname -r`-`uname -m`
24145519SdarrenrOBJ=.
2522514Sdarrenr#
2622514Sdarrenr# To enable this to work as a Loadable Kernel Module...
2722514Sdarrenr#
2822514SdarrenrIPFLKM=-DIPFILTER_LKM
2922514Sdarrenr#
3022514Sdarrenr# To enable logging of blocked/passed packets...
3122514Sdarrenr#
3222514SdarrenrIPFLOG=-DIPFILTER_LOG
3322514Sdarrenr#
34145519Sdarrenr# To enable loading filter rules compiled to C code...
35145519Sdarrenr#
36145519Sdarrenr#COMPIPF=-DIPFILTER_COMPILED
37145519Sdarrenr#
38255332Scy# To enable IPFilter compatibility with older CLI utilities
39255332Scy#
40255332Scy#COMPATIPF=-DIPFILTER_COMPAT
41255332Scy#
42145519Sdarrenr# To enable synchronisation between IPFilter hosts
43145519Sdarrenr#
44145519Sdarrenr#SYNC=-DIPFILTER_SYNC
45145519Sdarrenr#
4622514Sdarrenr# The facility you wish to log messages from ipmon to syslogd with.
4722514Sdarrenr#
48113109SdarrenrLOGFAC=-DLOGFAC=LOG_SECURITY
49145519Sdarrenr#
50145519Sdarrenr# To enable rules to be written with BPF syntax, uncomment these two lines.
51145519Sdarrenr#
52145519Sdarrenr# WARNING: If you're building a commercial product based on IPFilter, using
53145519Sdarrenr#          this options *may* infringe at least one patent held by CheckPoint
54145519Sdarrenr#          (5,606,668.)
55145519Sdarrenr#
56145519Sdarrenr#IPFBPF=-DIPFILTER_BPF -I/usr/local/include
57145519Sdarrenr#LIBBPF=-L/usr/local/lib -lpcap
58145519Sdarrenr#
59145519Sdarrenr# HP-UX and Solaris require this uncommented for BPF.
60145519Sdarrenr#
61145519Sdarrenr#BPFILTER=bpf_filter.o
62145519Sdarrenr#
63145519Sdarrenr# LINUXKERNEL is the path to the top of your Linux kernel source tree.
64145519Sdarrenr# By default IPFilter looks for /usr/src/linux, but you may have to change
65145519Sdarrenr# it to /usr/src/linux-2.4 or similar.
66145519Sdarrenr#
67255332ScyLINUXKERNEL=/usr/src/kernels/2.6.29.5-191.fc11.i586
68145519SdarrenrLINUX=`uname -r | awk -F. ' { printf"%d",$$1;for(i=1;i<NF&&i<3;i++){printf("%02d",$$(i+1));}}'`
69255332Scy#
70255332Scy#
71255332Scy#
72255332Scy#BUILDROOT=/usr/src/redhat/BUILD/ipfilter
73255332ScyBUILDROOT=${HOME}/rpmbuild/BUILDROOT/ipfilter-4.1.32-1.i386
7460841Sdarrenr
7522514Sdarrenr#
76145519Sdarrenr# All of the compile-time options are here, used for compiling the userland
77145519Sdarrenr# tools for regression testing.  Well, all except for IPFILTER_LKM, of course.
78145519Sdarrenr#
79145519SdarrenrALLOPTS=-DIPFILTER_LOG -DIPFILTER_LOOKUP \
80255332Scy        -DIPFILTER_SYNC -DIPFILTER_CKSUM
81145519Sdarrenr
82145519Sdarrenr#
8360841Sdarrenr# Uncomment the next 3 lines if you want to view the state table a la top(1)
8460841Sdarrenr# (requires that you have installed ncurses).
85145519Sdarrenr#STATETOP_CFLAGS=-DSTATETOP
8660841Sdarrenr#
87255332Scy# Where to find the ncurses include files (if not in default path),
8860841Sdarrenr#
8960841Sdarrenr#STATETOP_INC=
9060841Sdarrenr#STATETOP_INC=-I/usr/local/include
9160841Sdarrenr#
9260841Sdarrenr# How to link the ncurses library
9360841Sdarrenr#
94145519Sdarrenr#STATETOP_LIB=-lncurses
9560841Sdarrenr#STATETOP_LIB=-L/usr/local/lib -lncurses
9660841Sdarrenr
9760841Sdarrenr#
9860841Sdarrenr# Uncomment this when building IPv6 capability.
9960841Sdarrenr#
100255332ScyINET6=-DUSE_INET6
10160841Sdarrenr#
10222514Sdarrenr# For packets which don't match any pass rules or any block rules, set either
10322514Sdarrenr# FR_PASS or FR_BLOCK (respectively).  It defaults to FR_PASS if left
10422514Sdarrenr# undefined.  This is ignored for ipftest, which can thus return three
10522514Sdarrenr# results: pass, block and nomatch.  This is the sort of "block unless
10622514Sdarrenr# explicitly allowed" type #define switch.
10722514Sdarrenr#
10823279SpeterPOLICY=-DIPF_DEFAULT_PASS=FR_PASS
10922514Sdarrenr#
110145519SdarrenrMFLAGS1='CFLAGS=$(CFLAGS) $(ARCHINC) $(SOLARIS2) $(SGIREV) $(INET6)' \
11122514Sdarrenr	"IPFLOG=$(IPFLOG)" "LOGFAC=$(LOGFAC)" "POLICY=$(POLICY)" \
11231183Speter	"SOLARIS2=$(SOLARIS2)" "DEBUG=$(DEBUG)" "DCPU=$(CPU)" \
113145519Sdarrenr        "LIBBPF=$(LIBBPF)" "CPUDIR=$(CPUDIR)" "IPFBPF=$(IPFBPF)" \
114145519Sdarrenr        'STATETOP_CFLAGS=$(STATETOP_CFLAGS)' "BPFILTER=$(BPFILTER)" \
11564588Sdarrenr        'STATETOP_INC=$(STATETOP_INC)' 'STATETOP_LIB=$(STATETOP_LIB)' \
116145519Sdarrenr	"BITS=$(BITS)" "OBJ=$(OBJ)" "LOOKUP=$(LOOKUP)" "COMPIPF=$(COMPIPF)" \
117255332Scy	"COMPATIPF=$(COMPATIPF)" \
118145519Sdarrenr	'SYNC=$(SYNC)' 'ALLOPTS=$(ALLOPTS)' 'LIBBPF=$(LIBBPF)'
11953024SguidoMFLAGS=$(MFLAGS1) "IPFLKM=$(IPFLKM)"
120145519SdarrenrMACHASSERT=`/bin/ls -1 /usr/sys/*/mach_assert.h | head -1`
12122514Sdarrenr#
12231183SpeterSHELL=/bin/sh
12331183Speter#
12422514Sdarrenr########## ########## ########## ########## ########## ########## ##########
12522514Sdarrenr#
12622514SdarrenrCP=/bin/cp
12722514SdarrenrRM=/bin/rm
12822514SdarrenrCHMOD=/bin/chmod
12922514SdarrenrINSTALL=install
13022514Sdarrenr#
13122514Sdarrenr
13222514Sdarrenrall:
13322514Sdarrenr	@echo "Chose one of the following targets for making IP filter:"
13422514Sdarrenr	@echo ""
13553024Sguido	@echo "solaris	- auto-selects SunOS4.1.x/Solaris 2.3-6/Solaris2.4-6x86"
13631183Speter	@echo "netbsd	- compile for NetBSD"
13731183Speter	@echo "openbsd	- compile for OpenBSD"
138130890Sdarrenr	@echo "freebsd20	- compile for FreeBSD 2.0, 2.1 or earlier"
13931183Speter	@echo "freebsd22	- compile for FreeBSD-2.2 or greater"
140172776Sdarrenr	@echo "freebsd  - compile for all other versions of FreeBSD"
14131183Speter	@echo "bsd	- compile for generic 4.4BSD systems"
14222514Sdarrenr	@echo "bsdi	- compile for BSD/OS"
14331183Speter	@echo "irix	- compile for SGI IRIX"
144145519Sdarrenr	@echo "hpux	- compile for HP-UX 11.00"
145145519Sdarrenr	@echo "osf	- compile for OSF/Tru64 5.1"
14622514Sdarrenr	@echo ""
14722514Sdarrenr
14822514Sdarrenrtests:
14922514Sdarrenr	@if [ -d test ]; then (cd test; make) \
15022514Sdarrenr	else echo test directory not present, sorry; fi
15122514Sdarrenr
152145519Sdarrenrretest:
153145519Sdarrenr	@if [ -d test ]; then (cd test; make clean && make) \
154145519Sdarrenr	else echo test directory not present, sorry; fi
155145519Sdarrenr
15626119Sdarrenrinclude:
157172776Sdarrenr	-mkdir -p net netinet
15853024Sguido	if [ ! -f netinet/done ] ; then \
159145519Sdarrenr		(cd netinet; ln -s ../*.h .; ln -s ../ip_*_pxy.c .;); \
16031183Speter		(cd netinet; ln -s ../ipsend/tcpip.h tcpip.h); \
16131183Speter		touch netinet/done; \
16231183Speter	fi
163145519Sdarrenr	-(cd netinet; ln -s ../ip_rules.h ip_rules.h)
16426119Sdarrenr
16526119Sdarrenrsunos solaris: include
166145519Sdarrenr	MAKE="$(MAKE)" MAKEFLAGS="$(MAKEFLAGS)" BPFILTER=$(BPFILTER) \
167145519Sdarrenr		CC="$(CC)" DEBUG="$(DEBUG)" ./buildsunos
16822514Sdarrenr
169172776Sdarrenrfreebsd:
170172776Sdarrenr	make freebsd`uname -r|cut -c1`
171172776Sdarrenr
17253024Sguidofreebsd22: include
17331183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
17431183Speter	-rm -f BSD/$(CPUDIR)/ioconf.h
175145519Sdarrenr	-if [ x$(IPFILKERN) != x ] ; then \
17653024Sguido		if [ -f /sys/compile/$(IPFILKERN)/ioconf.h ] ; then \
177145519Sdarrenr			ln -s /sys/compile/$(IPFILKERN)/ioconf.h BSD/$$y; \
17837074Speter		else \
179145519Sdarrenr			ln -s /sys/$(IPFILKERN)/ioconf.h BSD/$$y; \
18037074Speter		fi \
18126119Sdarrenr	else \
182145519Sdarrenr		x=`uname -v|sed -e 's@^.*:\(/[^: ]*\).*$$@\1/ioconf.h@'`; \
183145519Sdarrenr		y=`uname -s|sed -e 's@/@@g'`-`uname -r`-`uname -m`; \
184145519Sdarrenr		if [ ! -f $$x ] ; then \
185145519Sdarrenr			echo -n "Can't find ioconf.h at $$x "; \
186145519Sdarrenr			exit 1;\
187145519Sdarrenr		else \
188145519Sdarrenr			ln -s $$x BSD/$$y ; \
189145519Sdarrenr		fi \
19024583Sdarrenr	fi
191130890Sdarrenr	make freebsd20
19222514Sdarrenr
193255332Scyfreebsd5 freebsd6 freebsd7 freebsd8: include
194145519Sdarrenr	if [ x$(INET6) = x ] ; then \
19563516Sdarrenr		echo "#undef INET6" > opt_inet6.h; \
19663516Sdarrenr	else \
19763516Sdarrenr		echo "#define INET6" > opt_inet6.h; \
19863516Sdarrenr	fi
199153881Sguido	if [ "x$(IPFBPF)" = "x" ] ; then \
200153881Sguido		echo "#undef NBPF" > opt_bpf.h; \
201153881Sguido		echo "#undef NBPFILTER" > opt_bpf.h; \
202153881Sguido		echo "#undef DEV_BPF" > opt_bpf.h; \
203153881Sguido	else \
204153881Sguido		echo "#define NBPF" > opt_bpf.h; \
205153881Sguido		echo "#define NBPFILTER" > opt_bpf.h; \
206153881Sguido		echo "#define DEV_BPF" > opt_bpf.h; \
207153881Sguido	fi
208145519Sdarrenr	if [ x$(ENABLE_PFIL) = x ] ; then \
209145519Sdarrenr		echo "#undef PFIL_HOOKS" > opt_pfil.h; \
210145519Sdarrenr	else \
211145519Sdarrenr		echo "#define PFIL_HOOKS" > opt_pfil.h; \
212145519Sdarrenr	fi
213145519Sdarrenr
21460841Sdarrenr	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
215145519Sdarrenr	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) "ML=mlfk_ipl.c" "MLD=mlfk_ipl.c" "LKM=ipf.ko.5" "LKMR=ipfrule.ko.5" "DLKM=-DKLD_MODULE" "MLR=mlfk_rule.o"; cd ..)
216255332Scy#	(cd BSD/$(CPUDIR); make -f Makefile.ipsend build TOP=../.. $(MFLAGS1); cd ..)
21760841Sdarrenr
218145519Sdarrenrfreebsd4 : include
219145519Sdarrenr	if [ x$(INET6) = x ] ; then \
220145519Sdarrenr		echo "#undef INET6" > opt_inet6.h; \
221145519Sdarrenr	else \
222145519Sdarrenr		echo "#define INET6" > opt_inet6.h; \
223145519Sdarrenr	fi
224145519Sdarrenr	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
225145519Sdarrenr	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) "ML=mlfk_ipl.c" "MLD=mlfk_ipl.c" "LKM=ipf.ko" "LKMR=ipfrule.ko" "DLKM=-DKLD_MODULE" "MLR=mlfk_rule.o"; cd ..)
226145519Sdarrenr	(cd BSD/$(CPUDIR); make -f Makefile.ipsend build TOP=../.. $(MFLAGS1); cd ..)
227145519Sdarrenr
22853024Sguidofreebsd3 freebsd30: include
22953024Sguido	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
230145519Sdarrenr	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS1) "ML=mlf_ipl.c" "MLR=mlf_rule.o" LKM= LKMR=; cd ..)
231145519Sdarrenr	(cd BSD/$(CPUDIR); make -f Makefile.ipsend build TOP=../.. $(MFLAGS1); cd ..)
23253024Sguido
23326119Sdarrenrnetbsd: include
23431183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
235170268Sdarrenr	@if [ ! -d /sys -o ! -d /sys/arch ] ; then \
236170268Sdarrenr		echo "*****************************************************"; \
237170268Sdarrenr		echo "*                                                   *"; \
238170268Sdarrenr		echo "* Please extract source code to create /sys and     *";\
239170268Sdarrenr		echo "* /sys/arch and run 'config GENERIC'                *"; \
240170268Sdarrenr		echo "*                                                   *"; \
241170268Sdarrenr		echo "*****************************************************"; \
242170268Sdarrenr		exit 1; \
243170268Sdarrenr	fi
244145519Sdarrenr	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) 'DLKM=-D_LKM' "ML=mln_ipl.c" LKMR= "MLR=mln_rule.o"; cd ..)
245255332Scy#	(cd BSD/$(CPUDIR); make -f Makefile.ipsend build TOP=../.. $(MFLAGS); cd ..)
24626119Sdarrenr
247145519Sdarrenropenbsd: include
24831183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
249145519Sdarrenr	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) 'DLKM=-D_LKM' "ML=mlo_ipl.c" LKMR= "MLR=mlo_rule.o"; cd ..)
250145519Sdarrenr	(cd BSD/$(CPUDIR); make -f Makefile.ipsend build TOP=../.. $(MFLAGS); cd ..)
25131183Speter
252130890Sdarrenrfreebsd20 freebsd21: include
25331183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
254145519Sdarrenr	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) "ML=mlf_ipl.c" "MLR=mlf_rule.o"; cd ..)
255145519Sdarrenr	(cd BSD/$(CPUDIR); make -f Makefile.ipsend build TOP=../.. $(MFLAGS); cd ..)
25626119Sdarrenr
257145519Sdarrenrosf tru64: null include
258145519Sdarrenr	make setup "TARGOS=OSF" "CPUDIR=`OSF/cpurev`"
259145519Sdarrenr	(cd OSF/`OSF/cpurev`; make build TRU64=`uname -v` TOP=../.. "DEBUG=-g" $(MFLAGS) "MACHASSERT=$(MACHASSERT)" "OSREV=`../cpurev`"; cd ..)
260145519Sdarrenr	(cd OSF/`OSF/cpurev`; make -f Makefile.ipsend build TRU64=`uname -v` TOP=../.. $(MFLAGS) "OSREV=`../cpurev`"; cd ..)
261145519Sdarrenr
262153881Sguidoaix: null include
263153881Sguido	make setup "TARGOS=AIX" "CPUDIR=`AIX/cpurev`"
264153881Sguido	(cd AIX/`AIX/cpurev`; make build AIX=`uname -v` TOP=../.. "DEBUG=-g" $(MFLAGS) "OSREV=`../cpurev`" BITS=`../bootbits.sh`; cd ..)
265153881Sguido#	(cd AIX/`AIX/cpurev`; make -f Makefile.ipsend build AIX=`uname -v` TOP=../.. $(MFLAGS) "OSREV=`../cpurev`"; cd ..)
266153881Sguido
26726119Sdarrenrbsd: include
26831183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
269145519Sdarrenr	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) 'DLKM=-D_LKM' "ML=mln_ipl.c" "MLR=mln_rule.o"; cd ..)
270145519Sdarrenr	(cd BSD/$(CPUDIR); make -f Makefile.ipsend build TOP=../.. $(MFLAGS); cd ..)
27122514Sdarrenr
27226119Sdarrenrbsdi bsdos: include
27331183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
274145519Sdarrenr	(cd BSD/$(CPUDIR); make build "CC=$(CC)" TOP=../.. $(MFLAGS) LKM= LKMR= ; cd ..)
275145519Sdarrenr	(cd BSD/$(CPUDIR); make -f Makefile.ipsend build "CC=$(CC)" TOP=../.. $(MFLAGS); cd ..)
27622514Sdarrenr
27731183Speteririx IRIX: include
278145519Sdarrenr	make setup TARGOS=IRIX CPUDIR=`IRIX/cpurev`
279145519Sdarrenr	if [ "x${SGIREV}" = "x" ] ; then \
280145519Sdarrenr		make irix "SGIREV=-D_KMEMUSER -DIRIX=`IRIX/getrev`"; \
281145519Sdarrenr	else \
282145519Sdarrenr		(cd IRIX/`IRIX/cpurev`; smake -l -J 1 build TOP=../.. $(DEST) $(MFLAGS) IRIX=`../getrev` SGI=$$(IRIX) CPUDIR=`../cpurev`; cd ..); \
283145519Sdarrenr		(cd IRIX/`IRIX/cpurev`; make -f Makefile.ipsend build TOP=../.. $(DEST) $(MFLAGS) IRIX=`../getrev` SGI=$$(IRIX) CPUDIR=`../cpurev`; cd ..); \
284145519Sdarrenr	fi
28531183Speter
28631183Spetersetup:
28731183Speter	-if [ ! -d $(TARGOS)/$(CPUDIR) ] ; then mkdir $(TARGOS)/$(CPUDIR); fi
28831183Speter	-rm -f $(TARGOS)/$(CPUDIR)/Makefile $(TARGOS)/$(CPUDIR)/Makefile.ipsend
28931183Speter	-ln -s ../Makefile $(TARGOS)/$(CPUDIR)/Makefile
29031183Speter	-ln -s ../Makefile.ipsend $(TARGOS)/$(CPUDIR)/Makefile.ipsend
291145519Sdarrenr	-if [ -f $(TARGOS)/Makefile.common ] ; then \
292145519Sdarrenr		rm -f $(TARGOS)/$(CPUDIR)/Makefile.common; \
293145519Sdarrenr		ln -s ../Makefile.common $(TARGOS)/$(CPUDIR)/Makefile.common;\
294145519Sdarrenr	fi
29531183Speter
29653024Sguidoclean: clean-include
297145519Sdarrenr	/bin/rm -rf h y.output
298255332Scy	${RM} -f core *.o ipt fils ipf ipfstat ipftest ipmon if_ipl ipflkm \
29964588Sdarrenr	vnode_if.h $(LKM) *~
300145519Sdarrenr	/bin/rm -rf sparcv7 sparcv9 mdbgen_build
301145519Sdarrenr	(cd SunOS4; $(MAKE) TOP=.. clean)
302145519Sdarrenr	-(cd SunOS5; $(MAKE) TOP=.. clean)
303145519Sdarrenr	(cd BSD; $(MAKE) TOP=.. clean)
304145519Sdarrenr	(cd HPUX; $(MAKE) BITS=32 TOP=.. clean)
305145519Sdarrenr	(cd Linux; $(MAKE) TOP=.. clean)
306145519Sdarrenr	(cd OSF; $(MAKE) TOP=.. clean)
307153881Sguido	(cd AIX; $(MAKE) TOP=.. clean)
308145519Sdarrenr	if [ "`uname -s`" = "IRIX" ]; then (cd IRIX; $(MAKE) clean); fi
309145519Sdarrenr	[ -d test ] && (cd test; $(MAKE) clean)
310145519Sdarrenr	(cd ipsend; $(MAKE) clean)
31122514Sdarrenr
31253024Sguidoclean-include:
313145519Sdarrenr	sh -c 'if [ -d netinet ] ; then cd netinet; for i in *; do if [ -h $$i ] ; then /bin/rm -f $$i; fi; done fi'
314145519Sdarrenr	sh -c 'if [ -d net ] ; then cd net; for i in *; do if [ -h $$i ] ; then /bin/rm -f $$i; fi; done fi'
315145519Sdarrenr	${RM} -f netinet/done net/done
31653024Sguido
31753024Sguidoclean-bsd: clean-include
318145519Sdarrenr	(cd BSD; make TOP=.. clean)
31922514Sdarrenr
320145519Sdarrenrclean-hpux: clean-include
321145519Sdarrenr	(cd HPUX; $(MAKE) BITS=32 clean)
322145519Sdarrenr
323145519Sdarrenrclean-osf: clean-include
324145519Sdarrenr	(cd OSF; make clean)
325145519Sdarrenr
326153881Sguidoclean-aix: clean-include
327153881Sguido	(cd AIX; make clean)
328153881Sguido
329145519Sdarrenrclean-linux: clean-include
330145519Sdarrenr	(cd Linux; make clean)
331145519Sdarrenr
33253024Sguidoclean-sunos4: clean-include
33322514Sdarrenr	(cd SunOS4; make clean)
33422514Sdarrenr
33553024Sguidoclean-sunos5: clean-include
336145519Sdarrenr	(cd SunOS5; $(MAKE) clean)
337145519Sdarrenr	/bin/rm -rf sparcv?
33822514Sdarrenr
33953024Sguidoclean-irix: clean-include
340145519Sdarrenr	(cd IRIX; $(MAKE) clean)
34131183Speter
342145519Sdarrenrh/xti.h:
343145519Sdarrenr	mkdir -p h
344145519Sdarrenr	ln -s /usr/include/sys/xti.h h
34531183Speter
346145519Sdarrenrhpux: include h/xti.h
347145519Sdarrenr	make setup CPUDIR=`HPUX/cpurev` TARGOS=HPUX
348145519Sdarrenr	(cd HPUX/`HPUX/cpurev`; $(MAKE) build TOP=../.. $(DEST) $(MFLAGS) "BITS=`getconf KERNEL_BITS`" `../makeargs`; cd ..)
349145519Sdarrenr	(cd HPUX/`HPUX/cpurev`; $(MAKE) -f Makefile.ipsend build TOP=../.. $(DEST) $(MFLAGS) "BITS=`getconf KERNEL_BITS`" `../makeargs`; cd ..)
35022514Sdarrenr
351145519Sdarrenrsunos4 solaris1:
35260841Sdarrenr	(cd SunOS4; make build TOP=.. "CC=$(CC)" $(DEST) $(MFLAGS); cd ..)
353145519Sdarrenr	(cd SunOS4; make -f Makefile.ipsend build "CC=$(CC)" TOP=.. $(DEST) $(MFLAGS); cd ..)
35424583Sdarrenr
355110917Sdarrenrsunos5 solaris2: null
356255332Scy	(cd SunOS5/$(CPUDIR); $(MAKE) build TOP=../.. "CC=$(CC)" $(DEST) $(MFLAGS) "SOLARIS2=$(SOLARIS2)" INSTANCE=$(INSTANCE); cd ..)
357145519Sdarrenr	(cd SunOS5/$(CPUDIR); $(MAKE) -f Makefile.ipsend build TOP=../.. "CC=$(CC)" $(DEST) $(MFLAGS); cd ..)
35824583Sdarrenr
359145519Sdarrenrlinux: include
360145519Sdarrenr	(cd Linux; make build LINUX=$(LINUX) TOP=.. "DEBUG=-g" "CC=$(CC)" $(MFLAGS) OBJ=$(CPUDIR) LINUXKERNEL=$(LINUXKERNEL); cd ..)
361145519Sdarrenr	(cd Linux; make ipflkm LINUX=$(LINUX) TOP=.. "DEBUG=-g" "CC=$(CC)" $(MFLAGS) OBJ=$(CPUDIR) LINUXKERNEL=$(LINUXKERNEL) WORKDIR=`pwd`; cd ..)
362145519Sdarrenr#	(cd Linux; make -f Makefile.ipsend build LINUX=$(LINUX) TOP=.. "CC=$(CC)" $(MFLAGS); cd ..)
36337074Speter
364145519Sdarrenrinstall-linux: linux
365255332Scy	(cd Linux/; make LINUX=$(LINUX) TOP=.. "DEBUG=-g" "CC=$(CC)" $(MFLAGS) OBJ=$(CPUDIR) ROOTDIR=$(BUILDROOT) install ; cd ..)
366145519Sdarrenr
36731183Speterinstall-bsd:
36831183Speter	(cd BSD/$(CPUDIR); make install "TOP=../.." $(MFLAGS); cd ..)
36931183Speter	(cd BSD/$(CPUDIR); make -f Makefile.ipsend INSTALL=$(INSTALL) install "TOP=../.." $(MFLAGS); cd ..)
37026119Sdarrenr
37122514Sdarrenrinstall-sunos4: solaris
372145519Sdarrenr	(cd SunOS4; $(MAKE) CPU=$(CPU) TOP=.. install)
37326119Sdarrenr
374145519Sdarrenrinstall-sunos5: solaris null
375172776Sdarrenr	(cd SunOS5; $(MAKE) TOP=.. install)
37622514Sdarrenr
377153881Sguidoinstall-aix:
378153881Sguido	(cd AIX/`AIX/cpurev`; make install "TOP=../.." $(MFLAGS); cd ..)
379153881Sguido#	(cd AIX/`AIX/cpurev`; make -f Makefile.ipsend INSTALL=$(INSTALL) install "TOP=../.." $(MFLAGS); cd ..)
380153881Sguido
381145519Sdarrenrinstall-hpux: hpux
382145519Sdarrenr	(cd HPUX/`HPUX/cpurev`; $(MAKE) CPU=$(CPU) TOP=../.. "BITS=`getconf KERNEL_BITS`" install)
383145519Sdarrenr
38431183Speterinstall-irix: irix
385145519Sdarrenr	(cd IRIX; smake install CPU=$(CPU) TOP=.. $(DEST) $(MFLAGS) CPUDIR=`./cpurev`)
38631183Speter
387145519Sdarrenrinstall-osf install-tru64:
388145519Sdarrenr	(cd OSF/`OSF/cpurev`; make install "TOP=../.." $(MFLAGS); cd ..)
38922514Sdarrenr
39022514Sdarrenrdo-cvs:
39122514Sdarrenr	find . -type d -name CVS -print | xargs /bin/rm -rf
39222514Sdarrenr	find . -type f -name .cvsignore -print | xargs /bin/rm -f
393145519Sdarrenr	/bin/rm -f ip_msnrpc_pxy.c ip_sunrpc_pxy.c
394110917Sdarrenr
395145519Sdarrenrip_rules.c ip_rules.h: rules/ip_rules tools/ipfcomp.c
396145519Sdarrenr	-./ipf -n -cc -f rules/ip_rules 2>/dev/null 1>&2
397145519Sdarrenr
398110917Sdarrenrnull:
399145519Sdarrenr	@if [ "`$(MAKE) -v 2>&1 | sed -ne 's/GNU.*/GNU/p'`" = "GNU" ] ; then \
400110917Sdarrenr		echo 'Do not use GNU make (gmake) to compile IPFilter'; \
401110917Sdarrenr		exit 1; \
402110917Sdarrenr	fi
403110917Sdarrenr	-@echo make ok
404130890Sdarrenr
405145519Sdarrenrmdb:
406145519Sdarrenr	/bin/rm -rf mdbgen_build
407145519Sdarrenr	mdbgen -D_KERNEL -DIPFILTER_LOG -DIPFILTER_LOOKUP -DSUNDDI \
408145519Sdarrenr	       -DIPFILTER_SCAN -DIPFILTER_LKM -DSOLARIS2=10 -n ipf_mdb -k \
409145519Sdarrenr	       -I/home/dr146992/pfil -I/home/dr146992/ipf -f \
410145519Sdarrenr	       /usr/include/netinet/in_systm.h,/usr/include/sys/ethernet.h,/usr/include/netinet/in.h,/usr/include/netinet/ip.h,/usr/include/netinet/ip_var.h,/usr/include/netinet/tcp.h,/usr/include/netinet/tcpip.h,/usr/include/netinet/ip_icmp.h,/usr/include/netinet/udp.h,ip_compat.h,ip_fil.h,ip_nat.h,ip_state.h,ip_proxy.h,ip_scan.h
411