GNU Make 高级功能与技巧
1. 生成 XML 物料清单(BOM)
标准的 GNU make 输出很难回答“构建了什么”以及“为什么构建”的问题。可以使用一种简单的技术让 GNU make 创建包含物料清单(BOM)的 XML 文件,该 BOM 包含 makefile 构建的所有文件的名称,并通过嵌套显示每个文件的先决条件。
1.1 示例 Makefile 和 BOM
以下是一个简单的 makefile 示例:
all: foo bar @echo Making $@ foo: baz @echo Making $@ bar: @echo Making $@ baz: @echo Making $@运行make命令会产生如下输出:
$ make Making baz Making foo Making bar Making all从输出中很难识别构建的树状顺序或文件之间的依赖关系。理想的输出应该像下面这样,展示构建内容和原因:
<rule> <prereq> <rule> <prereq> <rule /> </prereq> </