MYOBJS	= .
TWS	= ..
TWSOBJS	= $(TWS)\code
INCLUDE = $(TWS)
CCFLAGS = -c -g -I$(INCLUDE)
CC	= gcc
LD	= gcc 

all:	Constrain CodeGen parser/parse

parser/parse:	parser\parse.tiny parser\lex.tiny
		make -C parser

Constrain:	$(TWSOBJS)/Constrain.o $(MYOBJS)/Constrainer.o \
		$(TWSOBJS)/String_Input.o $(TWSOBJS)/CommandLine.o \
		$(TWSOBJS)/Dcln.o $(TWSOBJS)/Error.o \
		$(TWSOBJS)/Text.o $(TWSOBJS)/Tree.o \
		$(TWSOBJS)/Table.o $(TWSOBJS)/Open_File.o
	$(LD)   $(TWSOBJS)/Constrain.o $(MYOBJS)/Constrainer.o \
		$(TWSOBJS)/String_Input.o $(TWSOBJS)/CommandLine.o \
		$(TWSOBJS)/Dcln.o $(TWSOBJS)/Error.o \
		$(TWSOBJS)/Text.o $(TWSOBJS)/Tree.o \
		$(TWSOBJS)/Table.o $(TWSOBJS)/Open_File.o \
		-o Constrain.exe		


CodeGen:	$(TWSOBJS)/Code.o $(TWSOBJS)/CodeGen.o \
		$(MYOBJS)/CodeGenerator.o $(TWSOBJS)/String_Input.o \
		$(TWSOBJS)/CommandLine.o $(TWSOBJS)/Dcln.o \
		$(TWSOBJS)/Error.o $(TWSOBJS)/Text.o \
		$(TWSOBJS)/Tree.o $(TWSOBJS)/Table.o \
		$(TWSOBJS)/Open_File.o
	  $(LD)	$(TWSOBJS)/Code.o $(TWSOBJS)/CodeGen.o \
		$(MYOBJS)/CodeGenerator.o $(TWSOBJS)/String_Input.o \
		$(TWSOBJS)/CommandLine.o $(TWSOBJS)/Dcln.o \
		$(TWSOBJS)/Error.o $(TWSOBJS)/Text.o \
		$(TWSOBJS)/Tree.o $(TWSOBJS)/Table.o \
		$(TWSOBJS)/Open_File.o \
		-o CodeGen.exe	


$(MYOBJS)/Constrainer.o:	 $(MYOBJS)/Constrainer.c
	$(CC) $(CCFLAGS) $(MYOBJS)/Constrainer.c


$(MYOBJS)/CodeGenerator.o:	 $(MYOBJS)/CodeGenerator.c
	$(CC) $(CCFLAGS) $(MYOBJS)/CodeGenerator.c


clean:	
	rm -f Constrain CodeGen _* $(MYOBJS)/*.o
	make -C parser clean
