#	Makefile for f2c, a Fortran 77 to C converter

CFLAGS = -fi -b0 -d_AMIGA=1 -ca -O

#SHELL = /bin/sh

OBJECTSd = main.o init.o gram.o lex.o proc.o equiv.o data.o format.o \
	  expr.o exec.o intr.o io.o misc.o error.o mem.o names.o \
	  output.o p1output.o pread.o put.o putpcc.o vax.o formatdata.o \
	  parse_args.o niceprintf.o cds.o sysdep.o version.o
OBJECTS = $(OBJECTSd) malloc.o

all: xsum.out f2c

f2c: $(OBJECTSd)
	blink < with <(f2c.lnk)
	from lib:c.o $(OBJECTSd)
	to f2c
	lib lib:lcmieee.lib lib:lcnb.lib lib:amiga.lib
	VERBOSE
	<
	
#	$(CC) $(LDFLAGS) $(OBJECTS) -o f2c
#	size f2c

#gram.c:	gram.head gram.dcl gram.expr gram.exec gram.io defs.h tokdefs.h
#	( sed <tokdefs.h "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)"
#	sed 's/^# line.*/\/* & *\//' y.tab.c >gram.c
#	rm -f gram.in y.tab.c

#$(OBJECTSd): defs.h ftypes.h defines.h machdefs.h sysdep.h

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

cds.o: cds.c sysdep.h

exec.o: exec.c p1defs.h names.h

expr.o: expr.c output.h niceprintf.h names.h

format.o: format.c p1defs.h format.h output.h niceprintf.h names.h iob.h

formatdata.o: formatdata.c format.h output.h niceprintf.h names.h

gram.o: gram.c p1defs.h

init.o: init.c output.h niceprintf.h iob.h

intr.o: intr.c names.h

io.o: io.c names.h iob.h

lex.o : lex.c tokdefs.h p1defs.h

main.o: main.c parse.h usignal.h

mem.o: mem.c iob.h

names.o: names.c iob.h names.h output.h niceprintf.h

niceprintf.o: niceprintf.c defs.h names.h output.h niceprintf.h

output.o: output.c output.h niceprintf.h names.h

p1output.o: p1output.c p1defs.h output.h niceprintf.h names.h

parse_args.o: parse_args.c parse.h

proc.o: proc.c tokdefs.h names.h niceprintf.h output.h p1defs.h

put.o: put.c names.h pccdefs.h p1defs.h

putpcc.o: putpcc.c names.h

vax.o: vax.c defs.h output.h pccdefs.h

#output.h: niceprintf.h

#put.o putpcc.o: pccdefs.h

f2c.t: f2c.1t
	troff -man f2c.1t >f2c.t

f2c.1: f2c.1t
	nroff -man f2c.1t | col -b | uniq >f2c.1

clean:
	rm -f gram.c *.o f2c tokdefs.h f2c.t

b = Notice README cds.c data.c defines.h defs.h equiv.c error.c \
	exec.c expr.c f2c.1 f2c.1t f2c.h format.c format.h formatdata.c \
	ftypes.h gram.dcl gram.exec gram.expr gram.head gram.io \
	init.c intr.c io.c iob.h lex.c machdefs.h main.c makefile \
	malloc.c mem.c memset.c misc.c names.c names.h niceprintf.c \
	niceprintf.h output.c output.h p1defs.h p1output.c \
	parse.h parse_args.c pccdefs.h pread.c proc.c put.c putpcc.c \
	sysdep.c sysdep.h tokens usignal.h vax.c version.c xsum.c

bundle:
	bundle $b xsum0.out >/tmp/f2c.bundle

xsum: xsum.c
	$(CC) -o xsum xsum.c

#Check validity of transmitted source...
xsum.out: xsum
	./xsum $b >xsum1.out
	cmp xsum0.out xsum1.out && mv xsum1.out xsum.out
