#
# Makefile for building rrgbis
#
# http://rrgbis.sourceforge.net/
#

INSTALL_DIR=/usr/local/share
INSTALL_BIN_DIR=/usr/local/bin

TARGET = rrgbis
SQUIRREL=src/squirrel
FTGL=src/FTGL
MAKE=make

CXX = g++
CXXFLAGS = $(shell sdl-config --cflags) $(shell freetype-config --cflags) -Isrc/squirrel/include -I$(FTGL)/src
OPTIFLAGS = -O3 -fno-strict-aliasing 
DEBUGFLAGS = -g3
DEFS = -DSQUNICODE
LIBS = -lsquirrel -lsqstdlib $(shell sdl-config --libs) -lSDL_image -lSDL_mixer -lftgl -lGL $(shell freetype-config --libs) -L$(SQUIRREL)/lib -lftgl -L$(FTGL)/src

SOURCES = $(wildcard src/*.cpp) $(wildcard src/scripting/*.cpp)
OBJS = $(SOURCES:.cpp=.o)
RELEASEOBJS = $(addprefix build/release/,$(OBJS))
DEBUGOBJS = $(addprefix build/debug/,$(OBJS))

.PHONY: default
default: squirrel ftgl $(TARGET)

.PHONY: clean
clean:
	rm -f $(TARGET) build/release/src/*.o build/release/src/scripting/*.o \
			build/debug/src/*.o build/debug/src/scripting/*.o \
			$(SQUIRREL)/squirrel/*.o $(SQUIRREL)/sqstdlib/*.o $(SQUIRREL)/lib/*.a

.PHONY: build
build: clean default

$(TARGET): $(RELEASEOBJS)
	$(CXX) $(CXXFLAGS) $(OPTIFLAGS) $(DEFS) -o $@ $^ $(LIBS)

build/release/%.o: %.cpp
	$(CXX) $(CXXFLAGS) $(OPTIFLAGS) $(DEFS) -c $< -o $@

rrgbisdebug: $(DEBUGOBJS)
	$(CXX) $(CXXFLAGS) $(DEBUGFLAGS) $(DEFS) -o $@ $^ $(LIBS)

build/debug/%.o: %.cpp
	$(CXX) $(CXXFLAGS) $(DEBUGFLAGS) $(DEFS) -c $< -o $@
	
squirrel:
	cd $(SQUIRREL)/squirrel; $(MAKE)
	cd $(SQUIRREL)/sqstdlib; $(MAKE)

ftgl:
	cd $(FTGL); $(MAKE)
	cd $(FTGL)/src; ar rc libftgl.a *.o


	

