3BSD/usr/src/cmd/f77/omakefile

# Makefile for the Fortran 77 command
#  Running on the VAX
#  Generating code for the VAX
#  Using the Johnson C compiler's second pass (binary version)
CFLAGS = -O -DTARGET=VAX -DFAMILY=SCJ -DHERE=VAX -DOUTPUT=BINARY -DPOLISH=POSTFIX
FILES = Makefile defs defines locdefs drivedefs ftypes scjdefs tokens fio.h\
	driver.c \
	main.c proc.c init.c\
	gram.head gram.dcl gram.expr gram.exec gram.io\
	lex.c equiv.c data.c expr.c exec.c intr.c\
	io.c misc.c error.c put.c putscj.c vax.c vaxx.c 


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

compiler: f77 f77pass1

f77 : driver.o vaxx.o
	cc -n 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 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

tokdefs: tokens
	grep -n . <tokens | sed "s/\([^:]*\):\(.*\)/#define \2 \1/" >tokdefs

lex.o : tokdefs
driver.o $(OBJECTS)  : defs defines locdefs ftypes
driver.o : drivedefs

locdefs : vaxdefs
	cp vaxdefs locdefs

put.o putscj.o : scjdefs
io.o : fio.h
scjdefs :: nmanifest	;


nmanifest :# /usr/tbl/scj/manifest
#	@echo "***Warning: /usr/tbl/scj/manifest has changed***"

fio.h :# /usr/sif/fort/libI77/fio.h
#	@echo "***Warning : /usr/sif/fort/libI77/fio.h has changed***"

archall:
	ar rc ../fortarch $(FILES)

arch :  ../fortarch

../fortarch:  $(FILES)
	@ar uv ../fortarch $?
	@wc ../fortarch


printall:
	pr $(FILES) | $P
	touch print

print:	$(FILES)
	pr $? | $P
	touch print

lint:
	@echo "nohup lint -p ... >Lintout&"
	@nohup lint -p error.c exec.c intr.c expr.c gram.c init.c io.c\
		lex.c main.c proc.c misc.c put.c putscj.c vax.c vaxx.c\
		equiv.c data.c -lS >Lintout&

cleanup:
	-rm gram.c *.o f77 f77pass1
	du

install: /usr/bin/f77 /usr/lib/f77pass1

/usr/bin/f77 : f77
	strip f77
	@size f77 /usr/bin/f77
	cp f77 /usr/bin/f77

/usr/lib/f77pass1 : f77pass1
	strip f77pass1
	@size f77pass1 /usr/lib/f77pass1
	cp f77pass1 /usr/lib/f77pass1

src : $(FILES) vaxdefs
	cp $? /usr/src/cmd/f77
	touch src