#
# Base Makefile for Progressions project.
#
TESTS 	=
 
TARGETS = avoidtest.exe progressions.exe


OBJECTS = 	ProgressionConstraint.o	\
			ProgressionManager.o	\
			ProgressionTable.o		\
			PseudoBackwardConstraint.o		\
			PseudoBDomainConstraint.o		\
			PseudoFBDomainConstraint.o		\
			PseudoForwardConstraint.o		\
			QuasiBackwardConstraint.o		\
			QuasiBDomainConstraint.o		\
			QuasiFBDomainConstraint.o		\
			QuasiForwardConstraint.o		
			


CC 	= gcc
CXX = g++

OPT = -O4 -g 
# -O7
DEBUG =  
# -g 
# -static 
WARNINGS = -Wall


CFLAGS 		= $(OPT) $(DEBUG) $(WARNINGS)
CXXFLAGS 	= $(OPT) $(DEBUG) $(WARNINGS)
LFLAGS 		= $(OPT) $(DEBUG) $(WARNINGS)


TREESEARCHDIR = ../../TreeSearch
UTILSDIR = ../../Utilities/src

INCLUDES =  -I$(TREESEARCHDIR) -I$(UTILSDIR) 

TREESEARCHOBJS	= $(TREESEARCHDIR)/SearchManager.o 
UTILSOBJS	= 	$(UTILSDIR)/Set.o 		\
				$(UTILSDIR)/TreeSet.o 
			
LIBOBJS			= $(TREESEARCHOBJS) $(UTILSOBJS)
			
			
.SUFFIXES: .c .cpp .o .obj .exe 

all: $(OBJECTS) $(TESTS) $(TARGETS)


# The default object compiler
.c.o: $<
	$(CC) $(CFLAGS) $(INCLUDES) $(LIBS) -c $< -o $@
        
.cpp.o: $<
	$(CXX) $(CXXFLAGS) $(INCLUDES) $(LIBS) -c $< -o $@
        
.cpp.exe: $< $(OBJECTS)  
	$(CXX) $(LFLAGS)			\
        	$(INCLUDES)	$(DEBUG)			\
        	$(LIBOBJS) $(LIBS)				\
        	`cat $@.objs`           		\
            $< -o $@
	cp $@ ../bin/
        
.c.exe: $< $(COBJECTS)
	$(CC) 	$(LFLAGS)			    \
        	$(INCLUDES)				\
        	$(NAUTYOBJS)  $(COBJECTS) $(LIBS)		\
            $< -o $@
	cp $@ ../bin/
        
clean:
	rm $(OBJECTS) $(TARGETS) $(TESTS)
	
cleanexe:
	rm $(TARGETS)

cleantest:
	rm $(TESTS)

clexe:
	rm $(TARGETS)
