CC=g++ -g 
GPPFLAGS=-I/usr/include/libxml2
LDFLAGS=-L/usr/lib -lxml2 -lz -lpthread -lm -D_LARGE_THREADS
OBJECT_FILES=ReportGenerator.o Controller.o  CommandLineParser.o AutoProf.o Gnuplotter.o


all: prof

prof: LoadGenerator Profiler main.cpp  $(OBJECT_FILES)
	$(CC) $(GPPFLAGS) $(LDFLAGS) -o prof main.cpp $(OBJECT_FILES) LoadGenerator/libLG.a Profiler/libProfiler.a 

ReportGenerator.o:ReportGenerator.cpp ReportGenerator.h
	$(CC) $(GPPFLAGS) -c ReportGenerator.cpp

Controller.o: Controller.h Controller.cpp Globals.h
	$(CC) -c Controller.cpp

Gnuplotter.o: Gnuplotter.h Gnuplotter.cpp Globals.h
	$(CC) -c Gnuplotter.cpp

AutoProf.o: AutoProf.cpp AutoProf.h Globals.h
	$(CC) $(GPPFLAGS)  -c AutoProf.cpp 

CommandLineParser.o: CommandLineParser.cpp CommandLineParser.h Globals.h
	$(CC) -c CommandLineParser.cpp


.PHONY: LoadGenerator
.PHONY: Profiler

LoadGenerator:
	$(MAKE) -C LoadGenerator

Profiler:
	$(MAKE) -C Profiler

clean:
	rm -f *.o lib*.a prof
	rm -rf */*.o */lib*.a
