38 lines
822 B
Makefile
38 lines
822 B
Makefile
|
|
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)
|
|
|