GNU make manual 翻译( 一百一十七)

继续翻译

   The TARGET-PATTERN and PREREQ-PATTERNS say how to compute the
prerequisites of each target.  Each target is matched against the
TARGET-PATTERN to extract a part of the target name, called the "stem".
This stem is substituted into each of the PREREQ-PATTERNS to make the
prerequisite names (one from each PREREQ-PATTERN).

   Each pattern normally contains the character `%' just once.  When the
TARGET-PATTERN matches a target, the `%' can match any part of the
target name; this part is called the "stem".  The rest of the pattern
must match exactly.  For example, the target `foo.o' matches the
pattern `%.o', with `foo' as the stem.  The targets `foo.c' and
`foo.out' do not match that pattern.

   The prerequisite names for each target are made by substituting the
stem for the `%' in each prerequisite pattern.  For example, if one
prerequisite pattern is `%.c', then substitution of the stem `foo'
gives the prerequisite name `foo.c'.  It is legitimate to write a
prerequisite pattern that does not contain `%'; then this prerequisite
is the same for all targets.

The TARGET-PATTERN and PREREQ-PATTERNS say how to compute the
prerequisites of each target. Each target is matched against the
TARGET-PATTERN to extract a part of the target name, called the "stem".
This stem is substituted into each of the PREREQ-PATTERNS to make the
prerequisite names (one from each PREREQ-PATTERN).

目的模式(TARGET-PATTERN)和前提模式(PREREQ-PATTERN)指出如何为每一个目的计算前提条件。每个目的都通过目的模式来解析出一部分目的名来进行匹配,成为枝干。这个枝干会被替换成每一个前提模式以生成前提条件名称(一个 前提模式一个)

上述每个模式同行都只包含%符号一次。当目的模式匹配了一个目的,%能够匹配任何目的名的部分,这个部分称为 枝干。剩余的模式必须精确匹配。例如,目的 foo.o 匹配模式 %.o, foo为枝干。目的 foo.c 和 foo.out 并不匹配此模式。

每个目的的前提条件名通过在前提条件模式中为%替换枝干部分形成。例如,如果一个前提条件的模式是 %.c, 那么对枝干 foo的替换给出了前提条件名 foo.c。 写一个不包含%的前提条件模式是可以的,此时这个前提条件名称对所有目的都相同。

后文待续

原文地址:https://www.cnblogs.com/gaojian/p/2703319.html