CXX := g++ CPP_STD := 17 CPP = c++ PRJ_NAME = run PRJ_HEADERS_DIR := $(CURDIR)/headers SRC_DIR := $(CURDIR)/src CXX_FLAGS := -Wall -I$(PRJ_HEADERS_DIR) -std=$(CPP)$(CPP_STD) -g LDFLAGS = OUTPUT_DIR := $(CURDIR)/output BUILD_DIR := $(CURDIR)/build SRCS := $(wildcard $(SRC_DIR)/*.cc) OBJS := $(patsubst $(SRC_DIR)/%.cc, $(BUILD_DIR)/%.o, $(wildcard $(SRC_DIR)/*.cc)) TARGET = $(OUTPUT_DIR)/$(PRJ_NAME) all: $(TARGET) $(TARGET): $(OBJS) $(CXX) -o $@ $^ $(LDFLAGS) $(BUILD_DIR)/%.o: $(SRC_DIR)/%.cc $(CXX) $(CXX_FLAGS) -c $< -o $@ run: all @echo "----start exec project------" @$(TARGET) clean: @rm -f $(OBJS) $(TARGET) full_clean: @rm -rf $(BUILD_DIR)/* && rm -rf $(OUTPUT_DIR)/* .PHONY: all clean