Makefile revision 113109
122514Sdarrenr# 280486Sdarrenr# Copyright (C) 1993-2001 by Darren Reed. 322514Sdarrenr# 480486Sdarrenr# See the IPFILTER.LICENCE file for details on licencing. 522514Sdarrenr# 6113109Sdarrenr# $FreeBSD: head/contrib/ipfilter/Makefile 113109 2003-04-05 09:25:19Z darrenr $ 7110917Sdarrenr# $Id: Makefile,v 2.11.2.15 2002/12/02 04:22:56 darrenr Exp $ 822514Sdarrenr# 926119SdarrenrBINDEST=/usr/local/bin 1026119SdarrenrSBINDEST=/sbin 1126119SdarrenrMANDIR=/usr/local/man 1224583Sdarrenr#To test prototyping 1353024SguidoCC=gcc -Wstrict-prototypes -Wmissing-prototypes 1453024Sguido#CC=gcc 1534739Speter#CC=cc -Dconst= 1622514SdarrenrDEBUG=-g 1764588SdarrenrTOP=../.. 1867615SdarrenrCFLAGS=-I$$(TOP) 1924583SdarrenrCPU=`uname -m` 2031183SpeterCPUDIR=`uname -s|sed -e 's@/@@g'`-`uname -r`-`uname -m` 2180486SdarrenrIPFILKERN=`/bin/ls -1tr /usr/src/sys/compile | grep -v .bak | tail -1` 2222514Sdarrenr# 2322514Sdarrenr# To enable this to work as a Loadable Kernel Module... 2422514Sdarrenr# 2522514SdarrenrIPFLKM=-DIPFILTER_LKM 2622514Sdarrenr# 2722514Sdarrenr# To enable logging of blocked/passed packets... 2822514Sdarrenr# 2922514SdarrenrIPFLOG=-DIPFILTER_LOG 3022514Sdarrenr# 3122514Sdarrenr# The facility you wish to log messages from ipmon to syslogd with. 3222514Sdarrenr# 33113109SdarrenrLOGFAC=-DLOGFAC=LOG_SECURITY 3460841Sdarrenr 3522514Sdarrenr# 3660841Sdarrenr# Uncomment the next 3 lines if you want to view the state table a la top(1) 3760841Sdarrenr# (requires that you have installed ncurses). 3892686SdarrenrSTATETOP_CFLAGS=-DSTATETOP 3960841Sdarrenr# 4060841Sdarrenr# Where to find the ncurses include files (if not in default path), 4160841Sdarrenr# 4260841Sdarrenr#STATETOP_INC= 4360841Sdarrenr#STATETOP_INC=-I/usr/local/include 4460841Sdarrenr# 4560841Sdarrenr# How to link the ncurses library 4660841Sdarrenr# 4792686SdarrenrSTATETOP_LIB=-lcurses 4860841Sdarrenr#STATETOP_LIB=-L/usr/local/lib -lncurses 4960841Sdarrenr 5060841Sdarrenr# 5160841Sdarrenr# Uncomment this when building IPv6 capability. 5260841Sdarrenr# 5360841Sdarrenr#INET6=-DUSE_INET6 5460841Sdarrenr# 5522514Sdarrenr# For packets which don't match any pass rules or any block rules, set either 5622514Sdarrenr# FR_PASS or FR_BLOCK (respectively). It defaults to FR_PASS if left 5722514Sdarrenr# undefined. This is ignored for ipftest, which can thus return three 5822514Sdarrenr# results: pass, block and nomatch. This is the sort of "block unless 5922514Sdarrenr# explicitly allowed" type #define switch. 6022514Sdarrenr# 6123279SpeterPOLICY=-DIPF_DEFAULT_PASS=FR_PASS 6222514Sdarrenr# 6392686SdarrenrMFLAGS1='CFLAGS=$(CFLAGS) $(ARCHINC) $(SOLARIS2) $(INET6) $(IPFLOG)' \ 6422514Sdarrenr "IPFLOG=$(IPFLOG)" "LOGFAC=$(LOGFAC)" "POLICY=$(POLICY)" \ 6531183Speter "SOLARIS2=$(SOLARIS2)" "DEBUG=$(DEBUG)" "DCPU=$(CPU)" \ 6660841Sdarrenr "CPUDIR=$(CPUDIR)" 'STATETOP_CFLAGS=$(STATETOP_CFLAGS)' \ 6764588Sdarrenr 'STATETOP_INC=$(STATETOP_INC)' 'STATETOP_LIB=$(STATETOP_LIB)' \ 6864588Sdarrenr "BITS=$(BITS)" "OBJ=$(OBJ)" 6960841SdarrenrDEST="BINDEST=$(BINDEST)" "SBINDEST=$(SBINDEST)" "MANDIR=$(MANDIR)" 7053024SguidoMFLAGS=$(MFLAGS1) "IPFLKM=$(IPFLKM)" 7122514Sdarrenr# 7231183SpeterSHELL=/bin/sh 7331183Speter# 7422514Sdarrenr########## ########## ########## ########## ########## ########## ########## 7522514Sdarrenr# 7622514SdarrenrCP=/bin/cp 7722514SdarrenrRM=/bin/rm 7822514SdarrenrCHMOD=/bin/chmod 7922514SdarrenrINSTALL=install 8022514Sdarrenr# 8122514Sdarrenr 8222514Sdarrenrall: 8322514Sdarrenr @echo "Chose one of the following targets for making IP filter:" 8422514Sdarrenr @echo "" 8553024Sguido @echo "solaris - auto-selects SunOS4.1.x/Solaris 2.3-6/Solaris2.4-6x86" 8631183Speter @echo "netbsd - compile for NetBSD" 8731183Speter @echo "openbsd - compile for OpenBSD" 8831183Speter @echo "freebsd - compile for FreeBSD 2.0, 2.1 or earlier" 8931183Speter @echo "freebsd22 - compile for FreeBSD-2.2 or greater" 9053024Sguido @echo "freebsd3 - compile for FreeBSD-3.x" 9160841Sdarrenr @echo "freebsd4 - compile for FreeBSD-4.x" 9231183Speter @echo "bsd - compile for generic 4.4BSD systems" 9322514Sdarrenr @echo "bsdi - compile for BSD/OS" 9431183Speter @echo "irix - compile for SGI IRIX" 9522514Sdarrenr @echo "" 9622514Sdarrenr 9722514Sdarrenrtests: 9822514Sdarrenr @if [ -d test ]; then (cd test; make) \ 9922514Sdarrenr else echo test directory not present, sorry; fi 10022514Sdarrenr 10126119Sdarrenrinclude: 10253024Sguido if [ ! -f netinet/done ] ; then \ 10392686Sdarrenr (cd netinet; ln -s ../*.h .; ln -s ../ip_*_pxy.c .; ); \ 10431183Speter (cd netinet; ln -s ../ipsend/tcpip.h tcpip.h); \ 10531183Speter touch netinet/done; \ 10631183Speter fi 10726119Sdarrenr 10826119Sdarrenrsunos solaris: include 10972003Sdarrenr CC="$(CC)" ./buildsunos 11022514Sdarrenr 11153024Sguidofreebsd22: include 11231183Speter make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)" 11331183Speter -rm -f BSD/$(CPUDIR)/ioconf.h 11426119Sdarrenr @if [ -n $(IPFILKERN) ] ; then \ 11553024Sguido if [ -f /sys/compile/$(IPFILKERN)/ioconf.h ] ; then \ 11653024Sguido ln -s /sys/compile/$(IPFILKERN)/ioconf.h BSD/$(CPUDIR); \ 11737074Speter else \ 11831183Speter ln -s /sys/$(IPFILKERN)/ioconf.h BSD/$(CPUDIR); \ 11937074Speter fi \ 12026119Sdarrenr elif [ ! -f `uname -v|sed -e 's@^.*:\(/[^: ]*\).*@\1@'`/ioconf.h ] ; then \ 12126119Sdarrenr echo -n "Can't find ioconf.h in "; \ 12226119Sdarrenr echo `uname -v|sed -e 's@^.*:\(/[^: ]*\).*@\1@'`; \ 12324583Sdarrenr exit 1;\ 12426119Sdarrenr else \ 12526119Sdarrenr ln -s `uname -v|sed -e 's@^.*:\(/[^: ]*\).*@\1@'`/ioconf.h BSD/$(CPU) ; \ 12624583Sdarrenr fi 12726119Sdarrenr make freebsd 12822514Sdarrenr 12960841Sdarrenrfreebsd4: include 13063516Sdarrenr if [ x$INET6 = x ] ; then \ 13163516Sdarrenr echo "#undef INET6" > opt_inet6.h; \ 13263516Sdarrenr else \ 13363516Sdarrenr echo "#define INET6" > opt_inet6.h; \ 13463516Sdarrenr fi 13560841Sdarrenr make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)" 13664588Sdarrenr (cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) "ML=mlfk_ipl.c" "MLD=mlfk_ipl.c" "LKM=ipf.ko" "DLKM=-DKLD_MODULE -I/sys"; cd ..) 13760841Sdarrenr (cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS1); cd ..) 13860841Sdarrenr 13953024Sguidofreebsd3 freebsd30: include 14053024Sguido make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)" 14153024Sguido (cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS1) "ML=mlf_ipl.c" LKM= ; cd ..) 14253024Sguido (cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS1); cd ..) 14353024Sguido 14426119Sdarrenrnetbsd: include 14531183Speter make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)" 14637074Speter (cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) 'DLKM=-D_LKM' "ML=mln_ipl.c"; cd ..) 14737074Speter (cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..) 14826119Sdarrenr 14931183Speteropenbsd openbsd21: include 15031183Speter make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)" 15137074Speter (cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) 'DLKM=-D_LKM' "ML=mln_ipl.c"; cd ..) 15237074Speter (cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..) 15331183Speter 15426119Sdarrenrfreebsd freebsd20 freebsd21: include 15531183Speter make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)" 15637074Speter (cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) "ML=mlf_ipl.c"; cd ..) 15737074Speter (cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..) 15826119Sdarrenr 15926119Sdarrenrbsd: include 16031183Speter make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)" 16137074Speter (cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS); cd ..) 16237074Speter (cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..) 16322514Sdarrenr 16426119Sdarrenrbsdi bsdos: include 16531183Speter make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)" 16637074Speter (cd BSD/$(CPUDIR); make build "CC=$(CC)" TOP=../.. $(MFLAGS) LKM= ; cd ..) 16737074Speter (cd BSD/$(CPUDIR); make -f Makefile.ipsend "CC=$(CC)" TOP=../.. $(MFLAGS); cd ..) 16822514Sdarrenr 16931183Speteririx IRIX: include 17031183Speter make setup "TARGOS=IRIX" "CPUDIR=$(CPUDIR)" 17192686Sdarrenr -(cd IRIX/$(CPUDIR); if [ $(MAKE) = make ] ; then make -f Makefile.std build TOP=../.. $(DEST) SGI=`../getrev` $(MFLAGS); else smake build SGI=`../getrev` TOP=../.. $(DEST) $(MFLAGS); fi;) 17292686Sdarrenr -(cd IRIX/$(CPUDIR); if [ $(MAKE) = make ] ; then make -f Makefile.ipsend.std SGI=`../getrev` TOP=../.. $(DEST) $(MFLAGS); else smake -f Makefile.ipsend SGI=`../getrev` TOP=../.. $(DEST) $(MFLAGS); fi) 17331183Speter 17431183Speterlinux: include 17531183Speter make setup "TARGOS=Linux" "CPUDIR=$(CPUDIR)" 17631183Speter ./buildlinux 17731183Speter 17831183Speterlinuxrev: 17960841Sdarrenr (cd Linux/$(CPUDIR); make build TOP=../.. $(DEST) $(MFLAGS) LKM= ; cd ..) 18060841Sdarrenr (cd Linux/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(DEST) $(MFLAGS); cd ..) 18131183Speter 18231183Spetersetup: 18331183Speter -if [ ! -d $(TARGOS)/$(CPUDIR) ] ; then mkdir $(TARGOS)/$(CPUDIR); fi 18431183Speter -rm -f $(TARGOS)/$(CPUDIR)/Makefile $(TARGOS)/$(CPUDIR)/Makefile.ipsend 18531183Speter -ln -s ../Makefile $(TARGOS)/$(CPUDIR)/Makefile 18667615Sdarrenr -if [ ! -f $(TARGOS)/$(CPUDIR)/Makefile.std -a \ 18767615Sdarrenr -f $(TARGOS)/Makefile.std ] ; then \ 18867615Sdarrenr ln -s ../Makefile.std $(TARGOS)/$(CPUDIR)/Makefile.std; \ 18967615Sdarrenr fi 19067615Sdarrenr -if [ ! -f $(TARGOS)/$(CPUDIR)/Makefile.ipsend.std -a \ 19167615Sdarrenr -f $(TARGOS)/Makefile.ipsend.std ] ; then \ 19267615Sdarrenr ln -s ../Makefile.ipsend.std $(TARGOS)/$(CPUDIR)/Makefile.ipsend.std; \ 19367615Sdarrenr fi 19431183Speter -ln -s ../Makefile.ipsend $(TARGOS)/$(CPUDIR)/Makefile.ipsend 19531183Speter 19653024Sguidoclean: clean-include 19722514Sdarrenr ${RM} -f core *.o ipt fils ipf ipfstat ipftest ipmon if_ipl \ 19864588Sdarrenr vnode_if.h $(LKM) *~ 19964588Sdarrenr ${RM} -rf sparcv7 sparcv9 20060841Sdarrenr (cd SunOS4; make clean) 20160841Sdarrenr (cd SunOS5; make clean) 20222514Sdarrenr (cd BSD; make clean) 20331183Speter (cd Linux; make clean) 20431183Speter if [ "`uname -s`" = "IRIX" ]; then (cd IRIX; make clean); fi 20522514Sdarrenr [ -d test ] && (cd test; make clean) 20622514Sdarrenr (cd ipsend; make clean) 20722514Sdarrenr 20853024Sguidoclean-include: 20953024Sguido sh -c 'cd netinet; for i in *; do if [ -h $$i ] ; then /bin/rm -f $$i; fi; done' 21053024Sguido ${RM} -f netinet/done 21153024Sguido 21253024Sguidoclean-bsd: clean-include 21322514Sdarrenr (cd BSD; make clean) 21422514Sdarrenr 21553024Sguidoclean-sunos4: clean-include 21622514Sdarrenr (cd SunOS4; make clean) 21722514Sdarrenr 21853024Sguidoclean-sunos5: clean-include 21922514Sdarrenr (cd SunOS5; make clean) 22022514Sdarrenr 22153024Sguidoclean-irix: clean-include 22231183Speter (cd IRIX; make clean) 22331183Speter 22453024Sguidoclean-linux: clean-include 22531183Speter (cd Linux; make clean) 22631183Speter 22722514Sdarrenrget: 22822514Sdarrenr -@for i in ipf.c ipt.h solaris.c ipf.h kmem.c ipft_ef.c linux.h \ 22922514Sdarrenr ipft_pc.c fil.c ipft_sn.c mln_ipl.c fils.c ipft_td.c \ 23022514Sdarrenr mls_ipl.c ip_compat.h ipl.h opt.c ip_fil.c ipl_ldev.c \ 23122514Sdarrenr parse.c ip_fil.h ipmon.c pcap.h ip_sfil.c ipt.c snoop.h \ 23222514Sdarrenr ip_state.c ip_state.h ip_nat.c ip_nat.h ip_frag.c \ 23322514Sdarrenr ip_frag.h ip_sfil.c misc.c; do \ 23422514Sdarrenr if [ ! -f $$i ] ; then \ 23522514Sdarrenr echo "getting $$i"; \ 23622514Sdarrenr sccs get $$i; \ 23722514Sdarrenr fi \ 23822514Sdarrenr done 23922514Sdarrenr 240110917Sdarrenrsunos4 solaris1: null 24160841Sdarrenr (cd SunOS4; make build TOP=.. "CC=$(CC)" $(DEST) $(MFLAGS); cd ..) 24260841Sdarrenr (cd SunOS4; make -f Makefile.ipsend "CC=$(CC)" TOP=.. $(DEST) $(MFLAGS); cd ..) 24324583Sdarrenr 244110917Sdarrenrsunos5 solaris2: null 24560841Sdarrenr (cd SunOS5/$(CPUDIR); make build TOP=../.. "CC=$(CC)" $(DEST) $(MFLAGS) "SOLARIS2=$(SOLARIS2)" "CPU=-Dsparc -D__sparc__"; cd ..) 24660841Sdarrenr (cd SunOS5/$(CPUDIR); make -f Makefile.ipsend TOP=../.. "CC=$(CC)" $(DEST) $(MFLAGS); cd ..) 24724583Sdarrenr 248110917Sdarrenrsunos5x86 solaris2x86: null 24960841Sdarrenr (cd SunOS5/$(CPUDIR); make build TOP=../.. "CC=$(CC)" $(DEST) $(MFLAGS) "SOLARIS2=$(SOLARIS2)" "CPU=-Di86pc -Di386 -D__i386__"; cd ..) 25060841Sdarrenr (cd SunOS5/$(CPUDIR); make -f Makefile.ipsend TOP=../.. "CC=$(CC)" $(DEST) $(MFLAGS); cd ..) 25124583Sdarrenr 25237074Speterinstall-linux: 25360841Sdarrenr (cd Linux/$(CPUDIR); make install "TOP=../.." $(DEST) $(MFLAGS); cd ..) 25460841Sdarrenr (cd Linux/$(CPUDIR); make -f Makefile.ipsend INSTALL=$(INSTALL) install "TOP=../.." $(DEST) $(MFLAGS); cd ..) 25537074Speter 25631183Speterinstall-bsd: 25731183Speter (cd BSD/$(CPUDIR); make install "TOP=../.." $(MFLAGS); cd ..) 25831183Speter (cd BSD/$(CPUDIR); make -f Makefile.ipsend INSTALL=$(INSTALL) install "TOP=../.." $(MFLAGS); cd ..) 25926119Sdarrenr 26022514Sdarrenrinstall-sunos4: solaris 26192686Sdarrenr (cd SunOS4; $(MAKE) "CPU=$(CPU)" "TOP=.." install) 26226119Sdarrenr 26322514Sdarrenrinstall-sunos5: solaris 26480486Sdarrenr (cd SunOS5; $(MAKE) "CPUDIR=`uname -p`-`uname -r`" "CPU=$(CPU) TOP=.." install) 26522514Sdarrenr 26631183Speterinstall-irix: irix 26760841Sdarrenr (cd IRIX; smake install "CPU=$(CPU) TOP=.." $(DEST) $(MFLAGS)) 26831183Speter 26922514Sdarrenrrcsget: 27022514Sdarrenr -@for i in ipf.c ipt.h solaris.c ipf.h kmem.c ipft_ef.c linux.h \ 27122514Sdarrenr ipft_pc.c fil.c ipft_sn.c mln_ipl.c fils.c ipft_td.c \ 27222514Sdarrenr mls_ipl.c ip_compat.h ipl.h opt.c ip_fil.c ipl_ldev.c \ 27322514Sdarrenr parse.c ip_fil.h ipmon.c pcap.h ip_sfil.c ipt.c snoop.h \ 27422514Sdarrenr ip_state.c ip_state.h ip_nat.c ip_nat.h ip_frag.c \ 27522514Sdarrenr ip_frag.h ip_sfil.c misc.c; do \ 27622514Sdarrenr if [ ! -f $$i ] ; then \ 27722514Sdarrenr echo "getting $$i"; \ 27822514Sdarrenr co $$i; \ 27922514Sdarrenr fi \ 28022514Sdarrenr done 28122514Sdarrenr 28222514Sdarrenrdo-cvs: 28322514Sdarrenr find . -type d -name CVS -print | xargs /bin/rm -rf 28422514Sdarrenr find . -type f -name .cvsignore -print | xargs /bin/rm -f 285110917Sdarrenr 286110917Sdarrenrnull: 287110917Sdarrenr -@if [ "`$(MAKE) -v 2>&1 | sed -ne 's/GNU.*/GNU/p'`" = "GNU" ] ; then \ 288110917Sdarrenr echo 'Do not use GNU make (gmake) to compile IPFilter'; \ 289110917Sdarrenr exit 1; \ 290110917Sdarrenr fi 291110917Sdarrenr -@echo make ok 292