PRODUCT = $(PRODUCT_NAME)

TOOLCHAINS = /Users/cesar/toolchains/
INCLUDES_DIR = $(TOOLCHAINS)includes/win32/
LIBS_DIR=  $(TOOLCHAINS)lib/win32/
CXX_BIN = $(TOOLCHAINS)win32-gcc/win32-gcc/bin/

CXX = $(CXX_BIN)i586-mingw32-g++
LNK = $(CXX_BIN)i586-mingw32-ar

SOURCE_DIR = ./
OBJECTS_DIR = $(OBJECT_FILE_DIR)/

FILES = $(OBJECTS_DIR)main.o \
$(OBJECTS_DIR)Chest.o \
$(OBJECTS_DIR)CreditsScreen.o \
$(OBJECTS_DIR)DungeonGame.o \
$(OBJECTS_DIR)Enemy.o \
$(OBJECTS_DIR)Entity.o \
$(OBJECTS_DIR)FailMenu.o \
$(OBJECTS_DIR)IntroMenu.o \
$(OBJECTS_DIR)MainCharacter.o \
$(OBJECTS_DIR)MainMenu.o \
$(OBJECTS_DIR)MapLayer.o \
$(OBJECTS_DIR)PauseMenu.o \
$(OBJECTS_DIR)SuccessScreen.o \
$(OBJECTS_DIR)Tile.o \
$(OBJECTS_DIR)TimedLabel.o \
$(OBJECTS_DIR)TitleScreen.o

LDFLAGS = -L$(LIBS_DIR) -Dmain=SDL_main -lmingw32 -lSDL2main -lSDL2 -lSDL2_image -lSDL2_mixer -mwindows -lPixelKit_dll
CXXFLAGS = -I$(INCLUDES_DIR) -L$(LIBS_DIR) -Wall -c -std=c++11 -lPixelKit_dll

debug: CXXFLAGS += -g -O0
debug: LDFLAGS += -g
debug: prepare $(PRODUCT)

prepare:
	mkdir -p $(CONFIGURATION_BUILD_DIR)/$(PRODUCT)
	mkdir -p $(OBJECTS_DIR)

$(PRODUCT): $(FILES)
	$(CXX) -o $(CONFIGURATION_BUILD_DIR)/$(PRODUCT)/$(PRODUCT).exe $(FILES) $(LDFLAGS)
	cp -r assets $(CONFIGURATION_BUILD_DIR)/$(PRODUCT)/assets

$(OBJECTS_DIR)%.o: $(SOURCE_DIR)%.cpp
	mkdir -p $(OBJECTS_DIR)
	$(CXX) $(CXXFLAGS) $< -o $@

clean:
	rm -rf $(OBJECTS_DIR)
	rm -rf $(CONFIGURATION_BUILD_DIR)/$(PRODUCT)