CXX = g++
DEBUG = -Wall # -g -pg 
OPTIMIZATIONS = -O3

CXXFLAGS = $(shell sdl-config --cflags) $(shell freetype-config --cflags) $(DEBUG) $(OPTIMIZATIONS) -D_DEBUG
LDFLAGS = $(shell sdl-config --libs) -lSDL_image -lGL -L/usr/X11R6/lib -lGLU /usr/lib/libftgl.a $(shell freetype-config --libs) -lGLEW
CFLAGS = $(CXXFLAGS)

all: tpv

TPV_OBJS = main.o Texture.o Node.o projection.o Planet.o Cache.o Chunk.o \
	   gl_stuff.o sdl_stuff.o VirtualChunk.o Options.o DataSet.o CloudsLayer.o \
	   Camera.o frustum.o Observer.o VectObjects.o VectInfos.o Cities.o \
	   sdlzlib.o FlagsTable.o TextureArray.o BufferObject.o extgl.o

main.o: main.cpp
Texture.o: Texture.cpp Texture.hpp gl_stuff.hpp
Node.o: Node.cpp Node.hpp
projection.o: projection.cpp projection.hpp
Planet.o: Planet.cpp Planet.hpp Node.hpp Grid.hpp projection.hpp Chunk.hpp VirtualChunk.hpp 
Cache.o: Cache.cpp Chunk.hpp
Chunk.o: Chunk.cpp Chunk.hpp Texture.hpp
gl_stuff.o: gl_stuff.cpp gl_stuff.hpp
sdlzlib.o: sdlzlib.c sdlzlib.h
VirtualChunk.o: VirtualChunk.cpp Node.hpp projection.hpp
Options.o: Options.cpp
GlGui.o: GlGui.cpp GlGui.hpp
SideBar.o: SideBar.cpp SideBar.hpp
DataSet.o: DataSet.cpp DataSet.hpp
CloudsLayer.o: CloudsLayer.cpp CloudsLayer.hpp Texture.hpp
Camera.o: Camera.cpp Camera.hpp
frustum.o: frustum.cpp
Vecto.o: Vecto.cpp Vecto.hpp
Cities.o: Cities.cpp Cities.hpp
FlagsTable.o: FlagsTable.cpp FlagsTable.hpp
VectObjects.o: VectObjects.cpp VectObjects.hpp
VectInfos.o: VectInfos.cpp VectInfos.hpp
TextureArray.o: TextureArray.hpp TextureArray.cpp
BufferObject.o: BufferObject.cpp BufferObject.hpp

tpv: $(TPV_OBJS)
	$(CXX) $(DEBUG) -o tpv $(TPV_OBJS) $(LDFLAGS)

clean:
	rm *.o *~ log core.* -f
