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