缺省情况下,make开始于第一个目标(假想目标的名称前带‘.’)。这个目标称为缺省最终目标(即make最终更新的目标,具体内容请看指定最终目标的参数一节)。
在上节的简单例子中,缺省最终目标是更新可执行文档‘edit’,所以我们将该规则设为第一规则。这样,一旦您给出命令:
make
make就会读当前目录下的makefile文档,并开始处理第一条规则。在本例中,第一条规则是连接生成‘edit’,但在make全部完成本规则工作之前,必须先处理‘edit’所依靠的OBJ文档。这些OBJ文档按照各自的规则被处理更新,每个OBJ文档的更新规则是编译其源文档。重新编译根据其依靠的源文档或头文档是否比现存的OBJ文档更‘新’,或OBJ文档是否存在来判断。
其他规则的处理根据他们的目标是否和缺省最终目标的依赖相关联来判断。假如一些规则和缺省最终目标无任何关联则这些规则不会被执行,除非告诉Make强制执行(如输入执行make clean命令)。
在OBJ文档重新编译之前,Make首先检查他的依赖C语言源文档和C语言头文档是否需要更新。假如这些C语言源文档和C语言头文档不是任何规则的目标,make将不会对他们做任何事情。Make也能够自动产生C语言源程式,这需要特定的规则,如能够根据Bison或Yacc产生C语言源程式。
在OBJ文档重新编译(假如需要的话)之后,make决定是否重新连接生成edit可执行文档。假如edit可执行文档不存在或任何一个OBJ文档比存在的edit可执行文档‘新’,则make重新连接生成edit可执行文档。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




