#PROFILE_OPTIONS = -pg
CXXFLAGS +=	$(PROFILE_OPTIONS) -ggdb -DDEBUG=1 -I/usr/local/include -I/usr/include/mysql -I/usr/include/mysql++ \
			-ISource -ISource/SchedulingPage -ISource/Subtree--Bidirectional_Pipe/Source -ISource/ORM
LDFLAGS +=	$(PROFILE_OPTIONS) -L /usr/local/lib -lwt -lmysqlpp -lboost_filesystem
SOURCES:=	$(wildcard Source/*.cpp Source/SchedulingPage/*.cpp \
			  Source/Subtree--Bidirectional_Pipe/Source/*.cpp \
			  Source/ORM/*.cpp)

EXECUTABLES:= WebSchedule

SOURCE_OBJECTS:=	$(SOURCES:Source/%.cpp=Objects/%.o)
EXECUTABLE_OBJECTS:=	$(EXECUTABLES:%=Objects/%.o)
SOURCE_DEPENDS:=	$(SOURCES:Source/%.cpp=Depends/%.d)
EXECUTABLE_DEPENDS:=	$(EXECUTABLES:%=Depends/%.d)

all:	$(EXECUTABLES)

$(EXECUTABLES):	%:Objects/%.o
	$(CXX) $(CXXFLAGS) -o $@.wthttp $< $(SOURCE_OBJECTS) $(LDFLAGS) -lwthttp # /usr/lib/libboost_signals-mt.so /usr/lib/libboost_system-mt.so /lib/libcrypto.so.10 
	$(CXX) $(CXXFLAGS) -o $@.wtfcgi $< $(SOURCE_OBJECTS) $(LDFLAGS) -lwtfcgi # /usr/lib/libboost_signals-mt.so /usr/lib/libboost_system-mt.so /lib/libcrypto.so.10 
	echo 'finished'

$(EXECUTABLES):	 $(SOURCE_OBJECTS)														# each executable also depends on the other object files

$(SOURCE_OBJECTS):	Objects/%.o:Depends/%.d												# each object file depends on its' own dependency file
	if [ ! -d `/usr/bin/dirname $@` ]; then /bin/mkdir -p `/usr/bin/dirname  $@`; fi
	$(CXX)  -c $(CXXFLAGS) -o $@ $(<:Depends/%.d=Source/%.cpp)

$(EXECUTABLE_OBJECTS):	Objects/%.o:Depends/%.d
	$(CXX)  -c $(CXXFLAGS) -o $@ $(<:Depends/%.d=%.cpp)

$(SOURCE_DEPENDS):	Depends/%.d:Source/%.cpp
	if [ ! -d `/usr/bin/dirname $@` ]; then /bin/mkdir -p `/usr/bin/dirname  $@`; fi
	$(CXX) -MM $(CXXFLAGS) -MT $(<:.cpp=.o) -MT $@ $< > $@

$(EXECUTABLE_DEPENDS):	Depends/%.d:%.cpp
	$(CXX) -MM $(CXXFLAGS) -MT $(<:.cpp=.o) -MT $@ $< > $@

include	$(SOURCE_DEPENDS) $(EXECUTABLE_DEPENDS)

.PHONEY:	clean
clean:
	$(RM) $(SOURCE_OBJECTS) $(EXECUTABLE_OBJECTS) \
		$(SOURCE_DEPENDS) $(EXECUTABLE_DEPENDS) \
		$(EXECUTABLES)
