# libtcod samples mingw32 makefile
# to build debug version, run "make -f makefile-samples-mingw debug"
# to build release version, run "make -f makefile-samples-mingw release"
SRCDIR=.
INCDIR=include
SDLDIR=dependencies/SDL-1.2.15
CFLAGS=$(FLAGS) -I$(INCDIR) -I$(SDLDIR)/include -I$(SRCDIR) -Wall
CC=mingw32-gcc
CPP=mingw32-g++
UPX=dependencies/upx/win/upx.exe
MINGW_FLAGS=-static-libgcc -static-libstdc++
.SUFFIXES: .dll .a .o .h .c .hpp .cpp
$(TEMP)/libtcod/debug/samples/%.o : $(SRCDIR)/samples/%.cpp
$(CPP) $(CFLAGS) -g -o $@ -c $<
$(TEMP)/libtcod/debug/samples/%.o : $(SRCDIR)/samples/%.c
$(CC) $(CFLAGS) -g -o $@ -c $<
$(TEMP)/libtcod/debug/samples/%.o : $(SRCDIR)/samples/hmtool/%.cpp
$(CPP) $(CFLAGS) -g -o $@ -c $<
$(TEMP)/libtcod/release/samples/%.o : $(SRCDIR)/samples/%.cpp
$(CPP) $(CFLAGS) -O2 -s -o $@ -c $<
$(TEMP)/libtcod/release/samples/%.o : $(SRCDIR)/samples/%.c
$(CC) $(CFLAGS) -O2 -s -o $@ -c $<
$(TEMP)/libtcod/release/samples/%.o : $(SRCDIR)/samples/hmtool/%.cpp
$(CPP) $(CFLAGS) -O2 -s -o $@ -c $<
C_OBJS_DEBUG=$(TEMP)/libtcod/debug/samples/samples_c.o
CPP_OBJS_DEBUG=$(TEMP)/libtcod/debug/samples/samples_cpp.o
HMTOOLOBJS_DEBUG=$(TEMP)/libtcod/debug/samples/hmtool.o \
$(TEMP)/libtcod/debug/samples/operation.o
C_OBJS_RELEASE=$(TEMP)/libtcod/release/samples/samples_c.o
CPP_OBJS_RELEASE=$(TEMP)/libtcod/release/samples/samples_cpp.o
HMTOOLOBJS_RELEASE=$(TEMP)/libtcod/release/samples/hmtool.o \
$(TEMP)/libtcod/release/samples/operation.o
all : debug release
debug : samples_c_debug.exe samples_cpp_debug.exe hmtool_debug.exe
release : samples_c.exe samples_cpp.exe hmtool.exe
$(TEMP)/libtcod/debug/hmtool :
mkdir -p $@
$(TEMP)/libtcod/release/hmtool :
mkdir -p $@
$(TEMP)/libtcod/debug/samples :
mkdir -p $@
$(TEMP)/libtcod/release/samples :
mkdir -p $@
samples_c.exe : $(TEMP)/libtcod/release/samples $(C_OBJS_RELEASE)
$(CPP) $(C_OBJS_RELEASE) -o $@ -Llib -ltcod-mingw -L$(SDLDIR)/lib/mingw -lSDL.dll -mwindows $(MINGW_FLAGS)
$(UPX) samples_c.exe
samples_cpp.exe : $(TEMP)/libtcod/release/samples $(CPP_OBJS_RELEASE)
$(CPP) $(CPP_OBJS_RELEASE) -o $@ -Llib -ltcod-mingw -L$(SDLDIR)/lib/mingw -lSDL.dll -mwindows $(MINGW_FLAGS)
$(UPX) samples_cpp.exe
hmtool.exe : $(TEMP)/libtcod/release/hmtool $(HMTOOLOBJS_RELEASE)
$(CPP) $(HMTOOLOBJS_RELEASE) -o $@ -Llib -ltcod-mingw -ltcod-gui-mingw -mwindows $(MINGW_FLAGS)
$(UPX) hmtool.exe
samples_c_debug.exe : $(TEMP)/libtcod/debug/samples $(C_OBJS_DEBUG)
$(CPP) $(C_OBJS_DEBUG) -o $@ -Llib -ltcod-mingw-debug -L$(SDLDIR)/lib/mingw -lSDL.dll $(MINGW_FLAGS)
samples_cpp_debug.exe : $(TEMP)/libtcod/debug/samples $(CPP_OBJS_DEBUG)
$(CPP) $(CPP_OBJS_DEBUG) -o $@ -Llib -ltcod-mingw-debug -L$(SDLDIR)/lib/mingw -lSDL.dll $(MINGW_FLAGS)
hmtool_debug.exe : $(TEMP)/libtcod/debug/hmtool $(HMTOOLOBJS_DEBUG)
$(CPP) $(HMTOOLOBJS_DEBUG) -o $@ -Llib -ltcod-mingw-debug -ltcod-gui-mingw-debug $(MINGW_FLAGS)
clean :
rm -f $(C_OBJS_RELEASE) $(CPP_OBJS_RELEASE) $(HMTOOLOBJS_RELEASE) \
samples_c.exe samples_cpp.exe hmtool.exe \
$(C_OBJS_DEBUG) $(CPP_OBJS_DEBUG) $(HMTOOLOBJS_DEBUG) \
samples_c_debug.exe samples_cpp_debug.exe hmtool_debug.exe