45 lines
1.0 KiB
Makefile
45 lines
1.0 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_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 $@
|