webserver/Makefile
2025-05-06 21:35:33 +08:00

44 lines
933 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 help
help:
@echo "usage as follows:\n"\
"make all\t--> compiler all and run\n"\
"make run\t--> make and run\n"\
"make clean\t--> make clean the compiling stuff\n"\
"make full_clean\t--> rm all make related files\n"