Contents|Index|Previous|Next

Defining and Redefining Pattern Rules

You define an implicit rule by writing a pattern rule. A pattern rule looks like an ordinary rule, except that its target contains the character ‘%’ (exactly one of them). The target is considered a pattern for matching file names; the ‘%’ can match any non-empty substring, while other characters match only themselves. The dependencies likewise use ‘%’ to show how their names relate to the target name. Thus, a pattern rule ‘%.o : %.c’ says how to make any file ‘stem.o’ from another file ‘stem.c’.

Note:
Expansion using ‘%’ in pattern rules occurs after any variable or function expansions, which take place when the makefile is read. See How to Use Variables and Functions for Transforming Text.

See the following documentation for more discussion.

Introduction to Pattern Rules

Pattern Rule Examples

Automatic Variables

How Patterns Match

Match-Anything Pattern Rules

Canceling Implicit Rules