xref: /original-bsd/usr.bin/pascal/pi/Makefile (revision 54e6d6c7)
1#
2# Copyright (c) 1980 Regents of the University of California.
3# All rights reserved.  The Berkeley software License Agreement
4# specifies the terms and conditions for redistribution.
5#
6#	@(#)pimakefile	5.2 (Berkeley) 9/7/85
7#
8SCCSID = "@(#)pimakefile 5.2 9/7/85"
9
10INSTALLDIR=	${DESTDIR}/usr/bin
11INSTALLNAME=	${INSTALLDIR}/pi
12LIBDIR=	${DESTDIR}/usr/lib
13BINDIR=	../pi
14SRCDIR=	../src
15VPATH=	../src
16WHOAMI=	pi
17VERSION=	3.1
18DATE=	9/7/85
19EYACC=	../eyacc/eyacc
20CFLAGS=	-O
21ERRORSTRINGS=	${WHOAMI}${VERSION}strings
22OLDSTRINGS=	${WHOAMI}[0-9]*.[0-9]*strings
23HOWFILE=	how_${WHOAMI}
24
25SRCS=	ato.c call.c case.c clas.c const.c conv.c cset.c error.c fdec.c \
26	fend.c fhdr.c flvalue.c forop.c func.c gen.c hash.c lab.c lookup.c \
27	lval.c stklval.c main.c nl.c proc.c put.c rec.c rval.c stkrval.c \
28	savenl.c stat.c string.c subr.c tmps.c tree.c type.c var.c TRdata.c \
29	treen.c yycopy.c yycosts.c yyerror.c yyget.c yyid.c yylex.c yymain.c \
30	yyoptions.c yypanic.c yyparse.c yyprint.c yyput.c yyrecover.c \
31	yyseman.c yytree.c p2put.c stab.c pcproc.c pcfunc.c pccaseop.c \
32	pclval.c sconv.c
33OBJS=	ato.o call.o case.o clas.o const.o conv.o cset.o error.o fdec.o \
34	fend.o fhdr.o flvalue.o forop.o func.o gen.o hash.o lab.o lookup.o \
35	lval.o stklval.o main.o nl.o proc.o put.o rec.o rval.o stkrval.o \
36	savenl.o stat.o string.o subr.o tmps.o tree.o type.o var.o TRdata.o \
37	treen.o yycopy.o yycosts.o yyerror.o yyget.o yyid.o yylex.o yymain.o \
38	yyoptions.o yypanic.o yyparse.o yyprint.o yyput.o yyrecover.o \
39	yyseman.o yytree.o p2put.o stab.o pcproc.o pcfunc.o pccaseop.o \
40	pclval.o sconv.o
41
42all a.out: ${OBJS} y.tab.o config.c
43	${CC} ${CFLAGS} ${OBJS} y.tab.o config.c
44
45${OBJS}:
46	rm -f `basename $@ .o`.c
47	cd ${SRCDIR}; \
48	    mkstr - ${BINDIR}/${ERRORSTRINGS} ${BINDIR}/ `basename $@ .o`.c
49	${CC} ${CFLAGS} -I. -I${SRCDIR} -c `basename $@ .o`.c
50	rm -f `basename $@ .o`.c
51
52lint:
53	cd ${SRCDIR}; lint -I. -I${BINDIR} ${SRCS} ${BINDIR}/*.c
54
55y.tab.h y.tab.c: ${SRCDIR}/pas.y ${SRCDIR}/gram
56	rm -f y.tab.h y.tab.c
57	${EYACC} ${SRCDIR}/pas.y > /dev/null
58	ex - y.tab.c <${SRCDIR}/gram
59	@echo that makes y.tab.h and y.tab.c
60
61y.tab.o: y.tab.c y.tab.h
62	rm -f x.y.tab.c
63	mkstr - ${ERRORSTRINGS} x. y.tab.c
64	${CC} ${CFLAGS} -I${SRCDIR} -I. -c x.y.tab.c
65	mv x.y.tab.o y.tab.o
66	rm -f x.y.tab.c
67
68picture: ${SRCDIR}/OPnames.h ${SRCDIR}/pic.c
69	rm -f picture
70	cc ${SRCDIR}/pic.c -o pic
71	pic >picture
72	rm -f pic
73
74opcode.h: ${SRCDIR}/OPnames.h ${SRCDIR}/opc.c
75	rm -f opcode.h
76	cc ${SRCDIR}/opc.c -o opc
77	opc >opcode.h
78	rm -f opc
79
80${SRCDIR}/0.h:
81	touch -f ${SRCDIR}/0.h
82
83config.c: ${SRCDIR}/CONFIG.c
84	sed -e "s?VERSION?${VERSION}?g" \
85	    -e "s?DATE?${DATE}?g" \
86	    -e "s?INSTALLDIR?${INSTALLDIR}?g" \
87	    -e "s?LIBDIR?${LIBDIR}?g" \
88	    -e "s?ERRORSTRINGS?${ERRORSTRINGS}?g" \
89	    -e "s?HOWFILE?${HOWFILE}?g" \
90	    < ${SRCDIR}/CONFIG.c >config.c
91
92cleandir clean:
93	rm -f *.o *.c y.tab.h y.tab.c y.tab.out ${WHOAMI}*strings
94	rm -f config.c opcode.h picture a.out core *.list *.bak errs
95	rm -f opc pic tags
96
97install: a.out
98	rm -f ${LIBDIR}/${OLDSTRINGS}
99	install -c -m 664 ${ERRORSTRINGS} ${LIBDIR}/${ERRORSTRINGS}
100	install -s -m 775 a.out ${INSTALLNAME}
101
102# Make depend must make clean first, since otherwise VPATH screws up
103# which sources we 'make depend' from, if there are any .c's lying around.
104depend: clean ${SRCS} opcode.h y.tab.h
105	mkdep ${CFLAGS} -I. ${SRCS}
106