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