Makefile revision 67855
1#
2# Copyright (C) 1993-1998 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#
8BINDEST=/usr/sbin
9SBINDEST=/sbin
10MANDIR=/usr/share/man
11CC=cc -Wall -Wuninitialized -Wstrict-prototypes -Werror -O
12CFLAGS=-g -I$(TOP)
13#
14# For NetBSD/FreeBSD
15#
16DEVFS!=/usr/bin/lsvfs 2>&1 | sed -n 's/.*devfs.*/-DDEVFS/p'
17CPU!=uname -m
18INC=-I/usr/include -I/sys -I/sys/sys -I/sys/arch
19DEF=-D$(CPU) -D__$(CPU)__ -DINET -DKERNEL -D_KERNEL $(INC) $(DEVFS)
20IPDEF=$(DEF) -DGATEWAY -DDIRECTED_BROADCAST
21VNODESHDIR=/sys/kern
22MLD=$(ML) vnode_if.h
23ML=mln_ipl.c
24IPFILC=ip_fil.c
25LKM=if_ipl.o
26DLKM=
27MFLAGS="BINDEST=$(BINDEST)" "SBINDEST=$(SBINDEST)" "MANDIR=$(MANDIR)" \
28	'CFLAGS=$(CFLAGS) $(SOLARIS2)' "IPFLKM=$(IPFLKM)" \
29	"IPFLOG=$(IPFLOG)" "LOGFAC=$(LOGFAC)" "POLICY=$(POLICY)" \
30	"SOLARIS2=$(SOLARIS2)" "DEBUG=$(DEBUG)" "DCPU=$(CPU)" \
31	"CPUDIR=$(CPUDIR)"
32#
33########## ########## ########## ########## ########## ########## ##########
34#
35CP=/bin/cp
36RM=/bin/rm
37CHMOD=/bin/chmod
38INSTALL=install
39#
40MODOBJS=ip_fil.o fil_k.o ml_ipl.o ip_nat.o ip_frag.o ip_state.o ip_proxy.o \
41	ip_auth.o ip_log.o
42DFLAGS=$(IPFLKM) $(IPFLOG) $(DEF) $(DLKM)
43IPF=ipf.o parse.o common.o opt.o facpri.o
44IPT=ipt.o parse.o common.o fil.o ipft_sn.o ipft_ef.o ipft_td.o ipft_pc.o \
45    opt.o ipft_tx.o misc.o ip_frag_u.o ip_state_u.o ip_nat_u.o ip_proxy_u.o \
46    ip_auth_u.o ipft_hx.o ip_fil_u.o natparse.o facpri.o
47IPNAT=ipnat.o kmem.o natparse.o common.o
48FILS=fils.o parse.o kmem.o opt.o facpri.o common.o
49
50build all: ipf ipfs ipfstat ipftest ipmon ipnat $(LKM)
51
52ipfstat: $(FILS)
53	$(CC) $(DEBUG) $(CFLAGS) $(STATETOP_CFLAGS) $(STATETOP_INC) $(FILS) \
54	-o $@ $(LIBS) $(STATETOP_LIB)
55
56ipf: $(IPF)
57	$(CC) $(DEBUG) $(CFLAGS) $(IPF) -o $@ $(LIBS)
58	/bin/rm -f $(TOP)/ipf
59	ln -s `pwd`/ipf $(TOP)
60
61ipftest: $(IPT)
62	$(CC) $(DEBUG) $(CFLAGS) $(IPT) -o $@ $(LIBS)
63	/bin/rm -f $(TOP)/ipftest
64	ln -s `pwd`/ipftest $(TOP)
65
66ipnat: $(IPNAT)
67	$(CC) $(DEBUG) $(CFLAGS) $(IPNAT) -o $@ $(LIBS)
68
69ipfs: ipfs.o
70	$(CC) $(DEBUG) $(CFLAGS) ipfs.o -o $@ $(LIBS)
71
72tests:
73	(cd test; make )
74
75fils.o: $(TOP)/fils.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_frag.h \
76	$(TOP)/ip_compat.h $(TOP)/ip_state.h $(TOP)/ip_nat.h
77	$(CC) $(DEBUG) $(CFLAGS) $(STATETOP_CFLAGS) $(STATETOP_INC) \
78	-c $(TOP)/fils.c -o $@
79
80ipfs.o: $(TOP)/ipfs.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_state.h \
81	$(TOP)/ip_nat.h
82	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipfs.c -o $@
83
84fil.o: $(TOP)/fil.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_compat.h
85	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/fil.c -o $@
86
87fil_k.o: $(TOP)/fil.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_compat.h \
88	 $(TOP)/ipl.h
89	$(CC) $(DEBUG) $(CFLAGS) $(POLICY) $(DFLAGS) -c $(TOP)/fil.c -o $@
90
91ipf.o: $(TOP)/ipf.c $(TOP)/ip_fil.h $(TOP)/ipf.h
92	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipf.c -o $@
93
94ipt.o: $(TOP)/ipt.c $(TOP)/ip_fil.h $(TOP)/ipt.h $(TOP)/ipf.h
95	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipt.c -o $@
96
97misc.o: $(TOP)/misc.c $(TOP)/ip_fil.h $(TOP)/ipt.h $(TOP)/ipf.h
98	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/misc.c -o $@
99
100opt.o: $(TOP)/opt.c $(TOP)/ip_fil.h $(TOP)/ipf.h
101	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/opt.c -o $@
102
103ipnat.o: $(TOP)/ipnat.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_nat.h
104	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipnat.c -o $@
105
106natparse.o: $(TOP)/natparse.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_nat.h \
107	$(TOP)/ip_compat.h
108	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/natparse.c -o $@
109
110ipft_sn.o: $(TOP)/ipft_sn.c $(TOP)/ipt.h $(TOP)/ipf.h $(TOP)/ip_fil.h \
111	$(TOP)/snoop.h
112	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipft_sn.c -o $@
113
114ipft_ef.o: $(TOP)/ipft_ef.c $(TOP)/ipf.h $(TOP)/ip_fil.h $(TOP)/ipt.h
115	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipft_ef.c -o $@
116
117ipft_td.o: $(TOP)/ipft_td.c $(TOP)/ipf.h $(TOP)/ip_fil.h $(TOP)/ipt.h
118	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipft_td.c -o $@
119
120ipft_pc.o: $(TOP)/ipft_pc.c $(TOP)/ipf.h $(TOP)/ip_fil.h $(TOP)/ipt.h
121	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipft_pc.c -o $@
122
123ipft_tx.o: $(TOP)/ipft_tx.c $(TOP)/ipf.h $(TOP)/ip_fil.h $(TOP)/ipt.h
124	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipft_tx.c -o $@
125
126ipft_hx.o: $(TOP)/ipft_hx.c $(TOP)/ipf.h $(TOP)/ip_fil.h $(TOP)/ipt.h
127	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ipft_hx.c -o $@
128
129ip_nat_u.o: $(TOP)/ip_nat.c $(TOP)/ip_nat.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h
130	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ip_nat.c -o $@
131
132ip_proxy_u.o: $(TOP)/ip_proxy.c $(TOP)/ip_proxy.h $(TOP)/ip_compat.h \
133	$(TOP)/ip_fil.h $(TOP)/ip_ftp_pxy.c  $(TOP)/ip_nat.h
134	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ip_proxy.c -o $@
135
136ip_frag_u.o: $(TOP)/ip_frag.c $(TOP)/ip_frag.h $(TOP)/ip_compat.h \
137	$(TOP)/ip_fil.h
138	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ip_frag.c -o $@
139
140ip_state_u.o: $(TOP)/ip_state.c $(TOP)/ip_state.h $(TOP)/ip_compat.h \
141	$(TOP)/ip_fil.h $(TOP)/ip_nat.h
142	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ip_state.c -o $@
143
144ip_auth_u.o: $(TOP)/ip_auth.c $(TOP)/ip_auth.h $(TOP)/ip_compat.h \
145	$(TOP)/ip_fil.h
146	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/ip_auth.c -o $@
147
148ip_fil_u.o: $(TOP)/$(IPFILC) $(TOP)/ip_fil.h $(TOP)/ip_compat.h
149	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/$(IPFILC) -o $@
150
151if_ipl.o: $(MODOBJS) 
152	ld -r $(MODOBJS) -o $(LKM)
153	${RM} -f if_ipl
154
155ipf.ko ipl.ko: $(MODOBJS) 
156	gensetdefs $(MODOBJS)
157	$(CC) $(DEBUG) $(CFLAGS) -c setdef0.c
158	$(CC) $(DEBUG) $(CFLAGS) -c setdef1.c
159	ld -Bshareable -o $(LKM) setdef0.o $(MODOBJS) setdef1.o
160
161ip_nat.o: $(TOP)/ip_nat.c $(TOP)/ip_nat.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h
162	$(CC) $(DEBUG) $(CFLAGS) $(DFLAGS) -c $(TOP)/ip_nat.c -o $@
163
164ip_frag.o: $(TOP)/ip_frag.c $(TOP)/ip_frag.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h
165	$(CC) $(DEBUG) $(CFLAGS) $(DFLAGS) -c $(TOP)/ip_frag.c -o $@
166
167ip_state.o: $(TOP)/ip_state.c $(TOP)/ip_state.h $(TOP)/ip_compat.h \
168	$(TOP)/ip_fil.h $(TOP)/ip_nat.h
169	$(CC) $(DEBUG) $(CFLAGS) $(DFLAGS) -c $(TOP)/ip_state.c -o $@
170
171ip_proxy.o: $(TOP)/ip_proxy.c $(TOP)/ip_proxy.h $(TOP)/ip_compat.h \
172	$(TOP)/ip_fil.h $(TOP)/ip_ftp_pxy.c $(TOP)/ip_raudio_pxy.c \
173	$(TOP)/ip_nat.h
174	$(CC) $(DEBUG) $(CFLAGS) $(DFLAGS) -c $(TOP)/ip_proxy.c -o $@
175
176ip_auth.o: $(TOP)/ip_auth.c $(TOP)/ip_auth.h $(TOP)/ip_compat.h \
177	$(TOP)/ip_fil.h
178	$(CC) $(DEBUG) $(CFLAGS) $(DFLAGS) -c $(TOP)/ip_auth.c -o $@
179
180ip_fil.o: $(TOP)/$(IPFILC) $(TOP)/ip_fil.h $(TOP)/ip_compat.h $(TOP)/ip_nat.h
181	$(CC) $(DEBUG) $(CFLAGS) $(DFLAGS) -c $(TOP)/$(IPFILC) -o $@
182
183ip_log.o: $(TOP)/ip_log.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h
184	$(CC) $(DEBUG) $(CFLAGS) $(DFLAGS) -c $(TOP)/ip_log.c -o $@
185
186vnode_if.h: $(VNODESHDIR)/vnode_if.sh $(VNODESHDIR)/vnode_if.src
187	mkdir -p ../sys
188	sh $(VNODESHDIR)/vnode_if.sh $(VNODESHDIR)/vnode_if.src
189	if [ -f ../sys/vnode_if.h ] ; then mv ../sys/vnode_if.h .; fi
190	rmdir ../sys
191
192ml_ipl.o: $(TOP)/$(MLD) $(TOP)/ipl.h
193	-/bin/rm -f vnode_if.c
194	$(CC) -I. $(CFLAGS) $(DFLAGS) -c $(TOP)/$(ML) -o $@
195
196kmem.o: $(TOP)/kmem.c
197	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/kmem.c -o $@
198
199parse.o: $(TOP)/parse.c $(TOP)/ip_fil.h
200	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/parse.c -o $@
201
202common.o: $(TOP)/common.c $(TOP)/ip_fil.h
203	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/common.c -o $@
204
205facpri.o: $(TOP)/facpri.c $(TOP)/facpri.h
206	$(CC) $(DEBUG) $(CFLAGS) -c $(TOP)/facpri.c -o $@
207
208ipmon: $(TOP)/ipmon.c
209	$(CC) $(DEBUG) $(CFLAGS) $(LOGFAC) $(TOP)/ipmon.c -o $@ $(LIBS)
210
211clean:
212	${RM} -f *.core *.o ipt fils ipf ipfstat ipftest ipmon if_ipl ipnat \
213	vnode_if.h $(LKM) ioconf.h *.ko setdef1.c setdef0.c setdefs.h \
214	y.tab.? lex.yy.c ipfs
215
216	${MAKE} -f Makefile.ipsend ${MFLAGS} clean
217	-(for i in *; do \
218		if [ -d $${i} -a -f $${i}/Makefile ] ; then \
219			cd $${i}; (make clean); cd ..; \
220			rm $${i}/Makefile $${i}/Makefile.ipsend; \
221			rmdir $${i}; \
222		fi \
223	done)
224
225install:
226	-$(CP) $(TOP)/ip_fil.h /usr/include/netinet/ip_fil.h
227	-$(CHMOD) 444 /usr/include/netinet/ip_fil.h
228	-if [ -d /lkm -a -f if_ipl.o ] ; then \
229		cp if_ipl.o /lkm; \
230	fi
231	-if [ -d /modules -a -f ipf.ko ] ; then \
232		cp ipf.ko /modules; \
233	fi
234	-$(INSTALL) -cs -g wheel -m 755 -o root ipf $(SBINDEST)
235	-$(INSTALL) -cs -g wheel -m 755 -o root ipfs $(SBINDEST)
236	-$(INSTALL) -cs -g wheel -m 755 -o root ipnat $(SBINDEST)
237	-$(INSTALL) -cs -g wheel -m 755 -o root ipfstat $(SBINDEST)
238	-$(INSTALL) -cs -g wheel -m 755 -o root ipmon $(BINDEST)
239	-$(INSTALL) -cs -g wheel -m 755 -o root ipftest $(BINDEST)
240	(cd $(TOP)/man; make INSTALL=$(INSTALL) MANDIR=$(MANDIR) install; cd $(TOP))
241