MAKEFLAGS += -j16 CXXFLAGS := -std=c++23 -Wall -Wextra -pedantic-errors -fsanitize=address LDFLAGS := CXXFLAGS += $(shell pkgconf sdl2 --cflags) CXXFLAGS += $(shell pkgconf sdl2 --libs) build_dir = build obj_dir = $(build_dir)/obj sources := $(shell find src/ -name *.cpp -and -not -name *main.cpp) vc5_sources := $(sources) src/main.cpp asm_sources := $(sources) src/asm_main.cpp all: $(build_dir)/vc5 $(build_dir)/asm $(build_dir)/vc5: $(vc5_sources:%.cpp=$(obj_dir)/%.o) @mkdir -p $(dir $@) g++ $^ -o $@ $(CXXFLAGS) $(LDFLAGS) $(build_dir)/asm: $(asm_sources:%.cpp=$(obj_dir)/%.o) @mkdir -p $(dir $@) g++ $^ -o $@ $(CXXFLAGS) $(LDFLAGS) $(obj_dir)/%.o: %.cpp @mkdir -p $(dir $@) g++ $< -c -o $@ -MMD -MP $(CXXFLAGS) .PHONY: clean clean: rm -rf $(build_dir) -include $(sources:%.cpp=$(obj_dir)/%.d)