Makefile.tools revision 2535:b66cbb80977f
1228753Smm#
2228753Smm# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
3228753Smm# Use is subject to license terms.
4228753Smm#
5228753Smm#
6228753Smm# ident	"%Z%%M%	%I%	%E% SMI"
7228753Smm#
8228753Smm
9228753SmmPROG=		ipf ipfs ipmon ipnat ippool ipfstat
10228753SmmIPFPROG=	ipftest
11228753Smm
12228753SmmIPF_OBJS=	ipf.o ipfcomp.o ipf_y.o ipf_l.o
13228753SmmIPFS_OBJS=	ipfs.o
14228753SmmIPFSTAT_OBJS=	ipfstat.o
15228753SmmIPMON_OBJS=	ipmon.o ipmon_y.o ipmon_l.o
16228753SmmIPNAT_OBJS=	ipnat.o ipnat_y.o ipnat_l.o
17228753SmmIPPOOL_OBJS=	ippool.o ippool_y.o ippool_l.o
18228753SmmIPFTEST_OBJS=	ipftest.o  \
19228753Smm		ip_fil.o ip_state.o \
20228753Smm		ip_frag.o ip_nat.o fil.o \
21228753Smm		ip_htable.o ip_lookup.o \
22228753Smm		ip_proxy.o ip_auth.o ip_log.o \
23228753Smm		ipf_y.o ipf_l.o \
24228753Smm		ipnat_y.o ipnat_l.o \
25228753Smm		ippool_y.o ippool_l.o \
26228763Smm		ip_pool.o radix.o
27228753Smm
28228753SmmOBJS=		$(IPF_OBJS) $(IPFS_OBJS) $(IPFSTAT_OBJS) \
29228753Smm		$(IPMON_OBJS) $(IPNAT_OBJS) $(IPFTEST_OBJS)
30228753Smm
31228753SmmOBJSL=		$(IPF_OBJS) $(IPFS_OBJS) $(IPFSTAT_OBJS) \
32228753Smm		$(IPMON_OBJS) $(IPNAT_OBJS)
33228753Smm
34228753SmmSRCS=		$(OBJSL:%.o=../%.c)
35228753Smm
36228753Smminclude ../../../Makefile.cmd
37228753Smminclude ../../Makefile.ipf
38228753Smm
39228753SmmLDLIBS		+= $(LIBBPF)
40228753Smm
41228753SmmCPPFLAGS	+= -I. -DIPFILTER_LOOKUP -DIPFILTER_LOG
42228753Smm
43228753Smmipfstat.o	:=	CPPFLAGS += -DSTATETOP
44228753Smmipfstat		:=	LDLIBS += -lcurses
45228753Smm
46228753Smmipf		:=	LDLIBS += -lsocket -lnsl
47228753Smmipftest		:=	LDLIBS += -lsocket -lnsl -lmd
48228753Smmipfstat		:=	LDLIBS += -lsocket -lnsl -lkvm -lelf
49228753Smmipmon		:=	LDLIBS += -lsocket -lnsl
50228753Smmipnat		:=	LDLIBS += -lsocket -lnsl -lkvm -lelf
51228753Smmippool		:=	LDLIBS += -lsocket -lnsl -lkvm
52228753Smm
53228753SmmCLEANFILES	+= $(OBJS)
54228753Smm
55228753SmmROOTIPF=	$(ROOTLIB)/ipf
56228753SmmROOTIPF32=	$(ROOTIPF)/$(MACH32)
57228753SmmROOTIPF64=	$(ROOTIPF)/$(MACH64)
58228753Smm
59228753SmmROOTIPFPROG32=	$(IPFPROG:%=$(ROOTIPF32)/%)
60228753SmmROOTIPFPROG64=	$(IPFPROG:%=$(ROOTIPF64)/%)
61228753Smm
62228753SmmROOTIPFLINKS=		$(IPFPROG:%=$(ROOTIPF)/%)
63228753SmmROOTUSRSBINLINKS=	$(PROG:%=$(ROOTUSRSBIN)/%)
64228753Smm
65228753Smm$(ROOTIPF32):
66228753Smm	$(INS.dir)
67228753Smm
68228753Smm$(ROOTIPF64):
69228753Smm	$(INS.dir)
70228753Smm
71228753Smm$(ROOTIPF)/%: %
72228753Smm	$(INS.file)
73228753Smm
74228753Smm$(ROOTIPF32)/%: %
75228753Smm	$(INS.file)
76228753Smm
77228753Smm$(ROOTIPF64)/%: %
78228753Smm	$(INS.file)
79228753Smm
80228753Smm$(ROOTUSRSBINLINKS): FRC
81228753Smm	-$(RM) $@; $(LN) $(ISAEXEC) $@
82228753Smm
83228753Smm$(ROOTIPFLINKS): FRC
84228753Smm	-$(RM) $@; $(LN) $(ISAEXEC) $@
85228753Smm
86228753Smm
87228753Smm.KEEP_STATE:
88228753Smm
89228753Smmipf:	$(IPF_OBJS) $(LIBIPF)
90228753Smm	$(LINK.c) -o ipf $(IPF_OBJS) $(LDLIBS)
91228753Smm	$(POST_PROCESS)
92228753Smm
93228753Smmipf_y.o: ../ipf_y.c $(COMMONIPF)/netinet/ip_fil.h $(COMMONIPF)/ipf.h \
94228753Smm	../ipf_y.c ../ipf_l.h
95228753Smm
96228753Smm../ipf_y.c ../ipf_y.h: ../ipf_y.y
97228753Smm	$(YACC) -d -b ipf ../ipf_y.y
98228753Smm	sed -e 's/yy/ipf_yy/g' -e 's/y.tab.h/ipf_y.c/' \
99228753Smm	   ipf.tab.c > ../ipf_y.c
100228753Smm	sed -e 's/yy/ipf_yy/g' -e 's/y.tab.h/ipf_y.h/' \
101228753Smm	   ipf.tab.h > ../ipf_y.h
102228753Smm
103228753Smmipf_l.o: ../ipf_l.c $(COMMONIPF)/netinet/ip_fil.h $(COMMONIPF)/ipf.h  \
104228753Smm	 ../ipf_y.h ../ipf_l.h
105228753Smm	$(COMPILE.c) ../ipf_l.c -o $@
106228753Smm
107228753Smm../ipf_l.c: ../lexer.c $(COMMONIPF)/ipf.h $(COMMONIPF)/netinet/ip_fil.h
108228753Smm	sed -e 's/yy/ipf_yy/g' -e 's/y.tab.h/ipf_y.h/' \
109228753Smm	       -e 's/lexer.h/ipf_l.h/' ../lexer.c > $@
110228753Smm
111228753Smm../ipf_l.h: ../lexer.h
112228753Smm	sed -e 's/yy/ipf_yy/g' ../lexer.h > $@
113228753Smm
114228753Smmipfs:	$(IPFS_OBJS)
115228753Smm	$(LINK.c) -o ipfs $(IPFS_OBJS) $(LDLIBS)
116228753Smm	$(POST_PROCESS)
117228753Smm
118ipfstat:	$(IPFSTAT_OBJS)
119	$(LINK.c) -o ipfstat $(IPFSTAT_OBJS) $(LDLIBS)
120	$(POST_PROCESS)
121
122ipmon:	$(IPMON_OBJS) $(LIBIPF)
123	$(LINK.c) -o ipmon $(IPMON_OBJS) $(LDLIBS)
124	$(POST_PROCESS)
125
126ipmon_y.o: ../ipmon_y.c $(COMMONIPF)/ipmon.h \
127	../ipmon_y.h ../ipmon_l.h
128
129../ipmon_y.c ../ipmon_y.h: ../ipmon_y.y
130	$(YACC) -d -b ipmon ../ipmon_y.y
131	sed -e 's/yy/ipmon_yy/g' \
132	    -e 's/extern [a-z]* .*();//' \
133	    -e 's/^\(static [a-z]* .*\)();/\1(void);/' \
134	   ipmon.tab.c > ../ipmon_y.c
135	sed -e 's/yy/ipmon_yy/g' -e 's/y.tab.h/ipmon_y.h/' \
136	   ipmon.tab.h > ../ipmon_y.h
137
138ipmon_l.o: ../ipmon_l.c $(COMMONIPF)/ipmon.h ../ipmon_y.h ../ipmon_l.h
139	$(COMPILE.c) ../ipmon_l.c -o $@
140
141../ipmon_l.c: ../lexer.c $(COMMONIPF)/ipmon.h
142	sed -e 's/yy/ipmon_yy/g' -e 's/y.tab.h/ipmon_y.h/' \
143            -e 's/lexer.h/ipmon_l.h/' ../lexer.c > $@
144
145../ipmon_l.h: ../lexer.h
146	sed -e 's/yy/ipmon_yy/g' ../lexer.h > $@
147
148ipnat:	$(IPNAT_OBJS) $(LIBIPF)
149	$(LINK.c) -o ipnat $(IPNAT_OBJS) $(LDLIBS)
150	$(POST_PROCESS)
151
152ipnat_y.o: ../ipnat_y.c $(COMMONIPF)/netinet/ip_nat.h \
153	../ipnat_y.h ../ipnat_l.h
154
155../ipnat_y.c ../ipnat_y.h: ../ipnat_y.y
156	$(YACC) -d -b ipnat ../ipnat_y.y
157	sed -e 's/yy/ipnat_yy/g' \
158	    -e 's/extern [a-z]* .*();//' \
159	    -e 's/^\(static [a-z]* .*\)();/\1(void);/' \
160	   ipnat.tab.c > ../ipnat_y.c
161	sed -e 's/yy/ipnat_yy/g' -e 's/y.tab.h/ipnat_y.h/' \
162	   ipnat.tab.h > ../ipnat_y.h
163
164ipnat_l.o: ../ipnat_l.c $(COMMONIPF)/netinet/ip_nat.h ../ipnat_l.h
165	$(COMPILE.c) ../ipnat_l.c -o $@
166
167../ipnat_l.c: ../lexer.c $(COMMONIPF)/netinet/ip_nat.h
168	sed -e 's/yy/ipnat_yy/g' -e 's/y.tab.h/ipnat_y.h/' \
169	       -e 's/lexer.h/ipnat_l.h/' ../lexer.c > $@
170
171../ipnat_l.h: ../lexer.h
172	sed -e 's/yy/ipnat_yy/g' ../lexer.h > $@
173
174ippool:	$(IPPOOL_OBJS) $(LIBIPF)
175	$(LINK.c) -o ippool $(IPPOOL_OBJS) $(LDLIBS)
176	$(POST_PROCESS)
177
178ippool_y.o: ../ippool_y.c $(COMMONIPF)/netinet/ip_pool.h \
179	../ippool_y.h ../ippool_l.h
180
181../ippool_y.c ../ippool_y.h: ../ippool_y.y
182	$(YACC) -d -b ippool ../ippool_y.y
183	sed -e 's/yy/ippool_yy/g' \
184	    -e 's/extern [a-z]* .*();//' \
185	    -e 's/^\(static [a-z]* .*\)();/\1(void);/' \
186	   ippool.tab.c > ../ippool_y.c
187	sed -e 's/yy/ippool_yy/g' -e 's/y.tab.h/ippool_y.h/' \
188	   ippool.tab.h > ../ippool_y.h
189
190ippool_l.o: ../ippool_l.c $(COMMONIPF)/netinet/ip_pool.h ../ippool_l.h
191	$(COMPILE.c) ../ippool_l.c -o $@
192
193../ippool_l.c: ../lexer.c $(COMMONIPF)/netinet/ip_pool.h
194	sed -e 's/yy/ippool_yy/g' -e 's/y.tab.h/ippool_y.h/' \
195	       -e 's/lexer.h/ippool_l.h/' ../lexer.c > $@
196
197../ippool_l.h: ../lexer.h
198	sed -e 's/yy/ippool_yy/g' ../lexer.h > $@
199
200ipftest:	$(IPFTEST_OBJS) $(LIBIPF)
201	$(LINK.c) -zignore -o ipftest $(IPFTEST_OBJS) $(LDLIBS)  
202	$(POST_PROCESS)
203
204clean:
205	-$(RM) $(CLEANFILES)
206
207lint: 	lint_SRCS
208
209%.o:	$(SRC)/uts/common/inet/ipf/%.c
210	$(COMPILE.c) $<
211
212%.o:	../%.c
213	$(COMPILE.c) $<
214
215%.o:	$(SRC)/common/net/patricia/%.c
216	$(COMPILE.c) $<
217
218include ../../../Makefile.targ
219
220FRC:
221