1# 2# Makefile 1.13 90/02/20 3# 4# Makefile for tahoe pcc 5# 6RM= /bin/rm -f 7GREP= egrep 8MIP= ../../mip 9# 10# Some symbols are specific to certain compilers: 11# ONEPASS compile pass 1 and pass 2 together 12# FORT get f77-style pass 2 13# 14INCS= -I. -I${MIP} 15CFLAGS= -O 16LDFLAGS= 17LIBS= 18 19# c version 20OPTS= -DONEPASS ${INCS} 21FLAGS= ${CFLAGS} ${OPTS} 22SRCS= code.c local.c local2.c order.c rel.c stab.c \ 23 ${MIP}/common.c ${MIP}/match.c ${MIP}/optim.c ${MIP}/pftn.c \ 24 ${MIP}/reader.c ${MIP}/scan.c ${MIP}/xdefs.c ${MIP}/cgram.y \ 25 ${MIP}/allo.c ${MIP}/trees.c table.c 26OBJS= code.o local.o local2.o order.o rel.o stab.o \ 27 comm1.o match.o optim.o pftn.o reader.o scan.o xdefs.o cgram.o \ 28 allo.o trees.o table.o rodata.o 29# fortran version 30FOPTS= -DFORT ${INCS} 31FFLAGS= ${CFLAGS} ${FOPTS} 32FSRCS= freader.c fallo.c fmatch.c ftable.c forder.c flocal2.c fcomm2.c ftable.c 33FOBJS= freader.o fallo.o fmatch.o ftable.o forder.o flocal2.o fcomm2.o ftable.o 34 35TESTDIR=. 36 37all: ccom f1 38 39# 40# 'ccom' is a one-pass C compiler. 41# 42ccom: ${OBJS} rel.o 43 ${CC} ${LDFLAGS} -o ${TESTDIR}/ccom ${OBJS} rel.o ${LIBS} 44trees.o: ${MIP}/trees.c 45 ${CC} -c ${FLAGS} ${MIP}/trees.c 46optim.o: ${MIP}/optim.c 47 ${CC} -c ${FLAGS} ${MIP}/optim.c 48pftn.o: ${MIP}/pftn.c 49 ${CC} -c ${FLAGS} ${MIP}/pftn.c 50code.o: code.c 51 ${CC} -c ${FLAGS} code.c 52local.o: local.c 53 ${CC} -c ${FLAGS} local.c 54scan.o: ${MIP}/scan.c 55 ${CC} -c ${FLAGS} ${MIP}/scan.c 56xdefs.o: ${MIP}/xdefs.c 57 ${CC} -c ${FLAGS} ${MIP}/xdefs.c 58cgram.o: cgram.c 59 ${CC} -c ${FLAGS} cgram.c 60rodata.o: rodata.c 61 ${CC} -c ${FLAGS} -R rodata.c 62rodata.c cgram.c: ${MIP}/cgram.y pcctokens 63 cat pcctokens ${MIP}/cgram.y > gram.in 64 ${YACC} gram.in 65 ${RM} rodata.c 66 sh :yyfix yylhs yylen yydefred yydgoto yysindex yyrindex \ 67 yygindex yytable yycheck 68 mv y.tab.c cgram.c 69comm1.o: ${MIP}/common.c 70 ln ${MIP}/common.c comm1.c 71 ${CC} -c ${FLAGS} -DPASS1COMMON comm1.c 72 ${RM} comm1.c 73stab.o: stab.c 74 ${CC} -c ${FLAGS} stab.c 75table.o: table.c 76 ${CC} -c ${FLAGS} -R table.c 77reader.o: ${MIP}/reader.c 78 ${CC} -c ${FLAGS} ${MIP}/reader.c 79local2.o: local2.c 80 ${CC} -c ${FLAGS} local2.c 81order.o: order.c 82 ${CC} -c ${FLAGS} order.c 83match.o: ${MIP}/match.c 84 ${CC} -c ${FLAGS} ${MIP}/match.c 85allo.o: ${MIP}/allo.c 86 ${CC} -c ${FLAGS} ${MIP}/allo.c 87 88# 89# 'f1' is the f77 and pc code generator. 90# 91f1: fort.o ${FOBJS} 92 ${CC} ${LDFLAGS} -o ${TESTDIR}/f1 fort.o ${FOBJS} ${LIBS} 93fort.o: fort.h ${MIP}/fort.c 94 ${CC} -c ${FFLAGS} ${MIP}/fort.c 95freader.o: ${MIP}/reader.c 96 ln ${MIP}/reader.c freader.c 97 ${CC} -c ${FFLAGS} freader.c 98 ${RM} freader.c 99fallo.o: ${MIP}/allo.c 100 ln ${MIP}/allo.c fallo.c 101 ${CC} -c ${FFLAGS} fallo.c 102 ${RM} fallo.c 103fmatch.o: ${MIP}/match.c 104 ln ${MIP}/match.c fmatch.c 105 ${CC} -c ${FFLAGS} fmatch.c 106 ${RM} fmatch.c 107ftable.o: table.c 108 ln table.c ftable.c 109 ${CC} -c -R ${FFLAGS} ftable.c 110 ${RM} ftable.c 111forder.o: order.c 112 ln order.c forder.c 113 ${CC} -c ${FFLAGS} forder.c 114 ${RM} forder.c 115flocal2.o: local2.c 116 ln local2.c flocal2.c 117 ${CC} -c ${FFLAGS} flocal2.c 118 ${RM} flocal2.c 119fcomm2.o: ${MIP}/common.c 120 ln ${MIP}/common.c fcomm2.c 121 ${CC} -c ${FFLAGS} -DPASS2COMMON fcomm2.c 122 ${RM} fcomm2.c 123 124install: 125 install -s -o bin -g bin -m 755 ${TESTDIR}/ccom ${DESTDIR}/usr/libexec 126 install -s -o bin -g bin -m 755 ${TESTDIR}/f1 ${DESTDIR}/usr/libexec 127 128pcclocal.h: ../localdefs.h /usr/include/pcc.h 129 ${RM} pcclocal.h 130 cat /usr/include/pcc.h ../localdefs.h | \ 131 ${GREP} '^#[ ]*(define[ ][ ]*PCC(F|T|TM|OM)?_|ifdef|ifndef|endif)' | \ 132 sed -e 's/PCC[A-Z]*_//' > pcclocal.h 133 134pcctokens: ../localdefs.h /usr/include/pcc.h 135 ${RM} pcctokens 136 cat /usr/include/pcc.h ../localdefs.h | \ 137 ${GREP} '^#[ ]*define[ ][ ]*PCC_' | sed -e 's/^#[ ]*define[ ][ ]*PCC_/%term /' > pcctokens 138 139clean: 140 ${RM} *.o ccom f1 cgram.c rodata.c pcctokens pcclocal.h \ 141 gram.in ${SSRCS} ${FSRCS} 142 143cleandir: clean 144 rm -f ${MAN} tags .depend 145 146lint: 147 lint -hx ${OPTS} -DPASS1COMMON cgram.c \ 148 ${MIP}/xdefs.c ${MIP}/scan.c ${MIP}/pftn.c ${MIP}/trees.c \ 149 ${MIP}/optim.c ${MIP}/reader.c ${MIP}/match.c ${MIP}/allo.c \ 150 ${MIP}/common.c \ 151 code.c local.c stab.c local2.c order.c table.c rel.c 152 153tags: ${SRCS} 154 ctags ${SRCS} 155 156# XXX this is less than complete 157depend: ${SRCS} ${MIP}/fort.c pcclocal.h pcctokens 158 mkdep ${CFLAGS} ${INCS} ${SRCS} ${MIP}/fort.c 159