summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile42
1 files changed, 42 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..65a9605
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,42 @@
+HEADERS := $(wildcard includes/*.h)
+
+OLD_SOURCES := $(wildcard src/*.c)
+OLD_OBJS := $(patsubst src/%.c,build/obj/%.o,$(OLD_SOURCES))
+
+EL_SOURCES := $(wildcard elements/*.cpp)
+EL_OBJS := $(patsubst elements/%.cpp,build/obj/elements/%.o,$(EL_SOURCES))
+EL_PREREQ := $(patsubst build/obj/elements/%.o,build/obj/elements/%.powder.exe.o,$(EL_OBJS))
+
+CORE_SOURCES := $(wildcard src/*.cpp)
+CORE_OBJS := $(patsubst src/%.cpp,build/obj/core/%.o,$(CORE_SOURCES))
+CORE_PREREQ := $(patsubst build/obj/core/%.o,build/obj/core/%.powder.exe.o,$(CORE_OBJS))
+
+UI_SOURCES := $(wildcard src/interface/*.cpp)
+UI_OBJS := $(patsubst src/interface/%.cpp,build/obj/ui/%.o,$(UI_SOURCES))
+UI_PREREQ := $(patsubst build/obj/ui/%.o,build/obj/ui/%.powder.exe.o,$(UI_OBJS))
+
+CFLAGS := -Iincludes/ -Idata/ -DWIN32
+OFLAGS := -O3 -ffast-math -ftree-vectorize -funsafe-math-optimizations -fkeep-inline-functions
+LFLAGS := -lmingw32 -lregex -lws2_32 -lSDLmain -lpthread -lSDL -lm -lbz2 # -mwindows
+
+CFLAGS += $(OFLAGS)
+
+CPPC := g++
+CPPC_WIN := i686-w64-mingw32-gcc
+WIN_RES := i686-w64-mingw32-windres
+
+build/powder.exe: $(EL_PREREQ) $(CORE_PREREQ) $(UI_PREREQ)
+ $(CPPC) $(CFLAGS) $(LDFLAGS) $(EXTRA_OBJS) $(EL_PREREQ) $(CORE_PREREQ) $(UI_PREREQ) $(LFLAGS) -o $@ -ggdb
+build/obj/ui/%.powder.exe.o: src/interface/%.cpp $(HEADERS)
+ $(CPPC) -c $(CFLAGS) -o $@ $< -ggdb
+build/obj/elements/%.powder.exe.o: elements/%.cpp $(HEADERS)
+ $(CPPC) -c $(CFLAGS) -o $@ $< -ggdb
+build/obj/core/%.powder.exe.o: src/%.cpp $(HEADERS)
+ $(CPPC) -c $(CFLAGS) -o $@ $< -ggdb
+
+clean:
+ rm build/obj/core/*.o
+ rm build/obj/ui/*.o
+ rm build/obj/elements/*.o
+ rm build/obj/*.o
+ rm build/*.exe \ No newline at end of file