cpp-xnoecraft2/Makefile

45 lines
1.0 KiB
Makefile

CXX = g++
CXXFLAGS = -g -Isrc
LD = ld
LINKFLAGS = -lGL -lglfw
CC = gcc
CCFLAGS = -g -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_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
all: prepare build/xnoecraft
./build/xnoecraft
cleanbuild: clean prepare build/xnoecraft
clean:
rm -r build
prepare: $(XNOECRAFT_OBJ_DIRS)
build/xnoecraft: $(XNOECRAFT_OBJS)
$(CXX) $(LINKFLAGS) -o $@ $^
build/%.o: src/%.cpp
$(CXX) $(CXXFLAGS) -o $@ -c $<
build/%.o: src/%.c
$(CC) $(CCFLAGS) -o $@ -c $<
build/%.o: res/%.dat
$(LD) -r -b binary $< -o $@
$(XNOECRAFT_OBJ_DIRS):
mkdir -p $@