filecomplete/Makefile

42 lines
842 B
Makefile

# 编译器和编译选项
CXX = g++
CXXFLAGS = -Wall -Wextra -std=c++17 -O2 -Wno-unused-parameter
# 文件和目标
LIB_SRC = filecomplete.cpp
LIB_OBJ = $(LIB_SRC:.cpp=.o)
LIB_HEADER = filecomplete.h
MAIN_SRC = main.cpp
MAIN_OBJ = $(MAIN_SRC:.cpp=.o)
TARGET = main
KEY_VALUE_SRC = key_value.cxx
KEY_VALUE_BIN = key_value
# 默认目标
all: $(TARGET) $(KEY_VALUE_BIN)
# 生成目标文件
$(TARGET): $(LIB_OBJ) $(MAIN_OBJ)
$(CXX) $(CXXFLAGS) -o $@ $^
# 编译库源文件
$(LIB_OBJ): $(LIB_SRC) $(LIB_HEADER)
$(CXX) $(CXXFLAGS) -c $< -o $@
# 编译主程序文件
$(MAIN_OBJ): $(MAIN_SRC)
$(CXX) $(CXXFLAGS) -c $< -o $@
# 编译 key_value 二进制
$(KEY_VALUE_BIN): $(KEY_VALUE_SRC)
$(CXX) $(CXXFLAGS) -o $@ $<
# 清理生成文件
clean:
rm -f $(LIB_OBJ) $(MAIN_OBJ) $(TARGET) $(KEY_VALUE_BIN)
# 伪目标
.PHONY: all clean