GNU make manual 翻译(七十七)
继续翻译
You may split a long line by inserting a backslash followed by a newline, but this is not required, as `make' places no limit on the length of a line in a makefile. A rule tells `make' two things: when the targets are out of date, and how to update them when necessary. The criterion for being out of date is specified in terms of the PREREQUISITES, which consist of file names separated by spaces. (Wildcards and archive members (*note Archives::) are allowed here too.) A target is out of date if it does not exist or if it is older than any of the prerequisites (by comparison of last-modification times). The idea is that the contents of the target file are computed based on information in the prerequisites, so if any of the prerequisites changes, the contents of the existing target file are no longer necessarily valid. How to update is specified by a RECIPE. This is one or more lines to be executed by the shell (normally `sh'), but with some extra features (*note Writing Recipes in Rules: Recipes.).
你可以通过加入一个反斜线来分隔一行为两行,但是这不是必须的,make 对行的长度没有限制。
规则告诉 make 两件事:何时目的过期,以及如何在需要的时候更新目的。
是否过期的标准依赖于 前提条件,此前提条件由用空格分隔的文件名组成。
(通配符和库成员(*note Archives::)也是被允许的)
如果一个目的不存在或者比前提条件旧(通过对比最近更改时间),则此目的是过期的。此种做法就是目的文件的内容是根据前提条件中的信息来更新,因此任何一个前提条件变化,已存在的目的文件都将失效。
如何更新取决于 片段。这是移行或多行被shell 执行的命令,但是有一些增强功能(*note Writing Recipes in Rules: Recipes.)
后文待续