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
.