1SCCSID = "@(#)pimakefile 1.9 10/03/80" 2 3MKSTR = /usr/ucb/mkstr 4EYACC = /usr/ucb/eyacc 5RM = -rm -f 6GET = sccs -d${SRCDIR} get 7 8CFLAGS = -O -w 9LDFLAGS = -z 10 11SRCDIR = /usr/src/cmd/pc0 12INSTALLDIR = /usr/ucb 13LIBDIR = /usr/lib 14TMPDIR = tmp 15 16ERRORSTRINGS = pi2.0strings 17 18SRCS = ato.c \ 19 call.c case.c clas.c const.c conv.c cset.c \ 20 error.c fdec.c flvalue.c func.c gen.c hash.c \ 21 lab.c lookup.c lval.c stklval.c \ 22 main.c nl.c proc.c put.c \ 23 rec.c rval.c stkrval.c\ 24 stat.c string.c subr.c \ 25 tree.c type.c var.c \ 26 TRdata.c \ 27 treen.c putn.c yycopy.c \ 28 yycosts.c yyerror.c yyget.c yyid.c yylex.c yymain.c yyoptions.c \ 29 yypanic.c yyparse.c yyprint.c yyput.c yyrecover.c yyseman.c yytree.c 30 31HDRS = 0.h OPnames.h align.h iorec.h objfmt.h send.h tree.h yy.h \ 32 pc.h pcops.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 flvalue.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 50a.out: ${OBJS} version 51 ./version > Version.c 52 ${CC} ${CFLAGS} ${LDFLAGS} ${OBJS} Version.c 53 54sources: whoami.h ${SRCS} ${HDRS} ${OTHERS} 55 56${SRCS} ${HDRS} ${OTHERS}: 57 ${GET} ${REL} $@ 58 59.c.o: 60 ${RM} ${TMPDIR}/$*.c 61 ${MKSTR} - ${ERRORSTRINGS} ${TMPDIR}/ $*.c 62 cd ${TMPDIR} ; ${CC} ${CFLAGS} -I.. -c $*.c ; mv $*.o ../$*.o 63 ${RM} ${TMPDIR}/$*.c 64 65whoami.h: 66 ${GET} ${REL} piwhoami.h 67 mv piwhoami.h whoami.h 68 69y.tab.h: pas.y gram 70 ${EYACC} pas.y > /dev/null 71 ex - y.tab.c <gram 72 @echo that makes y.tab.h and y.tab.c 73 74opcode.h: OPnames.h opc.c 75 cc opc.c -o opc 76 opc >opcode.h 77 ${RM} opc 78 79pTree.h: 80 echo "/* this is not pTree.h */" > pTree.h 81 82version: version.c 83 ${CC} version.c -o version 84 85clean: 86 ${RM} *.o ${TMPDIR}/*.c 87 ${RM} whoami.h y.tab.h y.tab.c y.tab.out 88 ${RM} ${ERRORSTRINGS} 89 ${RM} version Version.c 90 ${RM} a.out core *.list *.bak 91 ${RM} opc.c opc pic tags 92 sccs clean 93 94print: sources 95 @pr makefile READ_ME 96 @ls -ls | pr 97 @cc -o pic pic.c 98 @pic | pr 99 @rm pic 100 @pr 0.h whoami.h main.c pas.y 101 @pr OPnames.h opcode.h tree.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 ${INSTALLDIR}/pi ${INSTALLDIR}/pi.bak 109 cp a.out ${INSTALLDIR}/pi 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 220pic.o: OPnames.h 221proc.o: whoami.h 222proc.o: 0.h 223proc.o: tree.h 224proc.o: opcode.h 225proc.o: objfmt.h 226put.o: whoami.h 227put.o: opcode.h 228put.o: 0.h 229put.o: objfmt.h 230put.o: pc.h 231put.o: OPnames.h 232rec.o: whoami.h 233rec.o: 0.h 234rec.o: tree.h 235rec.o: opcode.h 236rval.o: whoami.h 237rval.o: 0.h 238rval.o: tree.h 239rval.o: opcode.h 240rval.o: objfmt.h 241rval.o: pc.h 242rval.o: pcops.h 243stat.o: whoami.h 244stat.o: 0.h 245stat.o: tree.h 246stat.o: objfmt.h 247stat.o: pcops.h 248stat.o: pc.h 249stat.o: opcode.h 250stklval.o: whoami.h 251stklval.o: 0.h 252stklval.o: tree.h 253stklval.o: opcode.h 254stklval.o: objfmt.h 255stkrval.o: whoami.h 256stkrval.o: 0.h 257stkrval.o: tree.h 258stkrval.o: opcode.h 259stkrval.o: objfmt.h 260stkrval.o: pcops.h 261string.o: whoami.h 262string.o: 0.h 263string.o: send.h 264subr.o: whoami.h 265subr.o: 0.h 266tree.o: whoami.h 267tree.o: 0.h 268type.o: whoami.h 269type.o: 0.h 270type.o: tree.h 271type.o: objfmt.h 272var.o: whoami.h 273var.o: 0.h 274var.o: align.h 275var.o: pc.h 276var.o: pcops.h 277var.o: iorec.h 278y.tab.o: whoami.h 279y.tab.o: 0.h 280y.tab.o: yy.h 281y.tab.o: tree.h 282yycopy.o: 0.h 283yycopy.o: yy.h 284yycosts.o: whoami.h 285yycosts.o: 0.h 286yycosts.o: yy.h 287yyerror.o: whoami.h 288yyerror.o: 0.h 289yyerror.o: yy.h 290yyget.o: whoami.h 291yyget.o: 0.h 292yyget.o: yy.h 293yyid.o: whoami.h 294yyid.o: 0.h 295yyid.o: yy.h 296yylex.o: whoami.h 297yylex.o: 0.h 298yylex.o: yy.h 299yymain.o: whoami.h 300yymain.o: 0.h 301yymain.o: yy.h 302yymain.o: objfmt.h 303yyoptions.o: whoami.h 304yyoptions.o: 0.h 305yyoptions.o: yy.h 306yypanic.o: whoami.h 307yypanic.o: 0.h 308yypanic.o: yy.h 309yyparse.o: whoami.h 310yyparse.o: 0.h 311yyparse.o: yy.h 312yyprint.o: whoami.h 313yyprint.o: 0.h 314yyprint.o: yy.h 315yyput.o: whoami.h 316yyput.o: 0.h 317yyput.o: tree.h 318yyput.o: yy.h 319yyrecover.o: whoami.h 320yyrecover.o: 0.h 321yyrecover.o: yy.h 322yyseman.o: whoami.h 323yyseman.o: 0.h 324yyseman.o: yy.h 325yytree.o: whoami.h 326yytree.o: 0.h 327yytree.o: tree.h 328# DEPENDENCIES MUST END AT END OF FILE 329# IF YOU PUT STUFF HERE IT WILL GO AWAY 330# see make depend above 331