37 lines
712 B
Makefile
37 lines
712 B
Makefile
|
|
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
|