mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-12-23 16:48:52 -05:00
29 lines
810 B
Makefile
29 lines
810 B
Makefile
|
# Only used for standalone compilation, usually inherits these from the main makefile
|
||
|
CXXFLAGS ?= -Wall -Wextra -O2 -g -std=c++17
|
||
|
|
||
|
SRC_DIRS := $(shell find -type d -not -path "*build*")
|
||
|
CPP_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.cpp))
|
||
|
H_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.h))
|
||
|
|
||
|
O_FILES := $(foreach f,$(CPP_FILES:.cpp=.o),build/$f)
|
||
|
LIB := otrlib.a
|
||
|
|
||
|
# create build directories
|
||
|
$(shell mkdir -p $(foreach dir,$(SRC_DIRS),build/$(dir)))
|
||
|
|
||
|
all: $(LIB)
|
||
|
|
||
|
clean:
|
||
|
rm -rf build $(LIB)
|
||
|
|
||
|
format:
|
||
|
clang-format-11 -i $(CPP_FILES) $(H_FILES)
|
||
|
|
||
|
.PHONY: all clean format
|
||
|
|
||
|
build/%.o: %.cpp
|
||
|
$(CXX) $(CXXFLAGS) $(OPTFLAGS) -I ./ -I ../ZAPD/ZAPD -I ../ZAPD/ZAPDUtils -I ../../ZAPD/lib/tinyxml2 -I otrlib/Lib/spdlog/include -c $(OUTPUT_OPTION) $<
|
||
|
|
||
|
$(LIB): $(O_FILES)
|
||
|
$(AR) rcs $@ $^
|