first cut at new makefile; file reorg, new depend
[unix-history] / usr / src / usr.bin / pascal / pi / Makefile
CommitLineData
f24cda81
KB
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
f536fd9c
KB
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
f24cda81
KB
44
45${OBJS}:
f536fd9c 46 rm -f `basename $@ .o`.c
f24cda81 47 cd ${SRCDIR}; \
f536fd9c 48 mkstr - ${BINDIR}/${ERRORSTRINGS} ${BINDIR}/ `basename $@ .o`.c
f24cda81 49 ${CC} ${CFLAGS} -I. -I${SRCDIR} -c `basename $@ .o`.c
f536fd9c 50 rm -f `basename $@ .o`.c
f24cda81
KB
51
52lint:
53 cd ${SRCDIR}; lint -I. -I${BINDIR} ${SRCS} ${BINDIR}/*.c
54
17cd062a 55y.tab.h y.tab.c: ${SRCDIR}/pas.y ${SRCDIR}/gram
f536fd9c 56 rm -f y.tab.h y.tab.c
f24cda81
KB
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
f536fd9c 60
f24cda81 61y.tab.o: y.tab.c y.tab.h
f536fd9c
KB
62 rm -f x.y.tab.c
63 mkstr - ${ERRORSTRINGS} x. y.tab.c
f24cda81
KB
64 ${CC} ${CFLAGS} -I${SRCDIR} -I. -c x.y.tab.c
65 mv x.y.tab.o y.tab.o
f536fd9c 66 rm -f x.y.tab.c
f24cda81
KB
67
68picture: ${SRCDIR}/OPnames.h ${SRCDIR}/pic.c
f536fd9c 69 rm -f picture
f24cda81
KB
70 cc ${SRCDIR}/pic.c -o pic
71 pic >picture
f536fd9c 72 rm -f pic
f24cda81
KB
73
74opcode.h: ${SRCDIR}/OPnames.h ${SRCDIR}/opc.c
f536fd9c 75 rm -f opcode.h
f24cda81
KB
76 cc ${SRCDIR}/opc.c -o opc
77 opc >opcode.h
f536fd9c 78 rm -f opc
f24cda81
KB
79
80${SRCDIR}/0.h:
f536fd9c 81 touch -f ${SRCDIR}/0.h
f24cda81 82
a0a718c9 83config.c: ${SRCDIR}/CONFIG.c
f24cda81
KB
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
f536fd9c
KB
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
f24cda81
KB
96
97install: a.out
f536fd9c 98 rm -f ${LIBDIR}/${OLDSTRINGS}
f24cda81
KB
99 install -c -m 664 ${ERRORSTRINGS} ${LIBDIR}/${ERRORSTRINGS}
100 install -s -m 775 a.out ${INSTALLNAME}
101
17cd062a
KB
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
a0a718c9 105 mkdep ${CFLAGS} -I. ${SRCS}