
COMMON_DIR = ..

BIN = bin/$(OSTYPE)

objects = driver.o Symbols.o solver.tab.o lex.yy.o ast.o astutils.o iterate.o simplify.o
sources = driver.cc Symbols.cc solver.l solver.yy ast.c astutils.cc iterate.c simplify.c
headers = Symbols.hh ast.h astutils.h iterate.h simplify.h

CXX = g++
CC = g++
CFLAGS = -g -O2
CXXFLAGS = -g -O2


main:	$(objects) 
	$(CXX) $(CXXFLAGS) -o psolver $(objects)

solver.tab.hh solver.tab.cc:	solver.yy
	bison -d solver.yy

solver.tab.o:	solver.tab.cc

lex.yy.o:	solver.tab.hh lex.yy.c
	$(CXX) $(CXXFLAGS) -c lex.yy.c

lex.yy.c:	solver.l
	flex solver.l

.PHONY :	clean
clean:
	-echo "Removing all object files!"
	-rm -f psolver.bin $(objects)
	-echo "Removing intermediate C files!"
	-rm -f solver.tab.cc solver.tab.hh lex.yy.c

.PHONY :	reallyclean
reallyclean:	clean
	-rm -f *~
