| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] | 
Wildcards can be used in the commands 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,
prerequisite or command, wildcard expansion will take place at that time.
To set objects to the expansion, instead use:
| objects := $(wildcard *.o) | 
See section 4.4.3 The Function wildcard.