191174Stmm#
291174Stmm# Copyright (C) 1993-2001 by Darren Reed.
391174Stmm#
491174Stmm# Redistribution and use in source and binary forms are permitted
591174Stmm# provided that this notice is preserved and due credit is given
691174Stmm# to the original author and the contributors.
791174Stmm#
891174Stmm# Id: Makefile,v 2.76.2.31 2010/01/31 16:22:53 darrenr Exp
991174Stmm#
1091174StmmSHELL=/bin/sh
1191174StmmBINDEST=/usr/local/bin
1291174StmmSBINDEST=/sbin
1391174StmmMANDIR=/usr/local/man
1491174Stmm#To test prototyping
1591174Stmm#CC=gcc -Wstrict-prototypes -Wmissing-prototypes
1691174Stmm# -Wunused -Wuninitialized
1791174Stmm#CC=gcc
1891174Stmm#CC=cc -Dconst=
1991174StmmDEBUG=-g
2091174Stmm# -O
2191174StmmCFLAGS=-I$$(TOP) -D_BSD_SOURCE
2291174StmmCPU=`uname -m`
2391174StmmCPUDIR=`uname -s|sed -e 's@/@@g'`-`uname -r`-`uname -m`
2491174StmmOBJ=.
2591174Stmm#
2691174Stmm# To enable this to work as a Loadable Kernel Module...
2791174Stmm#
2891174StmmIPFLKM=-DIPFILTER_LKM
2991174Stmm#
3091174Stmm# To enable logging of blocked/passed packets...
3191174Stmm#
3291174StmmIPFLOG=-DIPFILTER_LOG
3391174Stmm#
3491174Stmm# To enable loading filter rules compiled to C code...
3591174Stmm#
3691174Stmm#COMPIPF=-DIPFILTER_COMPILED
3791174Stmm#
3891174Stmm# To enable IPFilter compatibility with older CLI utilities
3991174Stmm#
4091174StmmCOMPATIPF=-DIPFILTER_COMPAT
4191174Stmm#
4291174Stmm# To enable synchronisation between IPFilter hosts
4392986Sobrien#
4491174Stmm#SYNC=-DIPFILTER_SYNC
4591174Stmm#
4692986Sobrien# To enable extended IPFilter functionality
4792986Sobrien#
4892986SobrienLOOKUP=-DIPFILTER_LOOKUP -DIPFILTER_SCAN
4991174Stmm#
5091174Stmm# The facility you wish to log messages from ipmon to syslogd with.
5191174Stmm#
5291174StmmLOGFAC=-DLOGFAC=LOG_LOCAL0
5391174Stmm#
5491174Stmm# To enable rules to be written with BPF syntax, uncomment these two lines.
5591174Stmm#
5691174Stmm# WARNING: If you're building a commercial product based on IPFilter, using
5791174Stmm#          this options *may* infringe at least one patent held by CheckPoint
5891174Stmm#          (5,606,668.)
5991174Stmm#
6091174Stmm#IPFBPF=-DIPFILTER_BPF -I/usr/local/include
6191174Stmm#LIBBPF=-L/usr/local/lib -lpcap
6291174Stmm#
6391174Stmm# HP-UX and Solaris require this uncommented for BPF.
6491174Stmm#
6591174Stmm#BPFILTER=bpf_filter.o
6691174Stmm#
6791174Stmm# LINUXKERNEL is the path to the top of your Linux kernel source tree.
6891174Stmm# By default IPFilter looks for /usr/src/linux, but you may have to change
6991174Stmm# it to /usr/src/linux-2.4 or similar.
7091174Stmm#
7191174StmmLINUXKERNEL=/usr/src/kernels/2.6.29.5-191.fc11.i586
7291174StmmLINUX=`uname -r | awk -F. ' { printf"%d",$$1;for(i=1;i<NF&&i<3;i++){printf("%02d",$$(i+1));}}'`
7391174Stmm#
7491174Stmm#
7591174Stmm#
7691174Stmm#BUILDROOT=/usr/src/redhat/BUILD/ipfilter
7791174StmmBUILDROOT=${HOME}/rpmbuild/BUILDROOT/ipfilter-4.1.32-1.i386
7891174Stmm
7991174Stmm#
8091174Stmm# All of the compile-time options are here, used for compiling the userland
8191174Stmm# tools for regression testing.  Well, all except for IPFILTER_LKM, of course.
8291174Stmm#
8391174StmmALLOPTS=-DIPFILTER_LOG -DIPFILTER_LOOKUP \
8491174Stmm        -DIPFILTER_SCAN -DIPFILTER_SYNC -DIPFILTER_CKSUM
8591174Stmm
8691174Stmm#
8791174Stmm# Uncomment the next 3 lines if you want to view the state table a la top(1)
8891174Stmm# (requires that you have installed ncurses).
8991174Stmm#STATETOP_CFLAGS=-DSTATETOP
9091174Stmm#
9191174Stmm# Where to find the ncurses include files (if not in default path),
9291174Stmm#
9391174Stmm#STATETOP_INC=
9491174Stmm#STATETOP_INC=-I/usr/local/include
9591174Stmm#
9691174Stmm# How to link the ncurses library
9791174Stmm#
9891174Stmm#STATETOP_LIB=-lncurses
9991174Stmm#STATETOP_LIB=-L/usr/local/lib -lncurses
10091174Stmm
10191174Stmm#
10291174Stmm# Uncomment this when building IPv6 capability.
10391174Stmm#
10491174Stmm#INET6=-DUSE_INET6
10591174Stmm#
10691174Stmm# For packets which don't match any pass rules or any block rules, set either
10791174Stmm# FR_PASS or FR_BLOCK (respectively).  It defaults to FR_PASS if left
10892889Sobrien# undefined.  This is ignored for ipftest, which can thus return three
10991174Stmm# results: pass, block and nomatch.  This is the sort of "block unless
11092889Sobrien# explicitly allowed" type #define switch.
11192889Sobrien#
11292889SobrienPOLICY=-DIPF_DEFAULT_PASS=FR_PASS
11391174Stmm#
11491174StmmMFLAGS1='CFLAGS=$(CFLAGS) $(ARCHINC) $(SOLARIS2) $(SGIREV) $(INET6)' \
11591174Stmm	"IPFLOG=$(IPFLOG)" "LOGFAC=$(LOGFAC)" "POLICY=$(POLICY)" \
11691174Stmm	"SOLARIS2=$(SOLARIS2)" "DEBUG=$(DEBUG)" "DCPU=$(CPU)" \
11791174Stmm        "LIBBPF=$(LIBBPF)" "CPUDIR=$(CPUDIR)" "IPFBPF=$(IPFBPF)" \
11891174Stmm        'STATETOP_CFLAGS=$(STATETOP_CFLAGS)' "BPFILTER=$(BPFILTER)" \
11991174Stmm        'STATETOP_INC=$(STATETOP_INC)' 'STATETOP_LIB=$(STATETOP_LIB)' \
12091174Stmm	"BITS=$(BITS)" "OBJ=$(OBJ)" "LOOKUP=$(LOOKUP)" "COMPIPF=$(COMPIPF)" \
12191174Stmm	"COMPATIPF=$(COMPATIPF)" \
12291174Stmm	'SYNC=$(SYNC)' 'ALLOPTS=$(ALLOPTS)' 'LIBBPF=$(LIBBPF)'
12391174StmmMFLAGS=$(MFLAGS1) "IPFLKM=$(IPFLKM)"
12491174StmmMACHASSERT=`/bin/ls -1 /usr/sys/*/mach_assert.h | head -1`
12591174Stmm#
12691174StmmSHELL=/bin/sh
12791174Stmm#
12891174Stmm########## ########## ########## ########## ########## ########## ##########
12991174Stmm#
13091174StmmCP=/bin/cp
13191174StmmRM=/bin/rm
13291174StmmCHMOD=/bin/chmod
13391174StmmINSTALL=install
13491174Stmm#
13591174Stmm
13691174Stmmall:
13791174Stmm	@echo "Chose one of the following targets for making IP filter:"
13891174Stmm	@echo ""
13991174Stmm	@echo "solaris	- auto-selects SunOS4.1.x/Solaris 2.3-6/Solaris2.4-6x86"
14091174Stmm	@echo "netbsd	- compile for NetBSD"
14191174Stmm	@echo "openbsd	- compile for OpenBSD"
14291174Stmm	@echo "freebsd20	- compile for FreeBSD 2.0, 2.1 or earlier"
14391174Stmm	@echo "freebsd22	- compile for FreeBSD-2.2 or greater"
14491174Stmm	@echo "freebsd	- compile for all other versions of FreeBSD"
14591174Stmm	@echo "bsd	- compile for generic 4.4BSD systems"
14691174Stmm	@echo "bsdi	- compile for BSD/OS"
14791174Stmm	@echo "irix	- compile for SGI IRIX"
14891174Stmm	@echo "hpux	- compile for HP-UX 11.00"
14991174Stmm	@echo "osf	- compile for OSF/Tru64 5.1"
15091174Stmm	@echo ""
15191174Stmm
15291174Stmmtests:
15391174Stmm	@if [ -d test ]; then (cd test; make) \
15491174Stmm	else echo test directory not present, sorry; fi
15591174Stmm
15691174Stmmretest:
15791174Stmm	@if [ -d test ]; then (cd test; make clean && make) \
15891174Stmm	else echo test directory not present, sorry; fi
15991174Stmm
16091174Stmminclude:
16191174Stmm	-mkdir -p net netinet
16291174Stmm	if [ ! -f netinet/done ] ; then \
16391174Stmm		(cd netinet; ln -s ../*.h .; ln -s ../ip_*_pxy.c .;); \
16491174Stmm		(cd netinet; ln -s ../ipsend/tcpip.h tcpip.h); \
16591174Stmm		touch netinet/done; \
16691174Stmm	fi
16791174Stmm	-(cd netinet; ln -s ../ip_rules.h ip_rules.h)
16891174Stmm	if [ ! -f net/done ] ; then \
16991174Stmm		(cd net; ln -s ../radix_ipf.h .; ); \
17091174Stmm		touch net/done; \
17191174Stmm	fi
17291174Stmm
17391174Stmmsunos solaris: include
17491174Stmm	MAKE="$(MAKE)" MAKEFLAGS="$(MAKEFLAGS)" BPFILTER=$(BPFILTER) \
17591174Stmm		CC="$(CC)" DEBUG="$(DEBUG)" ./buildsunos
17691174Stmm
17791174Stmmfreebsd:
17891174Stmm	make freebsd`uname -r|cut -c1`
17991174Stmm
18091174Stmmfreebsd22: include
18191174Stmm	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
18291174Stmm	-rm -f BSD/$(CPUDIR)/ioconf.h
18391174Stmm	-if [ x$(IPFILKERN) != x ] ; then \
18491174Stmm		if [ -f /sys/compile/$(IPFILKERN)/ioconf.h ] ; then \
18591174Stmm			ln -s /sys/compile/$(IPFILKERN)/ioconf.h BSD/$$y; \
18691174Stmm		else \
18791174Stmm			ln -s /sys/$(IPFILKERN)/ioconf.h BSD/$$y; \
18891174Stmm		fi \
18991174Stmm	else \
19091174Stmm		x=`uname -v|sed -e 's@^.*:\(/[^: ]*\).*$$@\1/ioconf.h@'`; \
19191174Stmm		y=`uname -s|sed -e 's@/@@g'`-`uname -r`-`uname -m`; \
19291174Stmm		if [ ! -f $$x ] ; then \
19391174Stmm			echo -n "Can't find ioconf.h at $$x "; \
19491174Stmm			exit 1;\
19591174Stmm		else \
19691174Stmm			ln -s $$x BSD/$$y ; \
19791174Stmm		fi \
19891174Stmm	fi
19991174Stmm	make freebsd20
20091174Stmm
20191174Stmmfreebsd5 freebsd6 freebsd7 freebsd8: include
20291174Stmm	if [ x$(INET6) = x ] ; then \
20391174Stmm		echo "#undef INET6" > opt_inet6.h; \
20491174Stmm	else \
20591174Stmm		echo "#define INET6" > opt_inet6.h; \
20691174Stmm	fi
20791174Stmm	if [ "x$(IPFBPF)" = "x" ] ; then \
20891174Stmm		echo "#undef NBPF" > opt_bpf.h; \
20991174Stmm		echo "#undef NBPFILTER" > opt_bpf.h; \
21091174Stmm		echo "#undef DEV_BPF" > opt_bpf.h; \
21191174Stmm	else \
21291174Stmm		echo "#define NBPF" > opt_bpf.h; \
21391174Stmm		echo "#define NBPFILTER" > opt_bpf.h; \
21491174Stmm		echo "#define DEV_BPF" > opt_bpf.h; \
21591174Stmm	fi
21691174Stmm	if [ x$(ENABLE_PFIL) = x ] ; then \
21791174Stmm		echo "#undef PFIL_HOOKS" > opt_pfil.h; \
21891174Stmm	else \
21991174Stmm		echo "#define PFIL_HOOKS" > opt_pfil.h; \
22091174Stmm	fi
22191174Stmm
22291174Stmm	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
22391174Stmm	(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 ..)
22491174Stmm#	(cd BSD/$(CPUDIR); make -f Makefile.ipsend build TOP=../.. $(MFLAGS1); cd ..)
22591174Stmm
22691174Stmmfreebsd4 : include
22791174Stmm	if [ x$(INET6) = x ] ; then \
22891174Stmm		echo "#undef INET6" > opt_inet6.h; \
22991174Stmm	else \
23091174Stmm		echo "#define INET6" > opt_inet6.h; \
231	fi
232	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
233	(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 ..)
234	(cd BSD/$(CPUDIR); make -f Makefile.ipsend build TOP=../.. $(MFLAGS1); cd ..)
235
236freebsd3 freebsd30: include
237	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
238	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS1) "ML=mlf_ipl.c" "MLR=mlf_rule.o" LKM= LKMR=; cd ..)
239	(cd BSD/$(CPUDIR); make -f Makefile.ipsend build TOP=../.. $(MFLAGS1); cd ..)
240
241netbsd: include
242	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
243	@if [ ! -d /sys -o ! -d /sys/arch ] ; then \
244		echo "*****************************************************"; \
245		echo "*                                                   *"; \
246		echo "* Please extract source code to create /sys and     *";\
247		echo "* /sys/arch and run 'config GENERIC'                *"; \
248		echo "*                                                   *"; \
249		echo "*****************************************************"; \
250		exit 1; \
251	fi
252	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) 'DLKM=-D_LKM' "ML=mln_ipl.c" LKMR= "MLR=mln_rule.o"; cd ..)
253#	(cd BSD/$(CPUDIR); make -f Makefile.ipsend build TOP=../.. $(MFLAGS); cd ..)
254
255openbsd: include
256	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
257	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) 'DLKM=-D_LKM' "ML=mlo_ipl.c" LKMR= "MLR=mlo_rule.o"; cd ..)
258	(cd BSD/$(CPUDIR); make -f Makefile.ipsend build TOP=../.. $(MFLAGS); cd ..)
259
260freebsd20 freebsd21: include
261	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
262	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) "ML=mlf_ipl.c" "MLR=mlf_rule.o"; cd ..)
263	(cd BSD/$(CPUDIR); make -f Makefile.ipsend build TOP=../.. $(MFLAGS); cd ..)
264
265osf tru64: null include
266	make setup "TARGOS=OSF" "CPUDIR=`OSF/cpurev`"
267	(cd OSF/`OSF/cpurev`; make build TRU64=`uname -v` TOP=../.. "DEBUG=-g" $(MFLAGS) "MACHASSERT=$(MACHASSERT)" "OSREV=`../cpurev`"; cd ..)
268	(cd OSF/`OSF/cpurev`; make -f Makefile.ipsend build TRU64=`uname -v` TOP=../.. $(MFLAGS) "OSREV=`../cpurev`"; cd ..)
269
270aix: null include
271	make setup "TARGOS=AIX" "CPUDIR=`AIX/cpurev`"
272	(cd AIX/`AIX/cpurev`; make build AIX=`uname -v` TOP=../.. "DEBUG=-g" $(MFLAGS) "OSREV=`../cpurev`" BITS=`../bootbits.sh`; cd ..)
273#	(cd AIX/`AIX/cpurev`; make -f Makefile.ipsend build AIX=`uname -v` TOP=../.. $(MFLAGS) "OSREV=`../cpurev`"; cd ..)
274
275bsd: include
276	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
277	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) 'DLKM=-D_LKM' "ML=mln_ipl.c" "MLR=mln_rule.o"; cd ..)
278	(cd BSD/$(CPUDIR); make -f Makefile.ipsend build TOP=../.. $(MFLAGS); cd ..)
279
280bsdi bsdos: include
281	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
282	(cd BSD/$(CPUDIR); make build "CC=$(CC)" TOP=../.. $(MFLAGS) LKM= LKMR= ; cd ..)
283	(cd BSD/$(CPUDIR); make -f Makefile.ipsend build "CC=$(CC)" TOP=../.. $(MFLAGS); cd ..)
284
285irix IRIX: include
286	make setup TARGOS=IRIX CPUDIR=`IRIX/cpurev`
287	if [ "x${SGIREV}" = "x" ] ; then \
288		make irix "SGIREV=-D_KMEMUSER -DIRIX=`IRIX/getrev`"; \
289	else \
290		(cd IRIX/`IRIX/cpurev`; smake -l -J 1 build TOP=../.. $(DEST) $(MFLAGS) IRIX=`../getrev` SGI=$$(IRIX) CPUDIR=`../cpurev`; cd ..); \
291		(cd IRIX/`IRIX/cpurev`; make -f Makefile.ipsend build TOP=../.. $(DEST) $(MFLAGS) IRIX=`../getrev` SGI=$$(IRIX) CPUDIR=`../cpurev`; cd ..); \
292	fi
293
294setup:
295	-if [ ! -d $(TARGOS)/$(CPUDIR) ] ; then mkdir $(TARGOS)/$(CPUDIR); fi
296	-rm -f $(TARGOS)/$(CPUDIR)/Makefile $(TARGOS)/$(CPUDIR)/Makefile.ipsend
297	-ln -s ../Makefile $(TARGOS)/$(CPUDIR)/Makefile
298	-ln -s ../Makefile.ipsend $(TARGOS)/$(CPUDIR)/Makefile.ipsend
299	-if [ -f $(TARGOS)/Makefile.common ] ; then \
300		rm -f $(TARGOS)/$(CPUDIR)/Makefile.common; \
301		ln -s ../Makefile.common $(TARGOS)/$(CPUDIR)/Makefile.common;\
302	fi
303
304clean: clean-include
305	/bin/rm -rf h y.output
306	${RM} -f core *.o ipt fils ipf ipfstat ipftest ipmon if_ipl \
307	vnode_if.h $(LKM) *~
308	/bin/rm -rf sparcv7 sparcv9 mdbgen_build
309	(cd SunOS4; $(MAKE) TOP=.. clean)
310	-(cd SunOS5; $(MAKE) TOP=.. clean)
311	(cd BSD; $(MAKE) TOP=.. clean)
312	(cd HPUX; $(MAKE) BITS=32 TOP=.. clean)
313	(cd Linux; $(MAKE) TOP=.. clean)
314	(cd OSF; $(MAKE) TOP=.. clean)
315	(cd AIX; $(MAKE) TOP=.. clean)
316	if [ "`uname -s`" = "IRIX" ]; then (cd IRIX; $(MAKE) clean); fi
317	[ -d test ] && (cd test; $(MAKE) clean)
318	(cd ipsend; $(MAKE) clean)
319
320clean-include:
321	sh -c 'if [ -d netinet ] ; then cd netinet; for i in *; do if [ -h $$i ] ; then /bin/rm -f $$i; fi; done fi'
322	sh -c 'if [ -d net ] ; then cd net; for i in *; do if [ -h $$i ] ; then /bin/rm -f $$i; fi; done fi'
323	${RM} -f netinet/done net/done
324
325clean-bsd: clean-include
326	(cd BSD; make TOP=.. clean)
327
328clean-hpux: clean-include
329	(cd HPUX; $(MAKE) BITS=32 clean)
330
331clean-osf: clean-include
332	(cd OSF; make clean)
333
334clean-aix: clean-include
335	(cd AIX; make clean)
336
337clean-linux: clean-include
338	(cd Linux; make clean)
339
340clean-sunos4: clean-include
341	(cd SunOS4; make clean)
342
343clean-sunos5: clean-include
344	(cd SunOS5; $(MAKE) clean)
345	/bin/rm -rf sparcv?
346
347clean-irix: clean-include
348	(cd IRIX; $(MAKE) clean)
349
350h/xti.h:
351	mkdir -p h
352	ln -s /usr/include/sys/xti.h h
353
354hpux: include h/xti.h
355	make setup CPUDIR=`HPUX/cpurev` TARGOS=HPUX
356	(cd HPUX/`HPUX/cpurev`; $(MAKE) build TOP=../.. $(DEST) $(MFLAGS) "BITS=`getconf KERNEL_BITS`" `../makeargs`; cd ..)
357	(cd HPUX/`HPUX/cpurev`; $(MAKE) -f Makefile.ipsend build TOP=../.. $(DEST) $(MFLAGS) "BITS=`getconf KERNEL_BITS`" `../makeargs`; cd ..)
358
359sunos4 solaris1:
360	(cd SunOS4; make build TOP=.. "CC=$(CC)" $(DEST) $(MFLAGS); cd ..)
361	(cd SunOS4; make -f Makefile.ipsend build "CC=$(CC)" TOP=.. $(DEST) $(MFLAGS); cd ..)
362
363sunos5 solaris2: null
364	(cd SunOS5/$(CPUDIR); $(MAKE) build TOP=../.. "CC=$(CC)" $(DEST) $(MFLAGS) "SOLARIS2=$(SOLARIS2)"; cd ..)
365	(cd SunOS5/$(CPUDIR); $(MAKE) -f Makefile.ipsend build TOP=../.. "CC=$(CC)" $(DEST) $(MFLAGS); cd ..)
366
367linux: include
368	(cd Linux; make build LINUX=$(LINUX) TOP=.. "DEBUG=-g" "CC=$(CC)" $(MFLAGS) OBJ=$(CPUDIR) LINUXKERNEL=$(LINUXKERNEL); cd ..)
369	(cd Linux; make ipflkm LINUX=$(LINUX) TOP=.. "DEBUG=-g" "CC=$(CC)" $(MFLAGS) OBJ=$(CPUDIR) LINUXKERNEL=$(LINUXKERNEL) WORKDIR=`pwd`; cd ..)
370#	(cd Linux; make -f Makefile.ipsend build LINUX=$(LINUX) TOP=.. "CC=$(CC)" $(MFLAGS); cd ..)
371
372install-linux: linux
373	(cd Linux/; make LINUX=$(LINUX) TOP=.. "DEBUG=-g" "CC=$(CC)" $(MFLAGS) OBJ=$(CPUDIR) ROOTDIR=$(BUILDROOT) install ; cd ..)
374
375install-bsd:
376	(cd BSD/$(CPUDIR); make install "TOP=../.." $(MFLAGS); cd ..)
377	(cd BSD/$(CPUDIR); make -f Makefile.ipsend INSTALL=$(INSTALL) install "TOP=../.." $(MFLAGS); cd ..)
378
379install-sunos4: solaris
380	(cd SunOS4; $(MAKE) CPU=$(CPU) TOP=.. install)
381
382install-sunos5: solaris null
383	(cd SunOS5; $(MAKE) TOP=.. install)
384
385install-aix:
386	(cd AIX/`AIX/cpurev`; make install "TOP=../.." $(MFLAGS); cd ..)
387#	(cd AIX/`AIX/cpurev`; make -f Makefile.ipsend INSTALL=$(INSTALL) install "TOP=../.." $(MFLAGS); cd ..)
388
389install-hpux: hpux
390	(cd HPUX/`HPUX/cpurev`; $(MAKE) CPU=$(CPU) TOP=../.. "BITS=`getconf KERNEL_BITS`" install)
391
392install-irix: irix
393	(cd IRIX; smake install CPU=$(CPU) TOP=.. $(DEST) $(MFLAGS) CPUDIR=`./cpurev`)
394
395install-osf install-tru64:
396	(cd OSF/`OSF/cpurev`; make install "TOP=../.." $(MFLAGS); cd ..)
397
398do-cvs:
399	find . -type d -name CVS -print | xargs /bin/rm -rf
400	find . -type f -name .cvsignore -print | xargs /bin/rm -f
401	/bin/rm -f ip_msnrpc_pxy.c ip_sunrpc_pxy.c
402
403ip_rules.c ip_rules.h: rules/ip_rules tools/ipfcomp.c
404	-./ipf -n -cc -f rules/ip_rules 2>/dev/null 1>&2
405
406null:
407	@if [ "`$(MAKE) -v 2>&1 | sed -ne 's/GNU.*/GNU/p'`" = "GNU" ] ; then \
408		echo 'Do not use GNU make (gmake) to compile IPFilter'; \
409		exit 1; \
410	fi
411	-@echo make ok
412
413mdb:
414	/bin/rm -rf mdbgen_build
415	mdbgen -D_KERNEL -DIPFILTER_LOG -DIPFILTER_LOOKUP -DSUNDDI \
416	       -DIPFILTER_SCAN -DIPFILTER_LKM -DSOLARIS2=10 -n ipf_mdb -k \
417	       -I/home/dr146992/pfil -I/home/dr146992/ipf -f \
418	       /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
419