58 lines
1.3 KiB
Makefile
58 lines
1.3 KiB
Makefile
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
|