应用软件开发部培训教材
make 工具及 makefile 规则
(文档编号:YR-WD-E-003)
方正奥德计算机系统有限公司
二零零一年二月
文档管理信息表
主 题 make 工具及 makele 规则
版 本
V1.0.1
内 容 makele 的编写方法
关 键 字
makele
参考文档 Unix 平台下 C 语言高级编程指南
提交时间 2001 年 3 月 5 日
撰 写 人 宫载军
文档修改记录表
修改人 修改时间 修改内容
make 工具及 makefile 规则
目 录
应用软件开发部培训教材 1
方正奥德计算机系统有限公司 1
文档管理信息表 II
文档修改记录表 II
目 录 1
一 makefile 规则 1
一.1 目标行 1
一.2 命令行 2
一.3 宏定义行3
一.4 伪指令 4
一.4.1 伪指令 include.............................................................................................................4
一.4.2 “伪指令 #”...................................................................................................................4
二 后缀规则 4
二.1 双后缀规则 4
二.2 单后缀规则 5
三 特殊目标 6
四 特殊的宏 7
五 makefile 的应用 8
1
make 工具及 makefile 规则
一 makefile 规则
makefile 是一个 make 的规则描述脚本文件,包括四种类型行:目标行、命令行、
宏定义行和 make 伪指令行(如“include”)。 makefile 文件中注释以“#”开头。当一行
写不下时,可以用续行符“\”转入下一行。
一.1 目标行
目标行告诉 make 建立什么。它由一个目标名表后面跟冒号“:”,再跟一个依赖性
表组成。
例:
example: depfile deptarget
该目标行指出目标 example 与 depfile 和 deptarget 有依赖关系,如果 depfile 或
deptarget 有修改,则重新生成目标。
example1 example2 example3: deptarget1 deptarget2 depfile
该目标行指出目标名表中的 example1、example2、example3 这三个各自独立的目
标是用相同的依赖列表和规则生成的。
clean:
空的依赖列表说明目标 clean 没有其他依赖关系。
目标行后续的以 Tab 开始的行是指出目标的生成规则,该 Tab 字符不能以空格代
替。例如:
example.o:example.c example.h
cc –c example.c
该 例 子 指 出 目 标 example.o 依 赖 于 example.c 和 example.h 。 如 果 example.c 或
example.h 其 中 之 一 改 变 了 , 就 需 要 执 行 命 令 cc –c example.c 重 新 生 成 目 标
example.o。
可以用文件名模式匹配来自动为目标生成依赖表,如:
prog: *.c
以下是一个简单的 makefile 的例子:
1