Go to the first, previous, next, last section, table of contents.

## 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 nonempty 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 that expansion using ``%'` in pattern rules occurs after any variable or function expansions, which take place when the makefile is read. See section How to Use Variables, and section Functions for Transforming Text.

- Pattern Intro: An introduction to pattern rules.
- Pattern Examples: Examples of pattern rules.
- Automatic: How to use automatic variables in the commands of implicit rules.
- Pattern Match: How patterns match.
- Match-Anything Rules: Precautions you should take prior to defining rules that can match any target file whatever.
- Canceling Rules: How to override or cancel built-in rules.

Go to the first, previous, next, last section, table of contents.