Makefile revision 38042
1#
2# Copyright (C) 1993-1997 by Darren Reed.
3#
4# Redistribution and use in source and binary forms are permitted
5# provided that this notice is preserved and due credit is given
6# to the original author and the contributors.
7#
8IPFT=ipft_ef.o ipft_hx.o ipft_pc.o ipft_sn.o ipft_td.o ipft_tx.o opt.o
9OBJS=ipsend.o ip.o ipsopt.o y.tab.o lex.yy.o
10ROBJS=ipresend.o ip.o resend.o $(IPFT)
11TOBJS=iptest.o iptests.o ip.o
12BPF=sbpf.o
13NIT=snit.o
14SUNOS4=sock.o arp.o inet_addr.o
15BSD=sock.o 44arp.o
16LINUX=lsock.o slinux.o larp.o
17LINUXK=
18TOP=..
19SUNOS5=dlcommon.o sdlpi.o arp.o inet_addr.o
20ULTRIX=ultrix.o sock.o arp.o inet_addr.o
21HPUX=hpux.o sock.o arp.o inet_addr.o
22
23#CC=gcc
24DEBUG=-g
25CFLAGS=$(DEBUG) -I. -Iipf
26#
27MFLAGS="BINDEST=$(BINDEST)" "SBINDEST=$(SBINDEST)" "MANDIR=$(MANDIR)" \
28	"IPFLKM=$(IPFLKM)" \
29	"IPFLOG=$(IPFLOG)" "LOGFAC=$(LOGFAC)" "POLICY=$(POLICY)" \
30	"SOLARIS2=$(SOLARIS2)" "DEBUG=$(DEBUG)" "DCPU=$(CPU)" \
31	"CPUDIR=$(CPUDIR)"
32#
33all:
34	@echo "Use one of these targets:"
35	@echo "	sunos4-nit (standard SunOS 4.1.x)"
36	@echo "	sunos4-bpf (SunOS4.1.x with BPF in the kernel)"
37	@echo "	bsd-bpf (4.4BSD variant with BPF in the kernel)"
38	@echo "	linux10 (Linux 1.0 kernels)"
39	@echo "	linux12 (Linux 1.2 kernels)"
40	@echo "	linux20 (Linux 2.0 kernels)"
41	@echo "	sunos5 (Solaris 2.x)"
42
43ipf:
44	-if [ ! -d iplang ] ; then ln -s ../iplang iplang; fi
45	-if [ ! -d netinet ] ; then ln -s ../netinet netinet; fi
46	-if [ ! -d ipf ] ; then ln -s .. ipf; fi
47
48y.tab.o: iplang/iplang_y.y
49	-if [ -h iplang ] ; then \
50		(cd iplang; ${MAKE} $(MFLAGS) 'DESTDIR=../ipsend' ) \
51	else \
52		(cd iplang; ${MAKE} $(MFLAGS) 'DESTDIR=..' ) \
53	fi
54
55lex.yy.o: iplang/iplang_l.l
56	-if [ -h iplang ] ; then \
57		(cd iplang; ${MAKE} $(MFLAGS) 'DESTDIR=../ipsend' ) \
58	else \
59		(cd iplang; ${MAKE} $(MFLAGS) 'DESTDIR=..' ) \
60	fi
61
62.c.o:
63	$(CC) $(CFLAGS) $(LINUXK) -c $< -o $@
64
65install:
66	-$(INSTALL) -cs -g wheel -m 755 -o root ipsend ipresend iptest $(BINDEST)
67
68bpf sunos4-bpf :
69	make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(BPF) $(SUNOS4)" "CC=$(CC)" \
70		"CFLAGS=$(CFLAGS) -DDOSOCKET" "LLIB=-ll"
71	make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(BPF) $(SUNOS4)" "CC=$(CC)" \
72		"CFLAGS=$(CFLAGS) -DDOSOCKET"
73	make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(BPF) $(SUNOS4)" "CC=$(CC)" \
74		"CFLAGS=$(CFLAGS) -DDOSOCKET"
75
76nit sunos4 sunos4-nit :
77	make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(NIT) $(SUNOS4)" "CC=$(CC)" \
78		"CFLAGS=$(CFLAGS) -DDOSOCKET" "LLIB=-ll"
79	make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(NIT) $(SUNOS4)" "CC=$(CC)" \
80		"CFLAGS=$(CFLAGS) -DDOSOCKET"
81	make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(NIT) $(SUNOS4)" "CC=$(CC)" \
82		"CFLAGS=$(CFLAGS) -DDOSOCKET"
83
84dlpi sunos5 :
85	make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(SUNOS5)" "CC=$(CC)" \
86		CFLAGS="$(CFLAGS) -Dsolaris" "LIBS=-lsocket -lnsl" "LLIB=-ll"
87	make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(SUNOS5)" "CC=$(CC)" \
88		CFLAGS="$(CFLAGS) -Dsolaris" "LIBS=-lsocket -lnsl"
89	make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(SUNOS5)" "CC=$(CC)" \
90		CFLAGS="$(CFLAGS) -Dsolaris" "LIBS=-lsocket -lnsl"
91
92bsd-bpf :
93	make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(BPF) $(BSD)" "CC=$(CC)" \
94		"CFLAGS=$(CFLAGS) -DDOSOCKET" "LLIB=-ll"
95	make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(BPF) $(BSD)" "CC=$(CC)" \
96		"CFLAGS=$(CFLAGS) -DDOSOCKET"
97	make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(BPF) $(BSD)" "CC=$(CC)" \
98		"CFLAGS=$(CFLAGS) -DDOSOCKET"
99
100linuxrev :
101	make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(LINUX)" "CC=$(CC)" \
102		CFLAGS="$(CFLAGS) $(INC) -DDOSOCKET" $(LINUXK)
103	make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(LINUX)" "CC=$(CC)" \
104		CFLAGS="$(CFLAGS) $(INC) -DDOSOCKET" $(LINUXK)
105	make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(LINUX)" "CC=$(CC)" \
106		CFLAGS="$(CFLAGS) $(INC) -DDOSOCKET" $(LINUXK)
107
108linux10:
109	make linuxrev 'LINUXK="LINUXK=-DLINUX=0100"' \
110		"INC=-I/usr/src/linux/include" "LLIB=-lfl"
111
112linux12:
113	make linuxrev 'LINUXK="LINUXK=-DLINUX=0102"' "INC=-I/usr/src/linux" \
114		"LLIB=-lfl"
115
116linux20:
117	make linuxrev 'LINUXK="LINUXK=-DLINUX=0200"' \
118		"INC=-I/usr/src/linux/include" "LLIB=-lfl" "ELIB=-lelf"
119
120ultrix :
121	make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(ULTRIX)" "CC=$(CC)" \
122		CFLAGS="$(CFLAGS)" "LIBS=" "LLIB=-ll"
123	make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(ULTRIX)" "CC=$(CC)" \
124		CFLAGS="$(CFLAGS)" "LIBS="
125	make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(ULTRIX)" "CC=$(CC)" \
126		CFLAGS="$(CFLAGS)" "LIBS="
127
128hpux9 :
129	make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(HPUX)" "CC=$(CC)" \
130		CFLAGS="$(CFLAGS)" "LIBS="
131	make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(HPUX)" "CC=$(CC)" \
132		CFLAGS="$(CFLAGS)" "LIBS="
133	make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(HPUX)" "CC=$(CC)" \
134		CFLAGS="$(CFLAGS)" "LIBS="
135
136ipsend: ipf $(OBJS) $(UNIXOBJS)
137	$(CC) $(OBJS) $(UNIXOBJS) -o $@ $(LIBS) $(LLIB) $(ELIB)
138
139ipresend: $(ROBJS) $(UNIXOBJS)
140	$(CC) $(ROBJS) $(UNIXOBJS) -o $@ $(LIBS) $(ELIB)
141
142iptest: $(TOBJS) $(UNIXOBJS)
143	$(CC) $(TOBJS) $(UNIXOBJS) -o $@ $(LIBS) $(ELIB)
144
145ipft_ef.o: ipf/ipft_ef.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h
146	$(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_ef.c -o $@
147
148ipft_hx.o: ipf/ipft_hx.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h
149	$(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_hx.c -o $@
150
151ipft_pc.o: ipf/ipft_pc.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h
152	$(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_pc.c -o $@
153
154ipft_sn.o: ipf/ipft_sn.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h
155	$(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_sn.c -o $@
156
157ipft_td.o: ipf/ipft_td.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h
158	$(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_td.c -o $@
159
160ipft_tx.o: ipf/ipft_tx.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h
161	$(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_tx.c -o $@
162
163opt.o: ipf/opt.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h
164	$(CC) $(CFLAGS) $(LINUXK) -c ipf/opt.c -o $@
165
166inet_addr.o: ipf/inet_addr.c
167	$(CC) $(CFLAGS) $(LINUXK) -c ipf/inet_addr.c -o $@
168
169clean:
170	rm -rf *.o *core a.out ipsend ipresend iptest
171	if [ -d iplang ]; then (cd iplang; $(MAKE) $(MFLAGS) clean); fi
172	if [ -d $(TOP)/iplang ]; then (cd $(TOP)/iplang; $(MAKE) $(MFLAGS) clean); fi
173
174do-cvs:
175	find . -type d -name CVS -print | xargs /bin/rm -rf
176	find . -type f -name .cvsignore -print | xargs /bin/rm -f
177