V10/cmd/f77/mkfile

#	Makefile for a Fortran 77 compiler
#	running on the VAX, generating code for the VAX,
#	using the second pass of the Portable C compiler as code generator.

CFL = -DHERE=VAX -DTARGET=VAX -DFAMILY=PCC -DUCBVAXASM -DUCBPASS2
g = -O
CFLAGS = $g $CFL

DESTDIR = 

OBJECTSd = main.o init.o gram.o lex.o proc.o equiv.o data.o \
	  expr.o exec.o intr.o io.o misc.o error.o put.o \
	  putpcc.o vax.o
OBJECTS = $OBJECTSd vaxx.o

compiler: f77 f77pass1
	touch compiler

f77: driver.o vaxx.o
	cc driver.o vaxx.o -o f77
	size f77

f77pass1: $OBJECTS
	echo LOAD
	$CC $LDFLAGS $OBJECTS -o f77pass1
	size f77pass1

gram.c:	gram.head gram.dcl gram.expr gram.exec gram.io defs tokdefs
	( sed <tokdefs "s/#define/%token/" ;\
		cat gram.head gram.dcl gram.expr gram.exec gram.io ) >gram.in
	$YACC $YFLAGS gram.in
	echo "(expect 4 shift/reduce)"
	mv y.tab.c gram.c
	rm gram.in

$OBJECTSd: defs
defs: ftypes defines machdefs

tokdefs: tokens
	grep -n . <tokens | sed "s/\([^:]*\):\(.*\)/#define \2 \1/" >tokdefs
lex.o : tokdefs
driver.o $OBJECTS  : defines machdefs drivedefs ftypes
driver.o : drivedefs
proc.o: tokdefs
io.o: fio.h
vaxx.o: defines machdefs

machdefs : vaxdefs
	cp vaxdefs machdefs

put.o putpcc.o vax.o: pccdefs

install: ${DESTDIR}/usr/bin/f77 ${DESTDIR}/usr/lib/f77pass1

${DESTDIR}/usr/bin/f77 : f77
	size f77 ${DESTDIR}/usr/bin/f77
	cp f77 ${DESTDIR}/usr/bin/f77

${DESTDIR}/usr/lib/f77pass1 : f77pass1
	size f77pass1 ${DESTDIR}/usr/lib/f77pass1
	cp f77pass1 ${DESTDIR}/usr/lib/f77pass1

clean:
	set +e; rm gram.c *.o f77 f77pass1 tokdefs compiler; set -e
	du; set -e