CC=cc
LD=cc
LEX=flex

CCFLAGS = -c -DPROTOS_NEEDED
LDFLAGS = -o
LEXFLAGS = -t -8

OBJ1 = ClearAutomMem.o MakeAutomaton.o MakeStates.o BuildTable.o
OBJ2 = DisplayAutom.o DumpTable.o
OBJ3 = Exists.o CheckWord.o
OBJ4 = CorrectWord.o CorrectExtern.o Suggest.o CutDouble.o
OBJ5 = AddWord.o Add.o MakeStates.o ClearAutomMem.o
OBJ6 = Lexer.o Merime.o CorrectExtern.o Suggest.o CutDouble.o Exists.o

all: $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(OBJ5) $(OBJ6)
	$(LD) $(OBJ1) $(LDFLAGS) BuildTable
	$(LD) $(OBJ2) $(LDFLAGS) DumpTable
	$(LD) $(OBJ3) $(LDFLAGS) CheckWord
	$(LD) $(OBJ4) $(LDFLAGS) CorrectWord
	$(LD) $(OBJ5) $(LDFLAGS) Add
	$(LD) $(OBJ6) $(LDFLAGS) Merime

clean:
	rm -f BuildTable DumpTable CheckWord CorrectWord Add Merime
	rm -f $(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(OBJ5) $(OBJ6)
	rm -f Lexer.c
	rm -f *~ .*~


Merime.o: Merime.c
	$(CC) $(CCFLAGS) Merime.c

Lexer.c: Lexer.lex
	rm -f Lexer.c
	$(LEX) -t -8 Lexer.lex > Lexer.c

Lexer.o: Lexer.c
	$(CC) $(CCFLAGS) Lexer.c

ClearAutomMem.o: ClearAutomMem.c ClearAutomMem.h
	$(CC) $(CCFLAGS) ClearAutomMem.c

MakeAutomaton.o: MakeAutomaton.c MakeAutomaton.h
	$(CC) $(CCFLAGS) MakeAutomaton.c

MakeStates.o: MakeStates.c MakeStates.h
	$(CC) $(CCFLAGS) MakeStates.c

BuildTable.o: BuildTable.c
	$(CC) $(CCFLAGS) BuildTable.c

DisplayAutom.o: DisplayAutom.c DisplayAutom.h
	$(CC) $(CCFLAGS) DisplayAutom.c

DumpTable.o: DumpTable.c
	$(CC) $(CCFLAGS) DumpTable.c

Exists.o: Exists.c Exists.h
	$(CC) $(CCFLAGS) Exists.c

CheckWord.o: CheckWord.c
	$(CC) $(CCFLAGS) CheckWord.c

CorrectWord.o: CorrectWord.c
	$(CC) $(CCFLAGS) CorrectWord.c

CorrectExtern.o: CorrectExtern.c
	$(CC) $(CCFLAGS) CorrectExtern.c

Suggest.o: Suggest.c Suggest.h
	$(CC) $(CCFLAGS) Suggest.c

AddWord.o: AddWord.c
	$(CC) $(CCFLAGS) AddWord.c

Add.o: Add.c
	$(CC) $(CCFLAGS) Add.c

CutDouble.o: CutDouble.c CutDouble.h
	$(CC) $(CCFLAGS) CutDouble.c


