CC = g++
CFLAGS = -Wall
EXE = DarkRP2D
LIB_PATH = lib/
INC_PATH = include/
LIBS = -lmingw32 -lSDL2main -lSDL2 -lbox2d -lentityx

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)
