.SUFFIXES	: .y .c .h .o
HFILES		= prelude.h storage.h connect.h errors.h command.h
CFILES		= main.c storage.c input.c static.c type.c \
		  output.c compiler.c machine.c machdep.c  \
		  builtin.c
INCFILES	= parser.c preds.c
YFILES		= parser.y
SOURCES		= $(HFILES) $(CFILES) $(INCFILES) $(YFILES) prelude
OBJECTS		= main.o storage.o input.o static.o type.o \
		  output.o compiler.o machine.o machdep.o  \
		  builtin.o
CC		= cc
CFLAGS		=
OPTFLAGS	= -O

gofer		: $(OBJECTS)
		  $(CC) $(CFLAGS) $(OPTFLAGS) $(OBJECTS) -o gofer

.c.o		:
		  $(CC) -c $(CFLAGS) $(OPTFLAGS) $<

clean		:
		  rm *.o

install		:
		  mv gofer ..

it		: gofer
		  strip gofer
		  mv gofer ..

parser.c	: parser.y
		  yacc parser.y
		  mv y.tab.c parser.c

main.o		: prelude.h storage.h connect.h errors.h command.h
storage.o	: prelude.h storage.h connect.h errors.h
input.o		: prelude.h storage.h connect.h errors.h parser.c command.h
static.o	: prelude.h storage.h connect.h errors.h
type.o		: prelude.h storage.h connect.h errors.h preds.c
output.o	: prelude.h storage.h connect.h errors.h
machdep.o	: prelude.h storage.h connect.h errors.h
compiler.o	: prelude.h storage.h connect.h errors.h
		  $(CC) -c -O1 $(CFLAGS) compiler.c
machine.o	: prelude.h storage.h connect.h errors.h
builtin.o	: prelude.h storage.h connect.h errors.h
