slige/runtime/Makefile
2024-12-13 20:05:46 +01:00

52 lines
794 B
Makefile

MAKEFLAGS := --jobs=$(shell nproc)
RELEASE=0
ifeq ($(RELEASE),1)
CXX_FLAGS = \
-std=c++23 \
-O2 \
-pedantic -pedantic-errors \
-Wall -Wextra -Wpedantic -Wconversion -Werror\
else
CXX_FLAGS = \
-std=c++23 \
-fsanitize=address,undefined \
-Og \
-pedantic -pedantic-errors \
-Wall -Wextra -Wpedantic -Wconversion -Werror\
endif
CXX = g++
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)
$(CXX) -o $@ $(CXX_FLAGS) $^
git rev-parse HEAD > build/rev
build_dir:
mkdir -p build/
build/%.o: %.cpp $(CXX_HEADERS)
$(CXX) -c -o $@ $(CXX_FLAGS) $<
clean:
rm -rf build/