[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
4.4.1 Wildcard Examples
Wildcards can be used in the recipe of a rule, where they are expanded by the shell. For example, here is a rule to delete all the object files:
clean: rm -f *.o
Wildcards are also useful in the prerequisites of a rule. With the following rule in the makefile, ‘make print’ will print all the ‘.c’ files that have changed since the last time you printed them:
print: *.c lpr -p $? touch print
This rule uses ‘print’ as an empty target file; see Empty Target Files to Record Events. (The automatic variable ‘$?’ is used to print only those files that have changed; see Automatic Variables.)
Wildcard expansion does not happen when you define a variable. Thus, if you write this:
objects = *.o
then the value of the variable objects
is the actual string
‘*.o’. However, if you use the value of objects
in a
target or prerequisite, wildcard expansion will take place there. If
you use the value of objects
in a recipe, the shell may perform
wildcard expansion when the recipe runs. To set objects
to the
expansion, instead use:
objects := $(wildcard *.o)
See section The Function wildcard
.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on October 10, 2013 using texi2html 5.0.