Node:Pattern-specific, Previous:Target-specific, Up:Using Variables

### Pattern-specific Variable Values

In addition to target-specific variable values (see Target-specific Variable Values), GNU `make` supports pattern-specific variable values. In this form, a variable is defined for any target that matches the pattern specified. Variables defined in this way are searched after any target-specific variables defined explicitly for that target, and before target-specific variables defined for the parent target.

Set a pattern-specific variable value like this:

         pattern ... : variable-assignment

or like this:

         pattern ... : override variable-assignment

where pattern is a %-pattern. As with target-specific variable values, multiple pattern values create a pattern-specific variable value for each pattern individually. The variable-assignment can be any valid form of assignment. Any command-line variable setting will take precedence, unless `override` is specified.

For example:

         %.o : CFLAGS = -O

will assign `CFLAGS` the value of `-O` for all targets matching the pattern `%.o`.