序
前言
第一部分 基本概念
第一章 如何编写一个简单的makefile
工作目标与必要条件
检查依存关系
尽量减少重新编译的工作量
调用make
Makefile的基本语法
第二章 规则
具体规则
变量
以VPATH和vpath来查找文件
模式规则
隐含规则
特殊工作目标
自动产生依存关系
管理程序库
第三章 变量与宏
变量的用途
变量的类型
宏
何时扩展变量
工作目标与模式的专属变量
变量来自何处
条件指令与引入指令的处理
标准的make变量
第四章 函数
用户自定义函数
内置函数
高级的用户自定义函数
第五章 命令
解析命令
使用哪个shell
空命令
命令环境
对命令脚本求值
命令行的长度限制
第二部分 高级与特别的议题
第六章 大型项目的管理
递归式make
非递归式make
大型系统的组件
文件系统的布局
自动编译与测试
第七章 具可移植性的makefile
可移植性的若干内容
Cygwin
管理程序和文件
使用不具可移植性的工具
automake
第八章 C与C++
分开源文件与二进制文件
只读的源文件树
产生依存关系
支持多个二进制文件树
部分的源文件树
引用编译结果、程序库以及安装程序
第九章 Java
make的替代方案
一个通用的Java makefile
编译Java
管理jar
引用树与来自第三方的jar文件
Enterprise JaVaBeans
第十章 改进make的效能
基准测试
找出瓶颈与处理瓶颈
并行式make
分布式make
第十一章 makefile实例
本书的makefile
Linux内核的makefile
第十二章 makefile的调试
make的调试功能
编写用于调试的代码
常见的错误信息
第三部分 附录
附录一 运行make
附录二 越过make的极限
索引
展开