1285SN/A#
2461SN/A# Copyright (C) 1993-1998 by Darren Reed.
3285SN/A#
4285SN/A# See the IPFILTER.LICENCE file for details on licencing.
5285SN/A#
6285SN/AIPFT=ipft_ef.o ipft_hx.o ipft_pc.o ipft_sn.o ipft_td.o ipft_tx.o opt.o
7285SN/AOBJS=ipsend.o ip.o ipsopt.o y.tab.o lex.yy.o
8285SN/AROBJS=ipresend.o ip.o resend.o $(IPFT)
9285SN/ATOBJS=iptest.o iptests.o ip.o
10285SN/ABPF=sbpf.o
11285SN/ANIT=snit.o
12285SN/ASUNOS4=sock.o arp.o inet_addr.o
13285SN/ABSD=sock.o 44arp.o
14285SN/ALINUX=lsock.o slinux.o larp.o
15285SN/ALINUXK=
16285SN/ATOP=..
17285SN/ASUNOS5=dlcommon.o sdlpi.o arp.o inet_addr.o
18285SN/AULTRIX=ultrix.o sock.o arp.o inet_addr.o
19285SN/AHPUX=hpux.o sock.o arp.o inet_addr.o
20285SN/A
21285SN/A#CC=gcc
22285SN/ADEBUG=-g
23285SN/ACFLAGS=$(DEBUG) -I. -Iipf
24285SN/A#
25285SN/AMFLAGS="BINDEST=$(BINDEST)" "SBINDEST=$(SBINDEST)" "MANDIR=$(MANDIR)" \
26285SN/A	"IPFLKM=$(IPFLKM)" \
27285SN/A	"IPFLOG=$(IPFLOG)" "LOGFAC=$(LOGFAC)" "POLICY=$(POLICY)" \
28285SN/A	"SOLARIS2=$(SOLARIS2)" "DEBUG=$(DEBUG)" "DCPU=$(CPU)" \
29285SN/A	"CPUDIR=$(CPUDIR)"
30285SN/A#
31285SN/Aall:
32285SN/A	@echo "Use one of these targets:"
33285SN/A	@echo "	sunos4-nit (standard SunOS 4.1.x)"
34285SN/A	@echo "	sunos4-bpf (SunOS4.1.x with BPF in the kernel)"
35285SN/A	@echo "	bsd-bpf (4.4BSD variant with BPF in the kernel)"
36285SN/A	@echo "	linux10 (Linux 1.0 kernels)"
37285SN/A	@echo "	linux12 (Linux 1.2 kernels)"
38285SN/A	@echo "	linux20 (Linux 2.0 kernels)"
39285SN/A	@echo "	sunos5 (Solaris 2.x)"
40285SN/A
41285SN/Aipf:
42285SN/A	-if [ ! -d iplang ] ; then ln -s ../iplang iplang; fi
43285SN/A	-if [ ! -d netinet ] ; then ln -s ../netinet netinet; fi
44285SN/A	-if [ ! -d ipf ] ; then ln -s .. ipf; fi
45285SN/A
46285SN/Ay.tab.o: iplang/iplang_y.y
47285SN/A	-if [ -h iplang ] ; then \
48285SN/A		(cd iplang; ${MAKE} $(MFLAGS) 'DESTDIR=../ipsend' ) \
49285SN/A	else \
50285SN/A		(cd iplang; ${MAKE} $(MFLAGS) 'DESTDIR=..' ) \
51285SN/A	fi
52285SN/A
53285SN/Alex.yy.o: iplang/iplang_l.l
54285SN/A	-if [ -h iplang ] ; then \
55285SN/A		(cd iplang; ${MAKE} $(MFLAGS) 'DESTDIR=../ipsend' ) \
56285SN/A	else \
57285SN/A		(cd iplang; ${MAKE} $(MFLAGS) 'DESTDIR=..' ) \
58285SN/A	fi
59285SN/A
60285SN/A.c.o:
61285SN/A	$(CC) $(CFLAGS) $(LINUXK) -c $< -o $@
62285SN/A
63285SN/Ainstall:
64285SN/A	-$(INSTALL) -cs -g wheel -m 755 -o root ipsend ipresend iptest $(BINDEST)
65285SN/A
66285SN/Abpf sunos4-bpf :
67285SN/A	make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(BPF) $(SUNOS4)" "CC=$(CC)" \
68285SN/A		"CFLAGS=$(CFLAGS) -DDOSOCKET -DIPSEND" "LLIB=-ll"
69285SN/A	make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(BPF) $(SUNOS4)" "CC=$(CC)" \
70285SN/A		"CFLAGS=$(CFLAGS) -DDOSOCKET"
71285SN/A	make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(BPF) $(SUNOS4)" "CC=$(CC)" \
72285SN/A		"CFLAGS=$(CFLAGS) -DDOSOCKET"
73285SN/A
74285SN/Anit sunos4 sunos4-nit :
75285SN/A	make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(NIT) $(SUNOS4)" "CC=$(CC)" \
76285SN/A		"CFLAGS=$(CFLAGS) -DDOSOCKET -DIPSEND" "LLIB=-ll"
77285SN/A	make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(NIT) $(SUNOS4)" "CC=$(CC)" \
78285SN/A		"CFLAGS=$(CFLAGS) -DDOSOCKET"
79285SN/A	make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(NIT) $(SUNOS4)" "CC=$(CC)" \
80285SN/A		"CFLAGS=$(CFLAGS) -DDOSOCKET"
81285SN/A
82285SN/Adlpi sunos5 :
83285SN/A	make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(SUNOS5)" "CC=$(CC)" \
84285SN/A		CFLAGS="$(CFLAGS) -Dsolaris -DIPSEND" "LIBS=-lsocket -lnsl" \
85285SN/A		"LLIB=-ll"
86285SN/A	make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(SUNOS5)" "CC=$(CC)" \
87285SN/A		CFLAGS="$(CFLAGS) -Dsolaris" "LIBS=-lsocket -lnsl"
88285SN/A	make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(SUNOS5)" "CC=$(CC)" \
89285SN/A		CFLAGS="$(CFLAGS) -Dsolaris" "LIBS=-lsocket -lnsl"
90285SN/A
91285SN/Absd-bpf :
92285SN/A	make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(BPF) $(BSD)" "CC=$(CC)" \
93285SN/A		"CFLAGS=$(CFLAGS) -DDOSOCKET -DIPSEND" "LLIB=-ll"
94285SN/A	make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(BPF) $(BSD)" "CC=$(CC)" \
95285SN/A		"CFLAGS=$(CFLAGS) -DDOSOCKET"
96285SN/A	make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(BPF) $(BSD)" "CC=$(CC)" \
97285SN/A		"CFLAGS=$(CFLAGS) -DDOSOCKET"
98285SN/A
99285SN/Alinuxrev :
100285SN/A	make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(LINUX)" "CC=$(CC)" \
101285SN/A		CFLAGS="$(CFLAGS) $(INC) -DDOSOCKET -DIPSEND" $(LINUXK)
102285SN/A	make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(LINUX)" "CC=$(CC)" \
103285SN/A		CFLAGS="$(CFLAGS) $(INC) -DDOSOCKET" $(LINUXK)
104285SN/A	make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(LINUX)" "CC=$(CC)" \
105285SN/A		CFLAGS="$(CFLAGS) $(INC) -DDOSOCKET" $(LINUXK)
106285SN/A
107285SN/Alinux10:
108285SN/A	make linuxrev 'LINUXK="LINUXK=-DLINUX=0100"' \
109285SN/A		"INC=-I/usr/src/linux/include" "LLIB=-lfl"
110285SN/A
111285SN/Alinux12:
112285SN/A	make linuxrev 'LINUXK="LINUXK=-DLINUX=0102"' "INC=-I/usr/src/linux" \
113285SN/A		"LLIB=-lfl"
114285SN/A
115285SN/Alinux20:
116285SN/A	make linuxrev 'LINUXK="LINUXK=-DLINUX=0200"' \
117285SN/A		"INC=-I/usr/src/linux/include" "LLIB=-lfl" "ELIB=-lelf"
118285SN/A
119285SN/Aultrix :
120285SN/A	make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(ULTRIX)" "CC=$(CC)" \
121285SN/A		CFLAGS="$(CFLAGS) -DIPSEND" "LIBS=" "LLIB=-ll"
122285SN/A	make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(ULTRIX)" "CC=$(CC)" \
123285SN/A		CFLAGS="$(CFLAGS)" "LIBS="
124285SN/A	make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(ULTRIX)" "CC=$(CC)" \
125285SN/A		CFLAGS="$(CFLAGS)" "LIBS="
126285SN/A
127285SN/Ahpux9 :
128285SN/A	make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(HPUX)" "CC=$(CC)" \
129285SN/A		CFLAGS="$(CFLAGS) -DIPSEND" "LIBS="
130285SN/A	make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(HPUX)" "CC=$(CC)" \
131285SN/A		CFLAGS="$(CFLAGS)" "LIBS="
132285SN/A	make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(HPUX)" "CC=$(CC)" \
133285SN/A		CFLAGS="$(CFLAGS)" "LIBS="
134285SN/A
135285SN/Ahpux11 :
136285SN/A	make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(HPUX)" "CC=$(CC)" \
137285SN/A		CFLAGS="$(CFLAGS) -DIPSEND" "LIBS="
138285SN/A	make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(HPUX)" "CC=$(CC)" \
139285SN/A		CFLAGS="$(CFLAGS)" "LIBS="
140285SN/A	make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(HPUX)" "CC=$(CC)" \
141285SN/A		CFLAGS="$(CFLAGS)" "LIBS="
142285SN/A
143285SN/Aipsend: ipf $(OBJS) $(UNIXOBJS)
144285SN/A	$(CC) $(OBJS) $(UNIXOBJS) -o $@ $(LIBS) $(LLIB) $(ELIB)
145285SN/A
146285SN/Aipresend: $(ROBJS) $(UNIXOBJS)
147285SN/A	$(CC) $(ROBJS) $(UNIXOBJS) -o $@ $(LIBS) $(ELIB)
148285SN/A
149285SN/Aiptest: $(TOBJS) $(UNIXOBJS)
150285SN/A	$(CC) $(TOBJS) $(UNIXOBJS) -o $@ $(LIBS) $(ELIB)
151285SN/A
152285SN/Aipft_ef.o: ipf/ipft_ef.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h
153285SN/A	$(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_ef.c -o $@
154285SN/A
155285SN/Aipft_hx.o: ipf/ipft_hx.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h
156285SN/A	$(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_hx.c -o $@
157285SN/A
158285SN/Aipft_pc.o: ipf/ipft_pc.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h
159285SN/A	$(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_pc.c -o $@
160285SN/A
161285SN/Aipft_sn.o: ipf/ipft_sn.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h
162285SN/A	$(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_sn.c -o $@
163285SN/A
164285SN/Aipft_td.o: ipf/ipft_td.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h
165285SN/A	$(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_td.c -o $@
166285SN/A
167285SN/Aipft_tx.o: ipf/ipft_tx.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h
168285SN/A	$(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_tx.c -o $@
169285SN/A
170285SN/Aopt.o: ipf/opt.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h
171285SN/A	$(CC) $(CFLAGS) $(LINUXK) -c ipf/opt.c -o $@
172285SN/A
173285SN/Ainet_addr.o: ipf/inet_addr.c
174285SN/A	$(CC) $(CFLAGS) $(LINUXK) -c ipf/inet_addr.c -o $@
175285SN/A
176285SN/Aclean:
177285SN/A	rm -rf *.o *core a.out ipsend ipresend iptest
178285SN/A	if [ -d iplang ]; then (cd iplang; $(MAKE) $(MFLAGS) clean); fi
179285SN/A	if [ -d $(TOP)/iplang ]; then (cd $(TOP)/iplang; $(MAKE) $(MFLAGS) clean); fi
180285SN/A
181285SN/Ado-cvs:
182285SN/A	find . -type d -name CVS -print | xargs /bin/rm -rf
183285SN/A	find . -type f -name .cvsignore -print | xargs /bin/rm -f
184285SN/A