EXT	        = cpp
CXX	        = g++
REPERTOIRE	= gui gui/trackball src src/math
TARGET	    = main
OS 			= Linux


CFLAGS	    = -ansi -D_GNU_SOURCE -W -Wall -ggdb3 `wx-config --cppflags`
INCDIR  	= $(REPERTOIRE:%=-I./%)
LIBDIR   	=  
LIBS	    = `wx-config --libs --gl-libs`
ifeq ($(OS), Linux)
	LIBS   += -lGL -lglut
else ifeq ($(OS), Mac)
	LIBS   += -framework OPENGL -framework GLUT -lobjc -lm
endif

SOURCES		= $(foreach REP,$(REPERTOIRE),$(wildcard $(REP)/*.$(EXT)))
HEADERS 	= $(foreach REP,$(REPERTOIRE),$(wildcard $(REP)/*.h))
OBJECTS	    = $(SOURCES:%.$(EXT)=obj/%.o)
$(foreach REP,$(REPERTOIRE),$(shell mkdir ./obj/$(REP) > /dev/null 2>&1))


all : $(TARGET)


$(TARGET) : $(OBJECTS)
	@echo -n "+ Edition des liens sur '`basename $@`' : "
	@$(CXX) $(CFLAGS) $(INCDIR) $(LIBDIR) $(LIBS) $^ -o $@ 
	@echo "OK"


obj/%.o : %.$(EXT)
	@echo -n "+ Compilation de '`basename $@`' : "
	@$(CXX) $(CFLAGS) $(INCDIR) -c $< -o $@
	@echo "OK"


clean :
	@echo -n "- Suppression : "
	@rm -f $(OBJECTS) $(TARGET)
	@echo "OK"


rebuild : clean all


run : all
	@echo -n "+ Lancement de l'application : "
	./$(TARGET) -v


runall : clean run


archive : clean
	@rm -f ${TARGET}.tar.gz
	@echo -n "+ Creation de l'archive : "
	@tar czf $(TARGET).tar.gz $(HEADERS) $(SOURCES) gui/bitmaps/* makefile
	@echo "OK"
