TWS	= ..
TWSBIN	= $(TWS)\bin
TWSOBJS	= $(TWS)\code
INCLUDE = $(TWS)
THISDIR	= .
CC	= gcc
LD	= gcc -gh
CCFLAGS = -g -c -I$(INCLUDE)

$(TWSBIN)/interpret:	$(THISDIR)/y.tab.o $(THISDIR)/lex.yy.o \
		$(THISDIR)/Machine.o $(THISDIR)/Interpret.o \
		$(THISDIR)/Interpreter.o $(TWSOBJS)/String_Input.o \
		$(TWSOBJS)/CommandLine.o \
		$(TWSOBJS)/Error.o $(TWSOBJS)/Text.o \
		$(TWSOBJS)/Table.o \
		$(TWSOBJS)/Open_File.o \
		 
	$(LD) \
	$(THISDIR)/Machine.o $(THISDIR)/Interpret.o \
	$(THISDIR)/Interpreter.o $(TWSOBJS)/String_Input.o \
	$(THISDIR)/lex.yy.o $(THISDIR)/y.tab.o \
	$(TWSOBJS)/CommandLine.o \
	$(TWSOBJS)/Error.o $(TWSOBJS)/Text.o \
	$(TWSOBJS)/Table.o \
	$(TWSOBJS)/Open_File.o -o $(TWSBIN)\interpret.exe


lex.yy.o: lex.yy.c
	$(CC) -c -g lex.yy.c

lex.yy.c: interpreter.l
	flex interpreter.l 
	del lex.yy.c
	rename lexyy.c lex.yy.c

y.tab.o: y.tab.c
	$(CC) -c -g $(CCFLAGS) y.tab.c

y.tab.c y.tab.h: interpreter.y
	bison -y -dv interpreter.y

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

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

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

clean: 
	del Machine.o 
	del Interpret.o 
	del Interpreter.o 
	del $(TWSBIN)\interpret.exe
	del y.tab.c 
	del y.tab.h 
	del lex.yy.o 
	del lex.yy.c 
	del y.tab.o
