build工具的基本原理

1.首先读取一堆配置文件,从中可以知道所有的target,这些target需要什么编译命令和什么输入;

2.根据上面的信息,构建一个很大的依赖树;

3.然后build通过从树的叶子向根节点遍历,通过检查文件系统(时间戳,hash等),来判断对应的target有没有过期,如果过期了的话,会使用第一步中的编译命令和输入来生成新的target。

make, ant, scons都是这样的。