Previous: Target-specific, Up: Using Variables


6.11 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, the variable is defined for any target that matches the pattern specified. If a target matches more than one pattern, all the matching pattern-specific variables are interpreted in the order in which they were defined in the makefile, and collected together into one set. 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.