CXX=g++
CFLAGS= -fpermissive -I./Headers -I./DevIL/include -c -Wall -g -O3
LDFLAGS= -lm -lpthread -lboost_regex \
	-lGLEW -lGL -lGLU -lglut \
	-Wl,-rpath,/vnodehomes/rob/SVNProjects/Viewers/Viewers/DevIL/lib64 -L./DevIL/lib64 -lIL -lILU -lILUT \
	-Wl,-rpath,/usr/X11R6/lib64 -Wl,-rpath,/usr/local/lib 


OBJECTS= main.o ArgParser.o OBJModel.o InvalidArgumentException.o \
	textfile.o MHProcessor.o
	
#Face.o Vertex.o Vec3.o 
#STATIC_LIBS=libslepc.a
SOURCE_DIR=Source
HEADER_DIR=Headers
SOURCES=$(SOURCE_DIR)/main.cpp $(SOURCE_DIR)/ArgParser.cpp \
 $(SOURCE_DIR)/OBJModel.cpp $(SOURCE_DIR)/InvalidArgumentException.cpp \
 $(UTIL_DIR)/Math/Matrix.cpp  \
 $(SOURCE_DIR)/textfile.cpp $(SOURCE_DIR)/MHProcessor.cpp

#include ${SLEPC_DIR}/bmake/slepc_common
#CFLAGS+=$(CC_INCLUDES)
#CFLAGS+=$(CCPPFLAGS)
#LDFLAGS+=$(SLEPC_LIB_DIR)

Viewer: $(OBJECTS)
	$(CXX) $(OBJECTS) $(LDFLAGS) -o Viewer

# DO NOT DELETE
MHProcessor.o: $(HEADER_DIR)/MHProcessor.h $(SOURCE_DIR)/MHProcessor.cpp
	$(CXX) $(CFLAGS) $(SOURCE_DIR)/MHProcessor.cpp -o MHProcessor.o

#PointLightGenerator.o: $(HEADER_DIR)/PointLightGenerator.h $(SOURCE_DIR)/PointLightGenerator.cpp
#	$(CXX) $(CFLAGS) $(SOURCE_DIR)/PointLightGenerator.cpp -o PointLightGenerator.o
	
Vec3.o: $(HEADER_DIR)/Vec3.h $(HEADER_DIR)/Vec3.cpp
	$(CXX) $(CFLAGS) $(HEADER_DIR)/Vec3.h -o Vec3.o

ArgParser.o: $(HEADER_DIR)/ArgParser.h $(SOURCE_DIR)/ArgParser.cpp
	$(CXX) $(CFLAGS) $(SOURCE_DIR)/ArgParser.cpp -o ArgParser.o

#Camera.o: $(HEADER_DIR)/Camera.h $(SOURCE_DIR)/Camera.cpp Vec3.o
#	$(CXX) $(CFLAGS) $(SOURCE_DIR)/Camera.cpp -o Camera.o

Vertex.o: $(HEADER_DIR)/Vertex.h $(HEADER_DIR)/Vertex.cpp Vec3.o
	$(CXX) $(CFLAGS) $(HEADER_DIR)/Vertex.h -o Vertex.o

Face.o: $(HEADER_DIR)/Face.h $(HEADER_DIR)/Face.cpp Vertex.o
	$(CXX) $(CFLAGS) $(HEADER_DIR)/Face.h -o Face.o

OBJModel.o: $(HEADER_DIR)/OBJModel.h $(SOURCE_DIR)/OBJModel.cpp Face.o 
	$(CXX) $(CFLAGS) $(SOURCE_DIR)/OBJModel.cpp -o OBJModel.o

InvalidArgumentException.o: $(HEADER_DIR)/InvalidArgumentException.h $(SOURCE_DIR)/InvalidArgumentException.cpp
	$(CXX) $(CFLAGS) $(SOURCE_DIR)/InvalidArgumentException.cpp -o InvalidArgumentException.o

textfile.o: $(SOURCE_DIR)/textfile.cpp $(HEADER_DIR)/textfile.h
	$(CXX) $(CFLAGS) $(SOURCE_DIR)/textfile.cpp -o textfile.o
	
main.o: $(SOURCE_DIR)/main.cpp OBJModel.o 
	$(CXX) $(CFLAGS) $(SOURCE_DIR)/main.cpp -o main.o

clean:
	rm *.o
webtar:
	tar zcvf viewer.tar.gz Makefile Source Headers DevIL libs shaders
