#. 定义目录,一般为makefile所在当前路径
DIR = .
#. 定义当前路径下哪些文件夹里的文件需要编译
DIRS := buffer command defs display files main search utils
#. 定义源文件,即哪些源文件需要编译
SRCS := $(foreach dir, $(DIRS), $(wildcard $(DIR)/$(dir)/*.c))
#. 定义头文件路径
INCLUDE := $(foreach dir, $(DIRS), -I$(DIR)/$(dir))
#. 如果.c文件不在当前路径,需要定义搜索路径
#VPATH := $(foreach dir, $(DIRS), $(DIR)/$(dir))
#定义中间文件路径,可执行文件路径
OBJ_PATH = ./obj/
PROCESS_PATH = ./bin/
#. 定义最后生成的可执行文件的名称
PROCESS_NAME = makefile_test
GCC := gcc
################################## 下面的内容一般不需要修改 ####################################
#. CFLAGS为gcc编译器的选项
CFLAGS += $(INCLUDE)
#. 增加编译告警选项,增加gdb选项
CFLAGS += -Wall -g
OBJ = $(wildcard $(OBJ_PATH)/*.o)
$(PROCESS_NAME) : clean make_each_part
$(GCC) -o $(PROCESS_NAME) $(OBJ)
mv $(PROCESS_NAME) $(PROCESS_PATH) -f
@echo "make finish..."
make_each_part :
@echo "make begin..."
$(GCC) -c $(CFLAGS) $(SRCS)
mv ./*.o $(OBJ_PATH) -f
clean :
@echo "clean all..."
rm -rf $(OBJ_PATH)/*
rm -rf $(PROCESS_PATH)/*
makefile 终极模板文件。此文在手,编译我有!
最新推荐文章于 2021-12-20 23:44:12 发布