.SUFFIXES: .o .c

PROG = f2c

CFLAGS += -DANSI_Libraries

SRCS = cds.c data.c equiv.c error.c exec.c expr.c format.c formatdata.c \
	gram.c init.c intr.c io.c lex.c main.c mem.c misc.c names.c niceprintf.c \
	output.c p1output.c parse_args.c pread.c proc.c put.c putpcc.c sysdep.c \
	vax.c version.c

OBJS = ${SRCS:S/.c/.o/g}

GRAMFILES = gram.head gram.dcl gram.expr gram.exec gram.io

all: ${OBJS}
	$(CC) -o ${PROG} ${CFLAGS} ${OBJS}

depend: tokdefs.h  gram.c
	mkdep ${CFLAGS} ${SRCS}

gram.c:	${GRAMFILES} defs.h tokdefs.h
	(sed < tokdefs.h "s/#define/%token/" ; \
	cat ${GRAMFILES}) > gram.in
	$(YACC) $(YFLAGS) gram.in
	echo "# expect 4 shift/reduce conflicts"
	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

clean:
	rm -f ${OBJS} gram.c tokdefs.h y.tab.h ${PROG}

cleandepend:
	rm -f .depend

.c.o:
	$(CC) -c ${CFLAGS} $<
