1SCCSID = "@(#)pimakefile 1.12 10/19/80"
2WHOAMI = pi
3INSTALLNAME = /usr/ucb/pi
4VERSION = 2.0
5
6MKSTR = /usr/ucb/mkstr
7EYACC = /usr/ucb/eyacc
8RM = -rm -f
9GET = sccs get
10
11CFLAGS = -O -w
12LDFLAGS = -z
13
14LIBDIR = /usr/lib
15TMPDIR = tmp
16
17ERRORSTRINGS = ${WHOAMI}${VERSION}strings
18
19SRCS =	ato.c \
20	call.c case.c clas.c const.c conv.c cset.c \
21	error.c fdec.c flvalue.c func.c gen.c hash.c \
22	lab.c lookup.c lval.c stklval.c \
23	main.c nl.c proc.c put.c \
24	rec.c rval.c stkrval.c\
25	stat.c string.c subr.c \
26	tree.c type.c var.c \
27	TRdata.c \
28	treen.c putn.c yycopy.c \
29	yycosts.c yyerror.c yyget.c yyid.c yylex.c yymain.c yyoptions.c \
30	yypanic.c yyparse.c yyprint.c yyput.c yyrecover.c yyseman.c yytree.c \
31	p2put.c pcforop.c stab.c pcproc.c pcfunc.c pccaseop.c pclval.c
32
33HDRS =	0.h OPnames.h align.h iorec.h objfmt.h pstab.h pc.h pcops.h \
34	send.h tree.h whoami.h yy.h
35
36OTHERS = pas.y opc.c version.c gram pic.c
37
38OBJS =	ato.o \
39	call.o case.o clas.o const.o conv.o cset.o \
40	error.o fdec.o flvalue.o func.o gen.o hash.o \
41	lab.o lookup.o lval.o stklval.o \
42	main.o nl.o proc.o put.o \
43	rec.o rval.o stkrval.o\
44	stat.o string.o subr.o \
45	tree.o type.o var.o \
46	TRdata.o \
47	treen.o putn.o yycopy.o \
48	y.tab.o \
49	yycosts.o yyerror.o yyget.o yyid.o yylex.o yymain.o yyoptions.o \
50	yypanic.o yyparse.o yyprint.o yyput.o yyrecover.o yyseman.o yytree.o \
51	p2put.o pcforop.o stab.o pcproc.o pcfunc.o pccaseop.o pclval.o
52
53a.out: ${OBJS} version
54	./version > Version.c
55	${CC} ${CFLAGS} ${LDFLAGS} ${OBJS} Version.c
56
57sources: ${SRCS} ${HDRS} ${OTHERS}
58
59${SRCS} ${HDRS} ${OTHERS}:
60	${GET} ${REL} $@
61
62.c.o:
63	${RM} ${TMPDIR}/$*.c
64	${MKSTR} - ${ERRORSTRINGS} ${TMPDIR}/ $*.c
65	cd ${TMPDIR} ; ${CC} ${CFLAGS} -I.. -c $*.c ; mv $*.o  ../$*.o
66	${RM} ${TMPDIR}/$*.c
67
68y.tab.h: pas.y gram
69	${EYACC} pas.y > /dev/null
70	ex - y.tab.c <gram
71	@echo that makes y.tab.h and y.tab.c
72
73opcode.h: OPnames.h opc.c
74	cc opc.c -o opc
75	opc >opcode.h
76	${RM} opc
77
78pTree.h:
79	echo "/* this is not pTree.h */" > pTree.h
80
81version: version.c
82	${CC} version.c -o version
83
84clean:
85	${RM} *.o ${TMPDIR}/*.c
86	${RM} y.tab.h y.tab.c y.tab.out
87	${RM} ${ERRORSTRINGS}
88	${RM} version Version.c
89	${RM} a.out core *.list *.bak
90	${RM} opc.c opc pic tags
91	sccs clean
92
93print:	sources
94	@pr makefile READ_ME
95	@ls -ls | pr
96	@cc -o pic pic.c
97	@pic | pr
98	@rm pic
99	@pr 0.h whoami.h main.c pas.y
100	@pr OPnames.h opcode.h tree.h
101	@pr pc.h
102	@pr [a-ln-x]*.c
103	@pr yy.h yy*.c
104
105install: a.out
106	sccs check
107	cp ${ERRORSTRINGS} ${LIBDIR}/${ERRORSTRINGS}
108	cp ${INSTALLNAME} ${INSTALLNAME}.bak
109	cp a.out ${INSTALLNAME}
110
111depend:	sources
112	/bin/grep '^#[ 	]*include' *.h \
113		| sed '/<.*>/d' \
114		| sed 's/\(.*\):[^"]*"\([^"]*\)".*/\1: \2/' >makedep
115	/bin/grep '^#[ 	]*include' *.c \
116		| sed '/<.*>/d' \
117		| sed 's/:[^"]*"\([^"]*\)".*/: \1/' \
118		| sed 's/\.c/.o/' >>makedep
119	echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep
120	echo '$$r makedep' >>eddep
121	echo 'w' >>eddep
122	cp makefile makefile.bak
123	ed - makefile < eddep
124	rm eddep makedep
125	echo '# DEPENDENCIES MUST END AT END OF FILE' >> makefile
126	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> makefile
127	echo '# see make depend above' >> makefile
128
129# DO NOT DELETE THIS LINE -- make depend uses it
130
1310.h: pTree.h
132yy.h: y.tab.h
133TRdata.o: whoami.h
134TRdata.o: 0.h
135ato.o: whoami.h
136ato.o: 0.h
137call.o: whoami.h
138call.o: 0.h
139call.o: tree.h
140call.o: opcode.h
141call.o: objfmt.h
142call.o: pc.h
143call.o: pcops.h
144case.o: whoami.h
145case.o: 0.h
146case.o: tree.h
147case.o: opcode.h
148clas.o: whoami.h
149clas.o: 0.h
150clas.o: tree.h
151const.o: whoami.h
152const.o: 0.h
153const.o: tree.h
154conv.o: whoami.h
155conv.o: 0.h
156conv.o: opcode.h
157conv.o: pcops.h
158cset.o: whoami.h
159cset.o: 0.h
160cset.o: tree.h
161cset.o: opcode.h
162cset.o: objfmt.h
163cset.o: pc.h
164cset.o: pcops.h
165error.o: whoami.h
166error.o: 0.h
167error.o: yy.h
168fdec.o: whoami.h
169fdec.o: 0.h
170fdec.o: tree.h
171fdec.o: opcode.h
172fdec.o: objfmt.h
173fdec.o: align.h
174fdec.o: pc.h
175fdec.o: pcops.h
176flvalue.o: whoami.h
177flvalue.o: 0.h
178flvalue.o: tree.h
179flvalue.o: opcode.h
180flvalue.o: objfmt.h
181flvalue.o: pc.h
182flvalue.o: pcops.h
183func.o: whoami.h
184func.o: 0.h
185func.o: tree.h
186func.o: opcode.h
187gen.o: whoami.h
188gen.o: 0.h
189gen.o: tree.h
190gen.o: opcode.h
191gen.o: objfmt.h
192hash.o: whoami.h
193hash.o: 0.h
194hash.o: yy.h
195lab.o: whoami.h
196lab.o: 0.h
197lab.o: tree.h
198lab.o: opcode.h
199lab.o: objfmt.h
200lab.o: pc.h
201lab.o: pcops.h
202lookup.o: whoami.h
203lookup.o: 0.h
204lval.o: whoami.h
205lval.o: 0.h
206lval.o: tree.h
207lval.o: opcode.h
208lval.o: objfmt.h
209lval.o: pc.h
210lval.o: pcops.h
211main.o: whoami.h
212main.o: 0.h
213main.o: yy.h
214main.o: objfmt.h
215nl.o: whoami.h
216nl.o: 0.h
217nl.o: opcode.h
218nl.o: objfmt.h
219opc.o: OPnames.h
220p2put.o: whoami.h
221p2put.o: 0.h
222p2put.o: pcops.h
223p2put.o: pc.h
224pccaseop.o: whoami.h
225pccaseop.o: 0.h
226pccaseop.o: tree.h
227pccaseop.o: objfmt.h
228pccaseop.o: pcops.h
229pccaseop.o: pc.h
230pcforop.o: whoami.h
231pcforop.o: 0.h
232pcforop.o: opcode.h
233pcforop.o: tree.h
234pcforop.o: pc.h
235pcforop.o: pcops.h
236pcfunc.o: whoami.h
237pcfunc.o: 0.h
238pcfunc.o: tree.h
239pcfunc.o: opcode.h
240pcfunc.o: pc.h
241pcfunc.o: pcops.h
242pclval.o: whoami.h
243pclval.o: 0.h
244pclval.o: tree.h
245pclval.o: opcode.h
246pclval.o: objfmt.h
247pclval.o: pc.h
248pclval.o: pcops.h
249pcproc.o: whoami.h
250pcproc.o: 0.h
251pcproc.o: tree.h
252pcproc.o: opcode.h
253pcproc.o: pc.h
254pcproc.o: pcops.h
255pic.o: OPnames.h
256proc.o: whoami.h
257proc.o: 0.h
258proc.o: tree.h
259proc.o: opcode.h
260proc.o: objfmt.h
261put.o: whoami.h
262put.o: opcode.h
263put.o: 0.h
264put.o: objfmt.h
265put.o: pc.h
266put.o: OPnames.h
267rec.o: whoami.h
268rec.o: 0.h
269rec.o: tree.h
270rec.o: opcode.h
271rval.o: whoami.h
272rval.o: 0.h
273rval.o: tree.h
274rval.o: opcode.h
275rval.o: objfmt.h
276rval.o: pc.h
277rval.o: pcops.h
278stab.o: whoami.h
279stab.o: 0.h
280stab.o: pstab.h
281stab.o: pc.h
282stat.o: whoami.h
283stat.o: 0.h
284stat.o: tree.h
285stat.o: objfmt.h
286stat.o: pcops.h
287stat.o: pc.h
288stat.o: opcode.h
289stklval.o: whoami.h
290stklval.o: 0.h
291stklval.o: tree.h
292stklval.o: opcode.h
293stklval.o: objfmt.h
294stkrval.o: whoami.h
295stkrval.o: 0.h
296stkrval.o: tree.h
297stkrval.o: opcode.h
298stkrval.o: objfmt.h
299stkrval.o: pcops.h
300string.o: whoami.h
301string.o: 0.h
302string.o: send.h
303subr.o: whoami.h
304subr.o: 0.h
305tree.o: whoami.h
306tree.o: 0.h
307type.o: whoami.h
308type.o: 0.h
309type.o: tree.h
310type.o: objfmt.h
311var.o: whoami.h
312var.o: 0.h
313var.o: align.h
314var.o: pc.h
315var.o: pcops.h
316var.o: iorec.h
317y.tab.o: whoami.h
318y.tab.o: 0.h
319y.tab.o: yy.h
320y.tab.o: tree.h
321yycopy.o: 0.h
322yycopy.o: yy.h
323yycosts.o: whoami.h
324yycosts.o: 0.h
325yycosts.o: yy.h
326yyerror.o: whoami.h
327yyerror.o: 0.h
328yyerror.o: yy.h
329yyget.o: whoami.h
330yyget.o: 0.h
331yyget.o: yy.h
332yyid.o: whoami.h
333yyid.o: 0.h
334yyid.o: yy.h
335yylex.o: whoami.h
336yylex.o: 0.h
337yylex.o: yy.h
338yymain.o: whoami.h
339yymain.o: 0.h
340yymain.o: yy.h
341yymain.o: objfmt.h
342yyoptions.o: whoami.h
343yyoptions.o: 0.h
344yyoptions.o: yy.h
345yypanic.o: whoami.h
346yypanic.o: 0.h
347yypanic.o: yy.h
348yyparse.o: whoami.h
349yyparse.o: 0.h
350yyparse.o: yy.h
351yyprint.o: whoami.h
352yyprint.o: 0.h
353yyprint.o: yy.h
354yyput.o: whoami.h
355yyput.o: 0.h
356yyput.o: tree.h
357yyput.o: yy.h
358yyrecover.o: whoami.h
359yyrecover.o: 0.h
360yyrecover.o: yy.h
361yyseman.o: whoami.h
362yyseman.o: 0.h
363yyseman.o: yy.h
364yytree.o: whoami.h
365yytree.o: 0.h
366yytree.o: tree.h
367# DEPENDENCIES MUST END AT END OF FILE
368# IF YOU PUT STUFF HERE IT WILL GO AWAY
369# see make depend above
370