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 prerequisites 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 How to Use Variables, and Functions for Transforming Text.
• Pattern Intro | An introduction to pattern rules. | |
• Pattern Examples | Examples of pattern rules. | |
• Automatic Variables | How to use automatic variables in the recipe 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. |
Copyright © 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/make/manual/html_node/Pattern-Rules.html