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程序。
后文待续