60 lines
2.3 KiB
Makefile
60 lines
2.3 KiB
Makefile
HEADERS := $(wildcard src/*.h) $(wildcard src/*/*.h)
|
|
|
|
SOURCES := $(wildcard src/*.cpp) $(wildcard src/*/*.cpp)
|
|
OBJS := $(patsubst src/%.cpp,build/obj/%.o,$(SOURCES))
|
|
|
|
FOLDERS :=
|
|
|
|
CFLAGS := -w -Isrc/ -Idata/
|
|
OFLAGS := -fkeep-inline-functions -O3 -ffast-math -ftree-vectorize -funsafe-math-optimizations -msse2
|
|
|
|
CPPC := g++
|
|
CPPC_WIN := g++
|
|
WIN_RES := windres
|
|
|
|
all: build/powder
|
|
|
|
powder-release.exe: build/powder-release.exe
|
|
powder.exe: build/powder.exe
|
|
powder-release: build/powder-release
|
|
powder: build/powder
|
|
|
|
build/powder-release.exe: CFLAGS += -DWIN32
|
|
build/powder-release.exe: LFLAGS := -lmingw32 -lregex -lws2_32 -lSDLmain -lpthread -lSDL -lm -lbz2 -mwindows
|
|
build/powder.exe: CFLAGS += -DWIN32 -DWINCONSOLE
|
|
build/powder.exe: LFLAGS := -lmingw32 -lregex -lws2_32 -lSDLmain -lpthread -lSDL -lm -lbz2 #-mwindows
|
|
build/powder-release: CFLAGS += -DLIN32
|
|
build/powder-release: LFLAGS := -lSDL -lm -lbz2
|
|
build/powder: CFLAGS += -DLIN32
|
|
build/powder: LFLAGS := -lSDL -lm -lbz2
|
|
|
|
build/powder-release.exe: $(SOURCES) build/powder-res.o
|
|
$(CPPC_WIN) $(CFLAGS) $(OFLAGS) $(LDFLAGS) $(SOURCES) $(LFLAGS) build/powder-res.o -o $@
|
|
strip $@
|
|
build/powder-res.o: resources/powder-res.rc resources/powder.ico resources/document.ico
|
|
cd resources && $(WIN_RES) powder-res.rc powder-res.o
|
|
mv resources/powder-res.o build/powder-res.o
|
|
build/powder-release: $(SOURCES)
|
|
$(CPPC) $(CFLAGS) $(OFLAGS) $(LDFLAGS) $(SOURCES) $(LFLAGS) -o $@
|
|
strip $@
|
|
|
|
build/powder.exe: buildpaths-powder.exe $(patsubst build/obj/%.o,build/obj/powder.exe/%.o,$(OBJS))
|
|
$(CPP_WINC) $(CFLAGS) $(OFLAGS) $(LDFLAGS) $(patsubst build/obj/%.o,build/obj/powder.exe/%.o,$(OBJS)) $(LFLAGS) -o $@ -ggdb
|
|
build/obj/powder.exe/%.o: src/%.cpp $(HEADERS)
|
|
$(CPPC_WIN) -c $(CFLAGS) $(OFLAGS) -o $@ $< -ggdb
|
|
buildpaths-powder.exe:
|
|
$(shell mkdir build/obj/powder.exe/)
|
|
$(shell mkdir $(sort $(dir $(patsubst build/obj/%.o,build/obj/powder.exe/%.o,$(OBJS)))))
|
|
|
|
build/powder: buildpaths-powder $(patsubst build/obj/%.o,build/obj/powder/%.o,$(OBJS))
|
|
$(CPPC) $(CFLAGS) $(OFLAGS) $(LDFLAGS) $(patsubst build/obj/%.o,build/obj/powder/%.o,$(OBJS)) $(LFLAGS) -o $@ -ggdb
|
|
build/obj/powder/%.o: src/%.cpp $(HEADERS)
|
|
$(CPPC) -c $(CFLAGS) $(OFLAGS) -o $@ $< -ggdb
|
|
buildpaths-powder:
|
|
$(shell mkdir build/obj/powder/)
|
|
$(shell mkdir $(sort $(dir $(patsubst build/obj/%.o,build/obj/powder/%.o,$(OBJS)))))
|
|
|
|
clean:
|
|
rm -r build/obj/*
|
|
rm build/*.exe
|