SHELL = /bin/bash SRC_DIR = ./src INC_DIR = ./include OBJ_DIR = ./obj HEADERS = $(wildcard $(INC_DIR)/*.hpp) SRC_FILES = $(wildcard $(SRC_DIR)/*.cpp) DEP_FILES = $(OBJ_FILES:.o=.d) OBJ_FILES = $(addprefix $(OBJ_DIR)/,$(notdir $(SRC_FILES:.cpp=.o))) CXXFLAGS += -Wall -std=c++20 -O2 -I $(INC_DIR) all: bin/swarm bin/swarm: $(OBJ_FILES) @mkdir -p bin $(CXX) $(CXXFLAGS) -o $@ $^ .PHONY: debug debug: CXXFLAGS += -O0 -g debug: clean bin/swarm .PHONY: clean clean: $(RM) obj/*.o $(RM) bin/swarm -include $(DEP_FILES) $(OBJ_DIR)/%.o : src/%.cpp mkdir -p $(@D) $(CXX) $(CXXFLAGS) -MMD -c $< -o $@