您的位置:首页 > 其它

makefile 终极模板文件。此文在手,编译我有!

2014-09-11 11:04 253 查看


#. 定义目录,一般为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)/*
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: