CC = g++ -Wall -ansi -DLINUX
CONFIG_FLAGS = -DNO_REDHAT_EXTENSIONS
RELEASE = -O2 -ffast-math $(CONFIG_FLAGS)
DEBUG = -g $(CONFIG_FLAGS)

.SUFFIXES: .cpp .h .i

FW_PATH  = ../Framework
APP_NAME = MarsDemo
APP_PATH = .

FW_BASE_MATH = $(FW_PATH)/Math/Plane.cpp $(FW_PATH)/Math/Matrix.cpp $(FW_PATH)/Math/Vertex.cpp
FW_BASE_IMAGING = $(FW_PATH)/Imaging/Image.cpp
FW_BASE_RENDERER = $(FW_BASE_IMAGING) $(FW_PATH)/Imaging/Image3D.cpp $(FW_PATH)/Renderer.cpp $(FW_PATH)/OpenGL/OpenGLRenderer.cpp $(FW_PATH)/OpenGL/glExtensions.cpp $(FW_PATH)/OpenGL/OpenGLRenderTarget.cpp
FW_BASE_APP = $(FW_PATH)/Linux/OpenGLApp.cpp $(FW_PATH)/CPU.cpp
FW_UTIL = $(FW_PATH)/DisplayMode.cpp $(FW_PATH)/Util/String.cpp $(FW_PATH)/Util/Tokenizer.cpp $(FW_PATH)/Util/Config.cpp

FW  = $(FW_BASE_MATH) $(FW_BASE_RENDERER) $(FW_BASE_APP) $(FW_UTIL)
APP = $(APP_PATH)/Main.cpp $(FW_PATH)/Util/ProceduralTerrain.cpp $(APP_PATH)/FileMapper.cpp

.cpp.i:
	$(CC) -E $<

release:
	$(CC) $(RELEASE) $(APP) $(FW) -o $(APP_NAME) -L/usr/X11R6/lib -lGL -lXxf86vm -L/usr/lib -lpng -ljpeg
debug:
	$(CC) $(DEBUG) $(APP) $(FW) -o $(APP_NAME) -L/usr/X11R6/lib -lGL -lXxf86vm -L/usr/lib -lpng -ljpeg

clean:
	@rm $(APP_NAME)
