57 lines
1.5 KiB
Makefile
57 lines
1.5 KiB
Makefile
CXX = g++
|
|
CXXFLAGS = -O3 -Isrc
|
|
LD = ld
|
|
|
|
LINKFLAGS = -lGL -lglfw
|
|
|
|
CC = gcc
|
|
CCFLAGS = -O3 -Isrc
|
|
|
|
XNOECRAFT_CPP_SRCS = $(shell find src/ -name '*.cpp')
|
|
XNOECRAFT_C_SRCS = $(shell find src/ -name '*.c')
|
|
XNOECRAFT_RES = $(shell find res/ -type f)
|
|
|
|
XNOECRAFT_OBJS = $(patsubst src/%.cpp,build/%.o,$(XNOECRAFT_CPP_SRCS)) $(patsubst src/%.c,build/%.o,$(XNOECRAFT_C_SRCS)) $(patsubst res/%.dat,build/%.o,$(XNOECRAFT_RES))
|
|
XNOECRAFT_OBJS_WIN = $(patsubst src/%.cpp,build/%.wo,$(XNOECRAFT_CPP_SRCS)) $(patsubst src/%.c,build/%.wo,$(XNOECRAFT_C_SRCS)) $(patsubst res/%.dat,build/%.o,$(XNOECRAFT_RES))
|
|
|
|
XNOECRAFT_SRC_DIRS = $(shell find src/* -type d)
|
|
XNOECRAFT_RES_DIRS = $(shell find res/* -type d)
|
|
XNOECRAFT_OBJ_DIRS = $(patsubst src/%,build/%,$(XNOECRAFT_SRC_DIRS)) $(patsubst res/%,build/%,$(XNOECRAFT_RES_DIRS))
|
|
|
|
.PHONY = all cleanbuild clean prepare
|
|
|
|
run: all
|
|
./build/xnoecraft
|
|
|
|
all: prepare build/xnoecraft build/xnoecraft.exe
|
|
|
|
cleanbuild: clean prepare build/xnoecraft
|
|
|
|
clean:
|
|
rm -r build
|
|
|
|
prepare: $(XNOECRAFT_OBJ_DIRS)
|
|
|
|
build/xnoecraft: $(XNOECRAFT_OBJS)
|
|
$(CXX) $(LINKFLAGS) -o $@ $^
|
|
|
|
build/xnoecraft.exe: $(XNOECRAFT_OBJS_WIN)
|
|
x86_64-w64-mingw32-g++ -static -static-libgcc -static-libstdc++ $^ -lglfw3 -lgdi32 -lssp -o $@
|
|
|
|
build/%.o: src/%.cpp
|
|
$(CXX) $(CXXFLAGS) -o $@ -c $<
|
|
|
|
build/%.o: src/%.c
|
|
$(CC) $(CCFLAGS) -o $@ -c $<
|
|
|
|
build/%.wo: src/%.cpp
|
|
x86_64-w64-mingw32-g++ $(CXXFLAGS) -o $@ -c $<
|
|
|
|
build/%.wo: src/%.c
|
|
x86_64-w64-mingw32-gcc $(CCFLAGS) -o $@ -c $<
|
|
|
|
build/%.o: res/%.dat
|
|
$(LD) -r -b binary $< -o $@
|
|
|
|
$(XNOECRAFT_OBJ_DIRS):
|
|
mkdir -p $@
|