CFLAGS = -O
CC = cc

YFLAGS = -Sr600   # SCO
#YFLAGS =          # SUN

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 formatd.o \
	  safstrcp.o parsearg.o nicepr.o cds.o sysdep.o version.o
OBJECTS = $(OBJECTSd) malloc.o

target : f2c

f2c.exe: $(OBJECTS)
	gcc @link.lnk -o f2c.out
	strip f2c.out
	aout2exe f2c.out
	del f2c.out

f2c: $(OBJECTS)
	$(CC) $(CFLAGS) $(LDFLAGS) $(OBJECTS) -o f2c
	strip f2c
	mv f2c $(HOME)/bin

#gram.c : gram.hd gram.dcl gram.exp gram.exe gram.io defs.h tokdefs.h
#	( sed <tokdefs.h "s/#define/%token/" ;\
#		cat gram.hd gram.dcl gram.exp gram.exe 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

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

$(OBJECTSd): defs.h
defs.h: ftypes.h defines.h machdefs.h
exec.o: p1defs.h names.h
expr.o: output.h nicepr.h names.h
format.o: p1defs.h format.h output.h nicepr.h names.h iob.h
formatd.o: format.h output.h nicepr.h names.h
gram.o: p1defs.h
init.o: output.h nicepr.h iob.h
intr.o: names.h
io.o: names.h iob.h
lex.o : tokdefs.h p1defs.h
main.o: parse.h usignal.h
mem.o: iob.h
names.o: iob.h names.h output.h nicepr.h
nicepr.o: defs.h names.h output.h nicepr.h
output.o: output.h nicepr.h names.h
p1output.o: p1defs.h output.h nicepr.h names.h
parsearg.o: parse.h
proc.o: tokdefs.h names.h nicepr.h output.h p1defs.h
put.o: names.h pccdefs.h p1defs.h
putpcc.o: names.h
vax.o: defs.h output.h pccdefs.h
output.h: nicepr.h
defs.h: ftypes.h defines.h machdefs.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 *.o
CFLAGS = -O