Makefile revision 64588
155714Skris# 255714Skris# Copyright (C) 1993-2000 by Darren Reed. 355714Skris# 455714Skris# Redistribution and use in source and binary forms are permitted 559191Skris# provided that this notice is preserved and due credit is given 659191Skris# to the original author and the contributors. 755714Skris# 855714Skris# $Id: Makefile,v 2.11.2.3 2000/08/05 14:50:00 darrenr Exp $ 955714Skris# 1055714SkrisBINDEST=/usr/local/bin 1155714SkrisSBINDEST=/sbin 1255714SkrisMANDIR=/usr/local/man 1355714Skris#To test prototyping 1455714SkrisCC=gcc -Wstrict-prototypes -Wmissing-prototypes 1555714Skris#CC=gcc 1655714Skris#CC=cc -Dconst= 1755714SkrisDEBUG=-g 1855714SkrisTOP=../.. 1955714SkrisCFLAGS=-I$$(TOP) -g 2055714SkrisCPU=`uname -m` 2155714SkrisCPUDIR=`uname -s|sed -e 's@/@@g'`-`uname -r`-`uname -m` 2255714Skris# 2355714Skris# To enable this to work as a Loadable Kernel Module... 2455714Skris# 2555714SkrisIPFLKM=-DIPFILTER_LKM 2655714Skris# 2755714Skris# To enable logging of blocked/passed packets... 2855714Skris# 2955714SkrisIPFLOG=-DIPFILTER_LOG 3055714Skris# 3155714Skris# The facility you wish to log messages from ipmon to syslogd with. 3255714Skris# 3355714SkrisLOGFAC=-DLOGFAC=LOG_LOCAL0 3455714Skris 3555714Skris# 3659191Skris# Uncomment the next 3 lines if you want to view the state table a la top(1) 3759191Skris# (requires that you have installed ncurses). 3855714Skris#STATETOP_CFLAGS=-DSTATETOP 3955714Skris# 4055714Skris# Where to find the ncurses include files (if not in default path), 4155714Skris# 4255714Skris#STATETOP_INC= 4355714Skris#STATETOP_INC=-I/usr/local/include 4455714Skris# 4555714Skris# How to link the ncurses library 4655714Skris# 4755714Skris#STATETOP_LIB=-lncurses 4855714Skris#STATETOP_LIB=-L/usr/local/lib -lncurses 4955714Skris 5055714Skris# 5155714Skris# Uncomment this when building IPv6 capability. 5255714Skris# 5355714Skris#INET6=-DUSE_INET6 5455714Skris# 5555714Skris# For packets which don't match any pass rules or any block rules, set either 5655714Skris# FR_PASS or FR_BLOCK (respectively). It defaults to FR_PASS if left 5755714Skris# undefined. This is ignored for ipftest, which can thus return three 5855714Skris# results: pass, block and nomatch. This is the sort of "block unless 5955714Skris# explicitly allowed" type #define switch. 6055714Skris# 6155714SkrisPOLICY=-DIPF_DEFAULT_PASS=FR_PASS 6255714Skris# 6355714SkrisMFLAGS1='CFLAGS=$(CFLAGS) $(ARCHINC) $(SOLARIS2) $(INET6)' \ 6455714Skris "IPFLOG=$(IPFLOG)" "LOGFAC=$(LOGFAC)" "POLICY=$(POLICY)" \ 6555714Skris "SOLARIS2=$(SOLARIS2)" "DEBUG=$(DEBUG)" "DCPU=$(CPU)" \ 6655714Skris "CPUDIR=$(CPUDIR)" 'STATETOP_CFLAGS=$(STATETOP_CFLAGS)' \ 6755714Skris 'STATETOP_INC=$(STATETOP_INC)' 'STATETOP_LIB=$(STATETOP_LIB)' \ 6855714Skris "BITS=$(BITS)" "OBJ=$(OBJ)" 6955714SkrisDEST="BINDEST=$(BINDEST)" "SBINDEST=$(SBINDEST)" "MANDIR=$(MANDIR)" 7055714SkrisMFLAGS=$(MFLAGS1) "IPFLKM=$(IPFLKM)" 7155714Skris# 7255714SkrisSHELL=/bin/sh 7355714Skris# 7455714Skris########## ########## ########## ########## ########## ########## ########## 7555714Skris# 7655714SkrisCP=/bin/cp 7755714SkrisRM=/bin/rm 7855714SkrisCHMOD=/bin/chmod 7955714SkrisINSTALL=install 8055714Skris# 8159191Skris 8259191Skrisall: 8359191Skris @echo "Chose one of the following targets for making IP filter:" 8455714Skris @echo "" 8555714Skris @echo "solaris - auto-selects SunOS4.1.x/Solaris 2.3-6/Solaris2.4-6x86" 8655714Skris @echo "netbsd - compile for NetBSD" 8755714Skris @echo "openbsd - compile for OpenBSD" 8855714Skris @echo "freebsd - compile for FreeBSD 2.0, 2.1 or earlier" 8955714Skris @echo "freebsd22 - compile for FreeBSD-2.2 or greater" 9055714Skris @echo "freebsd3 - compile for FreeBSD-3.x" 9155714Skris @echo "freebsd4 - compile for FreeBSD-4.x" 9255714Skris @echo "bsd - compile for generic 4.4BSD systems" 9355714Skris @echo "bsdi - compile for BSD/OS" 9455714Skris @echo "irix - compile for SGI IRIX" 9555714Skris @echo "linux - compile for Linux 2.0.31+" 9655714Skris @echo "" 9755714Skris 9855714Skristests: 9955714Skris @if [ -d test ]; then (cd test; make) \ 10055714Skris else echo test directory not present, sorry; fi 10155714Skris 10255714Skrisinclude: 10355714Skris if [ ! -f netinet/done ] ; then \ 10455714Skris (cd netinet; ln -s ../*.h .; ln -s ../ip_ftp_pxy.c .; ln -s ../ip_rcmd_pxy.c .; ln -s ../ip_raudio_pxy.c .); \ 10555714Skris (cd netinet; ln -s ../ipsend/tcpip.h tcpip.h); \ 10659191Skris touch netinet/done; \ 10759191Skris fi 10855714Skris 10955714Skrissunos solaris: include 11055714Skris ./buildsunos $(MFLAGS) 11155714Skris 11255714Skrisfreebsd22: include 11355714Skris make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)" 11455714Skris -rm -f BSD/$(CPUDIR)/ioconf.h 11555714Skris @if [ -n $(IPFILKERN) ] ; then \ 11655714Skris if [ -f /sys/compile/$(IPFILKERN)/ioconf.h ] ; then \ 11755714Skris ln -s /sys/compile/$(IPFILKERN)/ioconf.h BSD/$(CPUDIR); \ 11855714Skris else \ 11955714Skris ln -s /sys/$(IPFILKERN)/ioconf.h BSD/$(CPUDIR); \ 12055714Skris fi \ 12159191Skris elif [ ! -f `uname -v|sed -e 's@^.*:\(/[^: ]*\).*@\1@'`/ioconf.h ] ; then \ 12259191Skris echo -n "Can't find ioconf.h in "; \ 12359191Skris echo `uname -v|sed -e 's@^.*:\(/[^: ]*\).*@\1@'`; \ 12455714Skris exit 1;\ 12555714Skris else \ 12659191Skris ln -s `uname -v|sed -e 's@^.*:\(/[^: ]*\).*@\1@'`/ioconf.h BSD/$(CPU) ; \ 12755714Skris fi 12855714Skris make freebsd 12955714Skris 13055714Skrisfreebsd4: include 13155714Skris if [ x$INET6 = x ] ; then \ 13255714Skris echo "#undef INET6" > opt_inet6.h; \ 13355714Skris else \ 13455714Skris echo "#define INET6" > opt_inet6.h; \ 13555714Skris fi 13655714Skris make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)" 13755714Skris (cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) "ML=mlfk_ipl.c" "MLD=mlfk_ipl.c" "LKM=ipf.ko" "DLKM=-DKLD_MODULE -I/sys"; cd ..) 13859191Skris (cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS1); cd ..) 13955714Skris 14055714Skrisfreebsd3 freebsd30: include 14155714Skris make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)" 14255714Skris (cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS1) "ML=mlf_ipl.c" LKM= ; cd ..) 14355714Skris (cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS1); cd ..) 14455714Skris 14555714Skrisnetbsd: include 14655714Skris make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)" 14755714Skris (cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) 'DLKM=-D_LKM' "ML=mln_ipl.c"; cd ..) 14855714Skris (cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..) 14959191Skris 15059191Skrisopenbsd openbsd21: include 15155714Skris make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)" 15255714Skris (cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) 'DLKM=-D_LKM' "ML=mln_ipl.c"; cd ..) 15355714Skris (cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..) 15455714Skris 15559191Skrisfreebsd freebsd20 freebsd21: include 15655714Skris make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)" 15755714Skris (cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) "ML=mlf_ipl.c"; cd ..) 15855714Skris (cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..) 15955714Skris 16055714Skrisbsd: include 16155714Skris make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)" 16255714Skris (cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS); cd ..) 16355714Skris (cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..) 16455714Skris 16555714Skrisbsdi bsdos: include 16655714Skris make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)" 16755714Skris (cd BSD/$(CPUDIR); make build "CC=$(CC)" TOP=../.. $(MFLAGS) LKM= ; cd ..) 16855714Skris (cd BSD/$(CPUDIR); make -f Makefile.ipsend "CC=$(CC)" TOP=../.. $(MFLAGS); cd ..) 16955714Skris 17055714Skrisirix IRIX: include 17155714Skris make setup "TARGOS=IRIX" "CPUDIR=$(CPUDIR)" 17255714Skris (cd IRIX/$(CPUDIR); smake build TOP=../.. $(DEST) $(MFLAGS); cd ..) 17355714Skris (cd IRIX/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(DEST) $(MFLAGS); cd ..) 17455714Skris 17555714Skrislinux: include 17655714Skris make setup "TARGOS=Linux" "CPUDIR=$(CPUDIR)" 17755714Skris ./buildlinux 17855714Skris 17955714Skrislinuxrev: 18055714Skris (cd Linux/$(CPUDIR); make build TOP=../.. $(DEST) $(MFLAGS) LKM= ; cd ..) 18155714Skris (cd Linux/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(DEST) $(MFLAGS); cd ..) 18255714Skris 18355714Skrissetup: 18455714Skris -if [ ! -d $(TARGOS)/$(CPUDIR) ] ; then mkdir $(TARGOS)/$(CPUDIR); fi 18555714Skris -rm -f $(TARGOS)/$(CPUDIR)/Makefile $(TARGOS)/$(CPUDIR)/Makefile.ipsend 18655714Skris -ln -s ../Makefile $(TARGOS)/$(CPUDIR)/Makefile 18755714Skris -ln -s ../Makefile.ipsend $(TARGOS)/$(CPUDIR)/Makefile.ipsend 18855714Skris 18955714Skrisclean: clean-include 19055714Skris ${RM} -f core *.o ipt fils ipf ipfstat ipftest ipmon if_ipl \ 19155714Skris vnode_if.h $(LKM) *~ 19255714Skris ${RM} -rf sparcv7 sparcv9 19355714Skris (cd SunOS4; make clean) 19455714Skris (cd SunOS5; make clean) 19555714Skris (cd BSD; make clean) 19655714Skris (cd Linux; make clean) 19755714Skris if [ "`uname -s`" = "IRIX" ]; then (cd IRIX; make clean); fi 19855714Skris [ -d test ] && (cd test; make clean) 19955714Skris (cd ipsend; make clean) 20055714Skris 20155714Skrisclean-include: 20255714Skris sh -c 'cd netinet; for i in *; do if [ -h $$i ] ; then /bin/rm -f $$i; fi; done' 20355714Skris ${RM} -f netinet/done 20455714Skris 20555714Skrisclean-bsd: clean-include 20655714Skris (cd BSD; make clean) 20755714Skris 20855714Skrisclean-sunos4: clean-include 20955714Skris (cd SunOS4; make clean) 21055714Skris 21155714Skrisclean-sunos5: clean-include 21255714Skris (cd SunOS5; make clean) 21355714Skris 21455714Skrisclean-irix: clean-include 21555714Skris (cd IRIX; make clean) 21655714Skris 21755714Skrisclean-linux: clean-include 21855714Skris (cd Linux; make clean) 21955714Skris 22055714Skrisget: 22155714Skris -@for i in ipf.c ipt.h solaris.c ipf.h kmem.c ipft_ef.c linux.h \ 22255714Skris ipft_pc.c fil.c ipft_sn.c mln_ipl.c fils.c ipft_td.c \ 22355714Skris mls_ipl.c ip_compat.h ipl.h opt.c ip_fil.c ipl_ldev.c \ 22455714Skris parse.c ip_fil.h ipmon.c pcap.h ip_sfil.c ipt.c snoop.h \ 22555714Skris ip_state.c ip_state.h ip_nat.c ip_nat.h ip_frag.c \ 22655714Skris ip_frag.h ip_sfil.c misc.c; do \ 22755714Skris if [ ! -f $$i ] ; then \ 22855714Skris echo "getting $$i"; \ 22955714Skris sccs get $$i; \ 23055714Skris fi \ 23155714Skris done 23255714Skris 23355714Skrissunos4 solaris1: 23455714Skris (cd SunOS4; make build TOP=.. "CC=$(CC)" $(DEST) $(MFLAGS); cd ..) 23555714Skris (cd SunOS4; make -f Makefile.ipsend "CC=$(CC)" TOP=.. $(DEST) $(MFLAGS); cd ..) 23655714Skris 23755714Skrissunos5 solaris2: 23855714Skris (cd SunOS5/$(CPUDIR); make build TOP=../.. "CC=$(CC)" $(DEST) $(MFLAGS) "SOLARIS2=$(SOLARIS2)" "CPU=-Dsparc -D__sparc__"; cd ..) 23955714Skris (cd SunOS5/$(CPUDIR); make -f Makefile.ipsend TOP=../.. "CC=$(CC)" $(DEST) $(MFLAGS); cd ..) 24055714Skris 24155714Skrissunos5x86 solaris2x86: 24255714Skris (cd SunOS5/$(CPUDIR); make build TOP=../.. "CC=$(CC)" $(DEST) $(MFLAGS) "SOLARIS2=$(SOLARIS2)" "CPU=-Di86pc -Di386 -D__i386__"; cd ..) 24355714Skris (cd SunOS5/$(CPUDIR); make -f Makefile.ipsend TOP=../.. "CC=$(CC)" $(DEST) $(MFLAGS); cd ..) 24455714Skris 24555714Skrisinstall-linux: 24655714Skris (cd Linux/$(CPUDIR); make install "TOP=../.." $(DEST) $(MFLAGS); cd ..) 24755714Skris (cd Linux/$(CPUDIR); make -f Makefile.ipsend INSTALL=$(INSTALL) install "TOP=../.." $(DEST) $(MFLAGS); cd ..) 24855714Skris 24955714Skrisinstall-bsd: 25055714Skris (cd BSD/$(CPUDIR); make install "TOP=../.." $(MFLAGS); cd ..) 25155714Skris (cd BSD/$(CPUDIR); make -f Makefile.ipsend INSTALL=$(INSTALL) install "TOP=../.." $(MFLAGS); cd ..) 25255714Skris 25355714Skrisinstall-sunos4: solaris 25455714Skris (cd SunOS4; $(MAKE) "CPU=$(CPU) TOP=.." install) 25555714Skris 256install-sunos5: solaris 257 (cd SunOS5; $(MAKE) "CPU=$(CPU) TOP=.." install) 258 259install-irix: irix 260 (cd IRIX; smake install "CPU=$(CPU) TOP=.." $(DEST) $(MFLAGS)) 261 262rcsget: 263 -@for i in ipf.c ipt.h solaris.c ipf.h kmem.c ipft_ef.c linux.h \ 264 ipft_pc.c fil.c ipft_sn.c mln_ipl.c fils.c ipft_td.c \ 265 mls_ipl.c ip_compat.h ipl.h opt.c ip_fil.c ipl_ldev.c \ 266 parse.c ip_fil.h ipmon.c pcap.h ip_sfil.c ipt.c snoop.h \ 267 ip_state.c ip_state.h ip_nat.c ip_nat.h ip_frag.c \ 268 ip_frag.h ip_sfil.c misc.c; do \ 269 if [ ! -f $$i ] ; then \ 270 echo "getting $$i"; \ 271 co $$i; \ 272 fi \ 273 done 274 275do-cvs: 276 find . -type d -name CVS -print | xargs /bin/rm -rf 277 find . -type f -name .cvsignore -print | xargs /bin/rm -f 278