CC=gcc
CFLAGS=-O4 -pedantic -DUSG=1
YACC=bison -y

BUI_O=buildhas.o hash.o makedent.o parse.o
ICOM_O=icombine.o makedent.o parse.o
IJOIN_O=ijoin.o fields.o
TEST_O=test.o good.o lookup.o hash.o makedent.o tree.o tgood.o util.o
ISPELL_O=term.o ispell.o correct.o defmt.o dump.o good.o lookup.o hash.o \
makedent.o tgood.o tree.o xgets.o util.o

.c.o:
	$(CC) -c $(CFLAGS) $*.c
.y.c:
	$(YACC) $*.y

all: buildhas icombine ijoin ispell sq unsq test

parse.o: parse.y
	$(YACC) parse.y
	$(CC) $(CFLAGS) -c -g y.tab.c -o parse.o
	rm y.tab.c

test: $(TEST_O)
	gcc $(CFLAGS) -o test $(TEST_O)

ispell: $(ISPELL_O)
	gcc $(CFLAGS) -o ispell $(ISPELL_O) -ltermcap

buildhas: $(BUI_O)
	gcc $(CFLAGS) -o buildhas $(BUI_O)

icombine: $(ICOM_O)
	gcc $(CFLAGS) -o icombine $(ICOM_O)

ijoin: $(IJOIN_O)
	gcc $(CFLAGS) -o ijoin $(IJOIN_O)

sq: sq.o
	gcc  $(CFLAGS) -o sq sq.o

unsq: unsq.o
	gcc $(CFLAGS) -o unsq unsq.o

buildhas.o : config.h ispell.h i_proto.h msgs.h version.h local.h
correct.o : config.h ispell.h i_proto.h msgs.h version.h local.h
defmt.o : config.h ispell.h i_proto.h msgs.h local.h
dump.o : config.h ispell.h i_proto.h local.h
fields.o : config.h fields.h local.h
good.o : config.h ispell.h i_proto.h hash.c local.h
icombine.o : config.h ispell.h i_proto.h msgs.h local.h
ijoin.o : config.h ispell.h i_proto.h fields.h local.h
test.o : config.h ispell.h i_proto.h local.h
ispell.o : config.h ispell.h i_proto.h msgs.h version.h local.h
lookup.o : config.h ispell.h i_proto.h msgs.h local.h
makedent.o : config.h ispell.h i_proto.h msgs.h local.h
parse.o : config.h ispell.h i_proto.h msgs.h local.h
term.o : config.h ispell.h i_proto.h msgs.h local.h
tgood.o : config.h ispell.h i_proto.h local.h
tree.o : config.h ispell.h i_proto.h msgs.h local.h
unsq.o : msgs.h
xgets.o : config.h ispell.h i_proto.h local.h
