Makefile revision 37074
122514Sdarrenr#
231183Speter# Copyright (C) 1993-1997 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#
837074Speter# $Id: Makefile,v 2.0.2.26.2.10 1998/05/23 05:01:23 darrenr Exp $
922514Sdarrenr#
1026119SdarrenrBINDEST=/usr/local/bin
1126119SdarrenrSBINDEST=/sbin
1226119SdarrenrMANDIR=/usr/local/man
1324583Sdarrenr#To test prototyping
1424583Sdarrenr#CC=gcc -Wstrict-prototypes -Wmissing-prototypes -Werror
1522514SdarrenrCC=gcc
1634739Speter#CC=cc -Dconst=
1722514SdarrenrDEBUG=-g
1822514SdarrenrCFLAGS=-I$$(TOP)
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
3322514Sdarrenr#
3422514Sdarrenr# For packets which don't match any pass rules or any block rules, set either
3522514Sdarrenr# FR_PASS or FR_BLOCK (respectively).  It defaults to FR_PASS if left
3622514Sdarrenr# undefined.  This is ignored for ipftest, which can thus return three
3722514Sdarrenr# results: pass, block and nomatch.  This is the sort of "block unless
3822514Sdarrenr# explicitly allowed" type #define switch.
3922514Sdarrenr#
4023279SpeterPOLICY=-DIPF_DEFAULT_PASS=FR_PASS
4122514Sdarrenr#
4222514SdarrenrMFLAGS="BINDEST=$(BINDEST)" "SBINDEST=$(SBINDEST)" "MANDIR=$(MANDIR)" \
4331183Speter	'CFLAGS=$(CFLAGS) $(SOLARIS2)' "IPFLKM=$(IPFLKM)" \
4422514Sdarrenr	"IPFLOG=$(IPFLOG)" "LOGFAC=$(LOGFAC)" "POLICY=$(POLICY)" \
4531183Speter	"SOLARIS2=$(SOLARIS2)" "DEBUG=$(DEBUG)" "DCPU=$(CPU)" \
4631183Speter	"CPUDIR=$(CPUDIR)"
4722514Sdarrenr#
4831183SpeterSHELL=/bin/sh
4931183Speter#
5022514Sdarrenr########## ########## ########## ########## ########## ########## ##########
5122514Sdarrenr#
5222514SdarrenrCP=/bin/cp
5322514SdarrenrRM=/bin/rm
5422514SdarrenrCHMOD=/bin/chmod
5522514SdarrenrINSTALL=install
5622514Sdarrenr#
5722514Sdarrenr
5822514Sdarrenrall:
5922514Sdarrenr	@echo "Chose one of the following targets for making IP filter:"
6022514Sdarrenr	@echo ""
6131183Speter	@echo "solaris	- auto-selects SunOS4.1.x/Solaris 2.[45]/Solaris2.[45]-x86"
6231183Speter	@echo "netbsd	- compile for NetBSD"
6331183Speter	@echo "openbsd	- compile for OpenBSD"
6431183Speter	@echo "freebsd	- compile for FreeBSD 2.0, 2.1 or earlier"
6531183Speter	@echo "freebsd22	- compile for FreeBSD-2.2 or greater"
6631183Speter	@echo "bsd	- compile for generic 4.4BSD systems"
6722514Sdarrenr	@echo "bsdi	- compile for BSD/OS"
6831183Speter	@echo "irix	- compile for SGI IRIX"
6934739Speter	@echo "linux	- compile for Linux 2.0.31+"
7022514Sdarrenr	@echo ""
7122514Sdarrenr
7222514Sdarrenrtests:
7322514Sdarrenr	@if [ -d test ]; then (cd test; make) \
7422514Sdarrenr	else echo test directory not present, sorry; fi
7522514Sdarrenr
7626119Sdarrenrinclude:
7731183Speter	if [ ! -d netinet -o ! -f netinet/done ] ; then \
7831183Speter		mkdir -p netinet; \
7931183Speter		(cd netinet; ln -s ../*.h .; ln -s ../ip_ftp_pxy.c .); \
8031183Speter		(cd netinet; ln -s ../ipsend/tcpip.h tcpip.h); \
8131183Speter		touch netinet/done; \
8231183Speter	fi
8326119Sdarrenr
8426119Sdarrenrsunos solaris: include
8522514Sdarrenr	./buildsunos
8622514Sdarrenr
8726119Sdarrenrfreebsd22 freebsd30: include
8831183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
8931183Speter	-rm -f BSD/$(CPUDIR)/ioconf.h
9026119Sdarrenr	@if [ -n $(IPFILKERN) ] ; then \
9137074Speter		if [ -f /sys/$(IPFILKERN)/compile/ioconf.h ] ; then \
9237074Speter		ln -s /sys/$(IPFILKERN)/compile/ioconf.h BSD/$(CPUDIR); \
9337074Speter		else \
9431183Speter		ln -s /sys/$(IPFILKERN)/ioconf.h BSD/$(CPUDIR); \
9537074Speter		fi \
9626119Sdarrenr	elif [ ! -f `uname -v|sed -e 's@^.*:\(/[^: ]*\).*@\1@'`/ioconf.h ] ; then \
9726119Sdarrenr		echo -n "Can't find ioconf.h in "; \
9826119Sdarrenr		echo `uname -v|sed -e 's@^.*:\(/[^: ]*\).*@\1@'`; \
9924583Sdarrenr		exit 1;\
10026119Sdarrenr	else \
10126119Sdarrenr		ln -s `uname -v|sed -e 's@^.*:\(/[^: ]*\).*@\1@'`/ioconf.h BSD/$(CPU) ; \
10224583Sdarrenr	fi
10326119Sdarrenr	make freebsd
10422514Sdarrenr
10526119Sdarrenrnetbsd: include
10631183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
10737074Speter	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) 'DLKM=-D_LKM' "ML=mln_ipl.c"; cd ..)
10837074Speter	(cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..)
10926119Sdarrenr
11031183Speteropenbsd openbsd21: include
11131183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
11237074Speter	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) 'DLKM=-D_LKM' "ML=mln_ipl.c"; cd ..)
11337074Speter	(cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..)
11431183Speter
11526119Sdarrenrfreebsd freebsd20 freebsd21: include
11631183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
11737074Speter	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS) "ML=mlf_ipl.c"; cd ..)
11837074Speter	(cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..)
11926119Sdarrenr
12026119Sdarrenrbsd: include
12131183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
12237074Speter	(cd BSD/$(CPUDIR); make build TOP=../.. $(MFLAGS); cd ..)
12337074Speter	(cd BSD/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..)
12422514Sdarrenr
12526119Sdarrenrbsdi bsdos: include
12631183Speter	make setup "TARGOS=BSD" "CPUDIR=$(CPUDIR)"
12737074Speter	(cd BSD/$(CPUDIR); make build "CC=$(CC)" TOP=../.. $(MFLAGS) LKM= ; cd ..)
12837074Speter	(cd BSD/$(CPUDIR); make -f Makefile.ipsend "CC=$(CC)" TOP=../.. $(MFLAGS); cd ..)
12922514Sdarrenr
13031183Speteririx IRIX: include
13131183Speter	make setup "TARGOS=IRIX" "CPUDIR=$(CPUDIR)"
13237074Speter	(cd IRIX/$(CPUDIR); smake build TOP=../.. $(MFLAGS); cd ..)
13337074Speter	(cd IRIX/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..)
13431183Speter
13531183Speterlinux: include
13631183Speter	make setup "TARGOS=Linux" "CPUDIR=$(CPUDIR)"
13731183Speter	./buildlinux
13831183Speter
13931183Speterlinuxrev:
14037074Speter	(cd Linux/$(CPUDIR); make build TOP=../.. $(MFLAGS) LKM= ; cd ..)
14137074Speter	(cd Linux/$(CPUDIR); make -f Makefile.ipsend TOP=../.. $(MFLAGS); cd ..)
14231183Speter
14331183Spetersetup:
14431183Speter	-if [ ! -d $(TARGOS)/$(CPUDIR) ] ; then mkdir $(TARGOS)/$(CPUDIR); fi
14531183Speter	-rm -f $(TARGOS)/$(CPUDIR)/Makefile $(TARGOS)/$(CPUDIR)/Makefile.ipsend
14631183Speter	-ln -s ../Makefile $(TARGOS)/$(CPUDIR)/Makefile
14731183Speter	-ln -s ../Makefile.ipsend $(TARGOS)/$(CPUDIR)/Makefile.ipsend
14831183Speter
14922514Sdarrenrclean:
15031183Speter	${RM} -rf netinet
15122514Sdarrenr	${RM} -f core *.o ipt fils ipf ipfstat ipftest ipmon if_ipl \
15222514Sdarrenr	vnode_if.h $(LKM)
15337074Speter	if [ "`uname -s`" = "SunOS" ]; then (cd SunOS4; make clean); fi
15437074Speter	if [ "`uname -s`" = "SunOS" ]; then (cd SunOS5; make clean); fi
15522514Sdarrenr	(cd BSD; make clean)
15631183Speter	(cd Linux; make clean)
15731183Speter	if [ "`uname -s`" = "IRIX" ]; then (cd IRIX; make clean); fi
15822514Sdarrenr	[ -d test ] && (cd test; make clean)
15922514Sdarrenr	(cd ipsend; make clean)
16022514Sdarrenr
16122514Sdarrenrclean-bsd:
16222514Sdarrenr	(cd BSD; make clean)
16322514Sdarrenr
16422514Sdarrenrclean-sunos4:
16522514Sdarrenr	(cd SunOS4; make clean)
16622514Sdarrenr
16722514Sdarrenrclean-sunos5:
16822514Sdarrenr	(cd SunOS5; make clean)
16922514Sdarrenr
17031183Speterclean-irix:
17131183Speter	(cd IRIX; make clean)
17231183Speter
17331183Speterclean-linux:
17431183Speter	(cd Linux; make clean)
17531183Speter
17622514Sdarrenrget:
17722514Sdarrenr	-@for i in ipf.c ipt.h solaris.c ipf.h kmem.c ipft_ef.c linux.h \
17822514Sdarrenr		ipft_pc.c fil.c ipft_sn.c mln_ipl.c fils.c ipft_td.c \
17922514Sdarrenr		mls_ipl.c ip_compat.h ipl.h opt.c ip_fil.c ipl_ldev.c \
18022514Sdarrenr		parse.c ip_fil.h ipmon.c pcap.h ip_sfil.c ipt.c snoop.h \
18122514Sdarrenr		ip_state.c ip_state.h ip_nat.c ip_nat.h ip_frag.c \
18222514Sdarrenr		ip_frag.h ip_sfil.c misc.c; do \
18322514Sdarrenr		if [ ! -f $$i ] ; then \
18422514Sdarrenr			echo "getting $$i"; \
18522514Sdarrenr			sccs get $$i; \
18622514Sdarrenr		fi \
18722514Sdarrenr	done
18822514Sdarrenr
18924583Sdarrenrsunos4 solaris1:
19031183Speter	(cd SunOS4; make build TOP=.. "CC=$(CC)" $(MFLAGS); cd ..)
19131183Speter	(cd SunOS4; make -f Makefile.ipsend "CC=$(CC)" TOP=.. $(MFLAGS); cd ..)
19224583Sdarrenr
19324583Sdarrenrsunos5 solaris2:
19437074Speter	(cd SunOS5/$(CPUDIR); make build TOP=../.. "CC=$(CC)" $(MFLAGS) "SOLARIS2=$(SOLARIS2)" "CPU=-Dsparc -D__sparc__"; cd ..)
19537074Speter	(cd SunOS5/$(CPUDIR); make -f Makefile.ipsend TOP=../.. "CC=$(CC)" $(MFLAGS); cd ..)
19624583Sdarrenr
19724583Sdarrenrsunos5x86 solaris2x86:
19837074Speter	(cd SunOS5/$(CPUDIR); make build TOP=../.. "CC=$(CC)" $(MFLAGS) "SOLARIS2=$(SOLARIS2)" "CPU=-Di86pc -Di386 -D__i386__"; cd ..)
19937074Speter	(cd SunOS5/$(CPUDIR); make -f Makefile.ipsend TOP=../.. "CC=$(CC)" $(MFLAGS); cd ..)
20024583Sdarrenr
20137074Speterinstall-linux:
20237074Speter	(cd Linux/$(CPUDIR); make install "TOP=../.." $(MFLAGS); cd ..)
20337074Speter	(cd Linux/$(CPUDIR); make -f Makefile.ipsend INSTALL=$(INSTALL) install "TOP=../.." $(MFLAGS); cd ..)
20437074Speter
20531183Speterinstall-bsd:
20631183Speter	(cd BSD/$(CPUDIR); make install "TOP=../.." $(MFLAGS); cd ..)
20731183Speter	(cd BSD/$(CPUDIR); make -f Makefile.ipsend INSTALL=$(INSTALL) install "TOP=../.." $(MFLAGS); cd ..)
20826119Sdarrenr
20922514Sdarrenrinstall-sunos4: solaris
21024583Sdarrenr	(cd SunOS4; $(MAKE) "CPU=$(CPU) TOP=.." install)
21126119Sdarrenr
21222514Sdarrenrinstall-sunos5: solaris
21324583Sdarrenr	(cd SunOS5; $(MAKE) "CPU=$(CPU) TOP=.." install)
21422514Sdarrenr
21531183Speterinstall-irix: irix
21631183Speter	(cd IRIX; smake install "CPU=$(CPU) TOP=.." $(MFLAGS))
21731183Speter
21822514Sdarrenrrcsget:
21922514Sdarrenr	-@for i in ipf.c ipt.h solaris.c ipf.h kmem.c ipft_ef.c linux.h \
22022514Sdarrenr		ipft_pc.c fil.c ipft_sn.c mln_ipl.c fils.c ipft_td.c \
22122514Sdarrenr		mls_ipl.c ip_compat.h ipl.h opt.c ip_fil.c ipl_ldev.c \
22222514Sdarrenr		parse.c ip_fil.h ipmon.c pcap.h ip_sfil.c ipt.c snoop.h \
22322514Sdarrenr		ip_state.c ip_state.h ip_nat.c ip_nat.h ip_frag.c \
22422514Sdarrenr		ip_frag.h ip_sfil.c misc.c; do \
22522514Sdarrenr		if [ ! -f $$i ] ; then \
22622514Sdarrenr			echo "getting $$i"; \
22722514Sdarrenr			co $$i; \
22822514Sdarrenr		fi \
22922514Sdarrenr	done
23022514Sdarrenr
23122514Sdarrenrdo-cvs:
23222514Sdarrenr	find . -type d -name CVS -print | xargs /bin/rm -rf
23322514Sdarrenr	find . -type f -name .cvsignore -print | xargs /bin/rm -f
234