
CPP  = g++
CC   = gcc
WINDRES =
RES  =
OBJ  = main.o Vector3.o Matrix3.o Png.o GraphicalObject.o Xml.o Cubemap.o
LINKOBJ  = main.o Vector3.o Matrix3.o Png.o GraphicalObject.o Xml.o Cubemap.o $(RES)
LIBS = -lpng -lz -stdc++ -lxml2
STATIC=-DLIBXML_STATIC
INCS =  -I"/include/GL"
CXXINCS = -pedantic -std=c++98 -march=pentium4 -mfpmath=sse -malign-double -finline-functions -O3 -fomit-frame-pointer -ffast-math
BIN  = r.exe
OLD  = r.old.exe
CXXFLAGS = $(CXXINCS)
CFLAGS = $(INCS)

.PHONY: all all-before all-after clean clean-custom

all: all-before r.exe all-after

clean: clean-custom
	rm -f $(OBJ) $(BIN)

$(BIN): $(OBJ)
	$(CPP) $(LINKOBJ) -o "r.exe" $(STATIC) $(LIBS)

main.o: main.cpp maths_defs.h Structures.h
	$(CPP) -c main.cpp  $(CXXFLAGS)

Vector3.o: Vector3.cpp Vector3.h
	 $(CPP) -c Vector3.cpp $(CXXFLAGS)

Matrix3.o: Matrix3.cpp Matrix3.h
	 $(CPP) -c Matrix3.cpp $(CXXFLAGS)

Png.o: Png.cpp Png.h
	 $(CPP) -c Png.cpp $(CXXFLAGS)
	 
GraphicalObject.o: GraphicalObject.cpp GraphicalObject.h
	 $(CPP) -c GraphicalObject.cpp $(CXXFLAGS)

Xml.o: Xml.cpp Xml.h
	 $(CPP) -c Xml.cpp $(CXXFLAGS)

Cubemap.o: Cubemap.cpp Cubemap.h
	 $(CPP) -c Cubemap.cpp $(CXXFLAGS)

save :
	cp -fr ./* ../ray-c++/
	rm -fr ../ray-c++/*.o
	rm -fr ../ray-c++/*.db
	tar -cvjf  ../ray.tar.bz2 ../ray-c++




