OBJ_PATH=obj BIN_PATH=bin LIB_PATH=bin # 不取测试文件 SRC_FILE= $(shell find . -name '*.cpp' | grep -v -E '^.+test_.+\.cpp') SRC_NAME = $(notdir $(SRC_FILE)) OBJ_FILE = $(addprefix $(OBJ_PATH)/, $(patsubst %.cpp,%.o,$(SRC_NAME))) INC_PATH = include . INC_FLAG = $(addprefix -I, $(INC_PATH)) DEFINES = DEBUG DEF_FLAG = $(addprefix -D, $(DEFINES)) OTH_FLAG = -Werror -Wall CC_FLAG = $(INC_FLAG) $(DEF_FLAG) $(OTH_FLAG) # MAIN_NAME = config/test_config # OBJ_FILE= $(addsuffix .o, $(addprefix $(OBJ_PATH)/, $(SRC_NAME))) # MAIN_FILE= $(addsuffix .c, $(addprefix $(SRC_PATH)/, $(MAIN_NAME))) # LIB_FILE= $(addsuffix .a, $(addprefix $(OBJ_PATH)/, $(SRC_NAME))) # BIN_FILE = $(addprefix $(BIN_PATH)/, $(MAIN_NAME)) CLEAN_OBJ =$(OBJ_FILE) .depend bin/* #$(BIN_FILE) $(LIB_FILE) build: .depend $(OBJ_FILE) # echo $(INC_FLAG) $(BIN_FILE): $(OBJ_FILE)# $(MAIN_FILE) g++ $(CC_FLAG) $^ -g -o $@ .depend: $(SRC_FILE) g++ -MM $(CC_FLAG) $^ > $@ sed -i '/.o:/ s,^,obj/,' $@ include .depend $(OBJ_PATH)/%.o: g++ -c $< $(CC_FLAG) -g -o $@ # $(BIN_PATH)/%.out: # TEST_NAME = $(notdir $@) # TEST_FILE = $(patsubst %.out, %.cpp, $(TEST_NAME)) # TEST_FILE = $(shell find . -name $(TEST_FILE).cpp) rebuild: clean build clean: -rm $(CLEAN_OBJ) .PHONY: build rebuild clean