CXX_FLAGS = \ -std=c++23 \ -Og \ -fsanitize=address,undefined \ -pedantic -pedantic-errors \ -Wall -Wextra -Wpedantic -Wconversion \ OUT=build/sliger CXX_HEADERS = $(shell find . -name "*.hpp" -type f -printf '%P\n') CXX_SOURCES = $(shell find . -name "*.cpp" -type f -printf '%P\n') CXX_OBJECTS = $(patsubst %.cpp,build/%.o,$(CXX_SOURCES)) all: build_dir $(OUT) $(OUT): $(CXX_OBJECTS) g++ -o $@ $(CXX_FLAGS) $^ build_dir: mkdir -p build/ build/%.o: %.cpp $(CXX_HEADERS) g++ -c -o $@ $(CXX_FLAGS) $< clean: rm -rf build/