Makefile revision 60841
122514Sdarrenr#
260841Sdarrenr# Copyright (C) 1993-2000 by Darren Reed.
322514Sdarrenr#
431183Speter# Redistribution and use in source and binary forms are permitted
531183Speter# provided that this notice is preserved and due credit is given
631183Speter# to the original author and the contributors.
722514Sdarrenr#
860841Sdarrenr# $Id: Makefile,v 2.11.2.1 2000/04/26 12:14:58 darrenr Exp $
922514Sdarrenr#
1026119SdarrenrBINDEST=/usr/local/bin
1126119SdarrenrSBINDEST=/sbin
1226119SdarrenrMANDIR=/usr/local/man
1324583Sdarrenr#To test prototyping
1453024SguidoCC=gcc -Wstrict-prototypes -Wmissing-prototypes
1553024Sguido#CC=gcc
1634739Speter#CC=cc -Dconst=
1722514SdarrenrDEBUG=-g
1860841SdarrenrCFLAGS=-I$$(TOP) -g
1924583SdarrenrCPU=`uname -m`
2031183SpeterCPUDIR=`uname -s|sed -e 's@/@@g'`-`uname -r`-`uname -m`
2122514Sdarrenr#
2222514Sdarrenr# To enable this to work as a Loadable Kernel Module...
2322514Sdarrenr#
2422514SdarrenrIPFLKM=-DIPFILTER_LKM
2522514Sdarrenr#
2622514Sdarrenr# To enable logging of blocked/passed packets...
2722514Sdarrenr#
2822514SdarrenrIPFLOG=-DIPFILTER_LOG
2922514Sdarrenr#
3022514Sdarrenr# The facility you wish to log messages from ipmon to syslogd with.
3122514Sdarrenr#
3222514SdarrenrLOGFAC=-DLOGFAC=LOG_LOCAL0
3360841Sdarrenr
3422514Sdarrenr#
3560841Sdarrenr# Uncomment the next 3 lines if you want to view the state table a la top(1)
3660841Sdarrenr# (requires that you have installed ncurses).
3760841Sdarrenr#STATETOP_CFLAGS=-DSTATETOP
3860841Sdarrenr#
3960841Sdarrenr# Where to find the ncurses include files (if not in default path), 
4060841Sdarrenr#
4160841Sdarrenr#STATETOP_INC=
4260841Sdarrenr#STATETOP_INC=-I/usr/local/include
4360841Sdarrenr#
4460841Sdarrenr# How to link the ncurses library
4560841Sdarrenr#
4660841Sdarrenr#STATETOP_LIB=-lncurses
4760841Sdarrenr#STATETOP_LIB=-L/usr/local/lib -lncurses
4860841Sdarrenr
4960841Sdarrenr#
5060841Sdarrenr# Uncomment this when building IPv6 capability.
5160841Sdarrenr#
5260841Sdarrenr#INET6=-DUSE_INET6
5360841Sdarrenr#
5422514Sdarrenr# For packets which don't match any pass rules or any block rules, set either
5522514Sdarrenr# FR_PASS or FR_BLOCK (respectively).  It defaults to FR_PASS if left
5622514Sdarrenr# undefined.  This is ignored for ipftest, which can thus return three
5722514Sdarrenr# results: pass, block and nomatch.  This is the sort of "block unless
5822514Sdarrenr# explicitly allowed" type #define switch.
5922514Sdarrenr#
6023279SpeterPOLICY=-DIPF_DEFAULT_PASS=FR_PASS
6122514Sdarrenr#
6260841SdarrenrMFLAGS1='CFLAGS=$(CFLAGS) $(ARCHINC) $(SOLARIS2) $(INET6)' \
6322514Sdarrenr	"IPFLOG=$(IPFLOG)" "LOGFAC=$(LOGFAC)" "POLICY=$(POLICY)" \
6431183Speter	"SOLARIS2=$(SOLARIS2)" "DEBUG=$(DEBUG)" "DCPU=$(CPU)" \
6560841Sdarrenr	"CPUDIR=$(CPUDIR)" 'STATETOP_CFLAGS=$(STATETOP_CFLAGS)' \
6660841Sdarrenr        'STATETOP_INC=$(STATETOP_INC)' 'STATETOP_LIB=$(STATETOP_LIB)'
6760841SdarrenrDEST="BINDEST=$(BINDEST)" "SBINDEST=$(SBINDEST)" "MANDIR=$(MANDIR)"
6853024SguidoMFLAGS=$(MFLAGS1) "IPFLKM=$(IPFLKM)"
6922514Sdarrenr#
7031183SpeterSHELL=/bin/sh
7131183Speter#
7222514Sdarrenr########## ########## ########## ########## ########## ########## ##########
7322514Sdarrenr#
7422514SdarrenrCP=/bin/cp
7522514SdarrenrRM=/bin/rm
7622514SdarrenrCHMOD=/bin/chmod
7722514SdarrenrINSTALL=install
7822514Sdarrenr#
7922514Sdarrenr
8022514Sdarrenrall:
8122514Sdarrenr	@echo "Chose one of the following targets for making IP filter:"
8222514Sdarrenr	@echo ""
8353024Sguido	@echo "solaris	- auto-selects SunOS4.1.x/Solaris 2.3-6/Solaris2.4-6x86"
8431183Speter	@echo "netbsd	- compile for NetBSD"
8531183Speter	@echo "openbsd	- compile for OpenBSD"
8631183Speter	@echo "freebsd	- compile for FreeBSD 2.0, 2.1 or earlier"
8731183Speter	@echo "freebsd22	- compile for FreeBSD-2.2 or greater"
8853024Sguido	@echo "freebsd3	- compile for FreeBSD-3.x"
8960841Sdarrenr	@echo "freebsd4	- compile for FreeBSD-4.x"
9031183Speter	@echo "bsd	- compile for generic 4.4BSD systems"
9122514Sdarrenr	@echo "bsdi	- compile for BSD/OS"
9231183Speter	@echo "irix	- compile for SGI IRIX"
9334739Speter	@echo "linux	- compile for Linux 2.0.31+"
9422514Sdarrenr	@echo ""
9522514Sdarrenr
9622514Sdarrenrtests:
9722514Sdarrenr	@if [ -d test ]; then (cd test; make) \
9822514Sdarrenr	else echo test directory not present, sorry; fi
9922514Sdarrenr
10026119Sdarrenrinclude:
10153024Sguido	if [ ! -f netinet/done ] ; then \
10253024Sguido		(cd netinet; ln -s ../*.h .; ln -s ../ip_ftp_pxy.c .; ln -s ../ip_rcmd_pxy.c .; ln -s ../ip_raudio_pxy.c .); \
10331183Speter		(cd netinet; ln -s ../ipsend/tcpip.h tcpip.h); \
10431183Speter		touch netinet/done; \
10531183Speter	fi
10626119Sdarrenr
10726119Sdarrenrsunos solaris: include
10822514Sdarrenr	./buildsunos
10922514Sdarrenr
11053024Sguidofreebsd22: include
11131183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
11231183Speter	-rm -f BSD/$(CPUDIR)/ioconf.h
11326119Sdarrenr	@if [ -n $(IPFILKERN) ] ; then \
11453024Sguido		if [ -f /sys/compile/$(IPFILKERN)/ioconf.h ] ; then \
11553024Sguido		ln -s /sys/compile/$(IPFILKERN)/ioconf.h BSD/$(CPUDIR); \
11637074Speter		else \
11731183Speter		ln -s /sys/$(IPFILKERN)/ioconf.h BSD/$(CPUDIR); \
11837074Speter		fi \
11926119Sdarrenr	elif [ ! -f `uname -v|sed -e 's@^.*:\(/[^: ]*\).*@\1@'`/ioconf.h ] ; then \
12026119Sdarrenr		echo -n "Can't find ioconf.h in "; \
12126119Sdarrenr		echo `uname -v|sed -e 's@^.*:\(/[^: ]*\).*@\1@'`; \
12224583Sdarrenr		exit 1;\
12326119Sdarrenr	else \
12426119Sdarrenr		ln -s `uname -v|sed -e 's@^.*:\(/[^: ]*\).*@\1@'`/ioconf.h BSD/$(CPU) ; \
12524583Sdarrenr	fi
12626119Sdarrenr	make freebsd
12722514Sdarrenr
12860841Sdarrenrfreebsd4: include
12960841Sdarrenr	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
13060841Sdarrenr	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) "ML=mlfk_ipl.c" "MLD=mlfk_ipl.c" "LKM=ipf.ko" "DLKM=-DKLD_MODULE"; cd ..)
13160841Sdarrenr	(cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS1); cd ..)
13260841Sdarrenr
13353024Sguidofreebsd3 freebsd30: include
13453024Sguido	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
13553024Sguido	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS1) "ML=mlf_ipl.c" LKM= ; cd ..)
13653024Sguido	(cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS1); cd ..)
13753024Sguido
13826119Sdarrenrnetbsd: include
13931183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
14037074Speter	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) 'DLKM=-D_LKM' "ML=mln_ipl.c"; cd ..)
14137074Speter	(cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..)
14226119Sdarrenr
14331183Speteropenbsd openbsd21: include
14431183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
14537074Speter	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) 'DLKM=-D_LKM' "ML=mln_ipl.c"; cd ..)
14637074Speter	(cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..)
14731183Speter
14826119Sdarrenrfreebsd freebsd20 freebsd21: include
14931183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
15037074Speter	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) "ML=mlf_ipl.c"; cd ..)
15137074Speter	(cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..)
15226119Sdarrenr
15326119Sdarrenrbsd: include
15431183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
15537074Speter	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS); cd ..)
15637074Speter	(cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..)
15722514Sdarrenr
15826119Sdarrenrbsdi bsdos: include
15931183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
16037074Speter	(cd BSD/$(CPUDIR); make build "CC=$(CC)" TOP=../.. $(MFLAGS) LKM= ; cd ..)
16137074Speter	(cd BSD/$(CPUDIR); make -f Makefile.ipsend "CC=$(CC)" TOP=../.. $(MFLAGS); cd ..)
16222514Sdarrenr
16331183Speteririx IRIX: include
16431183Speter	make setup "TARGOS=IRIX" "CPUDIR=$(CPUDIR)"
16560841Sdarrenr	(cd IRIX/$(CPUDIR); smake build TOP=../.. $(DEST) $(MFLAGS); cd ..)
16660841Sdarrenr	(cd IRIX/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(DEST) $(MFLAGS); cd ..)
16731183Speter
16831183Speterlinux: include
16931183Speter	make setup "TARGOS=Linux" "CPUDIR=$(CPUDIR)"
17031183Speter	./buildlinux
17131183Speter
17231183Speterlinuxrev:
17360841Sdarrenr	(cd Linux/$(CPUDIR); make build TOP=../.. $(DEST) $(MFLAGS) LKM= ; cd ..)
17460841Sdarrenr	(cd Linux/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(DEST) $(MFLAGS); cd ..)
17531183Speter
17631183Spetersetup:
17731183Speter	-if [ ! -d $(TARGOS)/$(CPUDIR) ] ; then mkdir $(TARGOS)/$(CPUDIR); fi
17831183Speter	-rm -f $(TARGOS)/$(CPUDIR)/Makefile $(TARGOS)/$(CPUDIR)/Makefile.ipsend
17931183Speter	-ln -s ../Makefile $(TARGOS)/$(CPUDIR)/Makefile
18031183Speter	-ln -s ../Makefile.ipsend $(TARGOS)/$(CPUDIR)/Makefile.ipsend
18131183Speter
18253024Sguidoclean: clean-include
18322514Sdarrenr	${RM} -f core *.o ipt fils ipf ipfstat ipftest ipmon if_ipl \
18453024Sguido	vnode_if.h $(LKM) *~
18560841Sdarrenr	(cd SunOS4; make clean)
18660841Sdarrenr	(cd SunOS5; make clean)
18722514Sdarrenr	(cd BSD; make clean)
18831183Speter	(cd Linux; make clean)
18931183Speter	if [ "`uname -s`" = "IRIX" ]; then (cd IRIX; make clean); fi
19022514Sdarrenr	[ -d test ] && (cd test; make clean)
19122514Sdarrenr	(cd ipsend; make clean)
19222514Sdarrenr
19353024Sguidoclean-include:
19453024Sguido	sh -c 'cd netinet; for i in *; do if [ -h $$i ] ; then /bin/rm -f $$i; fi; done'
19553024Sguido	${RM} -f netinet/done
19653024Sguido
19753024Sguidoclean-bsd: clean-include
19822514Sdarrenr	(cd BSD; make clean)
19922514Sdarrenr
20053024Sguidoclean-sunos4: clean-include
20122514Sdarrenr	(cd SunOS4; make clean)
20222514Sdarrenr
20353024Sguidoclean-sunos5: clean-include
20422514Sdarrenr	(cd SunOS5; make clean)
20522514Sdarrenr
20653024Sguidoclean-irix: clean-include
20731183Speter	(cd IRIX; make clean)
20831183Speter
20953024Sguidoclean-linux: clean-include
21031183Speter	(cd Linux; make clean)
21131183Speter
21222514Sdarrenrget:
21322514Sdarrenr	-@for i in ipf.c ipt.h solaris.c ipf.h kmem.c ipft_ef.c linux.h \
21422514Sdarrenr		ipft_pc.c fil.c ipft_sn.c mln_ipl.c fils.c ipft_td.c \
21522514Sdarrenr		mls_ipl.c ip_compat.h ipl.h opt.c ip_fil.c ipl_ldev.c \
21622514Sdarrenr		parse.c ip_fil.h ipmon.c pcap.h ip_sfil.c ipt.c snoop.h \
21722514Sdarrenr		ip_state.c ip_state.h ip_nat.c ip_nat.h ip_frag.c \
21822514Sdarrenr		ip_frag.h ip_sfil.c misc.c; do \
21922514Sdarrenr		if [ ! -f $$i ] ; then \
22022514Sdarrenr			echo "getting $$i"; \
22122514Sdarrenr			sccs get $$i; \
22222514Sdarrenr		fi \
22322514Sdarrenr	done
22422514Sdarrenr
22524583Sdarrenrsunos4 solaris1:
22660841Sdarrenr	(cd SunOS4; make build TOP=.. "CC=$(CC)" $(DEST) $(MFLAGS); cd ..)
22760841Sdarrenr	(cd SunOS4; make -f Makefile.ipsend "CC=$(CC)" TOP=.. $(DEST) $(MFLAGS); cd ..)
22824583Sdarrenr
22924583Sdarrenrsunos5 solaris2:
23060841Sdarrenr	(cd SunOS5/$(CPUDIR); make build TOP=../.. "CC=$(CC)" $(DEST) $(MFLAGS) "SOLARIS2=$(SOLARIS2)" "CPU=-Dsparc -D__sparc__"; cd ..)
23160841Sdarrenr	(cd SunOS5/$(CPUDIR); make -f Makefile.ipsend TOP=../.. "CC=$(CC)" $(DEST) $(MFLAGS); cd ..)
23224583Sdarrenr
23324583Sdarrenrsunos5x86 solaris2x86:
23460841Sdarrenr	(cd SunOS5/$(CPUDIR); make build TOP=../.. "CC=$(CC)" $(DEST) $(MFLAGS) "SOLARIS2=$(SOLARIS2)" "CPU=-Di86pc -Di386 -D__i386__"; cd ..)
23560841Sdarrenr	(cd SunOS5/$(CPUDIR); make -f Makefile.ipsend TOP=../.. "CC=$(CC)" $(DEST) $(MFLAGS); cd ..)
23624583Sdarrenr
23737074Speterinstall-linux:
23860841Sdarrenr	(cd Linux/$(CPUDIR); make install "TOP=../.." $(DEST) $(MFLAGS); cd ..)
23960841Sdarrenr	(cd Linux/$(CPUDIR); make -f Makefile.ipsend INSTALL=$(INSTALL) install "TOP=../.." $(DEST) $(MFLAGS); cd ..)
24037074Speter
24131183Speterinstall-bsd:
24231183Speter	(cd BSD/$(CPUDIR); make install "TOP=../.." $(MFLAGS); cd ..)
24331183Speter	(cd BSD/$(CPUDIR); make -f Makefile.ipsend INSTALL=$(INSTALL) install "TOP=../.." $(MFLAGS); cd ..)
24426119Sdarrenr
24522514Sdarrenrinstall-sunos4: solaris
24624583Sdarrenr	(cd SunOS4; $(MAKE) "CPU=$(CPU) TOP=.." install)
24726119Sdarrenr
24822514Sdarrenrinstall-sunos5: solaris
24924583Sdarrenr	(cd SunOS5; $(MAKE) "CPU=$(CPU) TOP=.." install)
25022514Sdarrenr
25131183Speterinstall-irix: irix
25260841Sdarrenr	(cd IRIX; smake install "CPU=$(CPU) TOP=.." $(DEST) $(MFLAGS))
25331183Speter
25422514Sdarrenrrcsget:
25522514Sdarrenr	-@for i in ipf.c ipt.h solaris.c ipf.h kmem.c ipft_ef.c linux.h \
25622514Sdarrenr		ipft_pc.c fil.c ipft_sn.c mln_ipl.c fils.c ipft_td.c \
25722514Sdarrenr		mls_ipl.c ip_compat.h ipl.h opt.c ip_fil.c ipl_ldev.c \
25822514Sdarrenr		parse.c ip_fil.h ipmon.c pcap.h ip_sfil.c ipt.c snoop.h \
25922514Sdarrenr		ip_state.c ip_state.h ip_nat.c ip_nat.h ip_frag.c \
26022514Sdarrenr		ip_frag.h ip_sfil.c misc.c; do \
26122514Sdarrenr		if [ ! -f $$i ] ; then \
26222514Sdarrenr			echo "getting $$i"; \
26322514Sdarrenr			co $$i; \
26422514Sdarrenr		fi \
26522514Sdarrenr	done
26622514Sdarrenr
26722514Sdarrenrdo-cvs:
26822514Sdarrenr	find . -type d -name CVS -print | xargs /bin/rm -rf
26922514Sdarrenr	find . -type f -name .cvsignore -print | xargs /bin/rm -f
270