GNU make manual 翻译(十八)

继续翻译

   The other rules are processed because their targets appear as 
prerequisites of the goal.  If some other rule is not depended on by the
goal (or anything it depends on, etc.), that rule is not processed, 
unless you tell `make' to do so (with a command such as `make clean').                        
                        
   Before recompiling an object file, `make' considers updating its 
prerequisites, the source file and header files.  This makefile does not 
specify anything to be done for them--the `.c' and `.h' files are not 
the targets of any rules--so `make' does nothing for these files.  But 
`make' would update automatically generated C programs, such as those 
made by Bison or Yacc, by their own rules at this time.                        

       其他的规则被处理的原因是,他们的目的出现在了终点的前提条件上。如果一个规则没有出现在终点的依赖序列中,则此规则不会得到处理。除非你强制 make 去处理(例如 执行 make clean)。

       在重新编译一个目标文件之前, make 会先干更改此目标文件的前提条件,即源文件和头文件。

此makefile 不会指定任何任务--.c 和 .h 文件不是任何规则的目的--所以 make 不会处理它们。但是make 会自动地生成 C 程序,例如那些由 规则所指定,进而被如Bison 或者 Yacc 生成的C程序。

 后文待续

posted @ 2012-09-13 14:52  健哥的数据花园  阅读(176)  评论(0编辑  收藏  举报