CC = g++ CFLAGS = -Wall EXE = DarkRP2D LIB_PATH = lib/ INC_PATH = include/ LIBS = -lmingw32 -lSDL2main -lSDL2 -lbox2d -lentityx -lSDL2_image SRCDIR = src BUILDDIR = build SRCDIRS := $(shell C:\\MinGW\\msys\\1.0\\bin\\find src/**/* -name '*.cpp' -exec dirname {} \; | sort | uniq) BUILDLIST := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SRCDIRS)) SRC = $(shell C:\\MinGW\\msys\\1.0\\bin\\find $(SRCDIR) -type f -name *.cpp) OBJ := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SRC:.cpp=.o)) .PHONY: all clean build run debug all: build $(EXE) copyDLLs run: all $(BUILDDIR)/$(EXE) $(EXE): $(OBJ) $(CC) $(CFLAGS) -o $(BUILDDIR)/$@ $^ -L$(LIB_PATH) $(LIBS) -static-libgcc -static-libstdc++ $(BUILDDIR)/%.o: $(SRCDIR)/%.cpp @mkdir -p $(BUILDLIST) $(CC) $(CFLAGS) -c $< -o $@ -I$(INC_PATH) build: C:\\MinGW\\msys\\1.0\\bin\\mkdir -p $(BUILDDIR) copyDLLs: C:\\MinGW\\msys\\1.0\\bin\\cp dlls/* build/ clean: rm -rf $(BUILDDIR) debug: @echo $(BUILDLIST)