Node:Wildcard Examples, Next:Wildcard Pitfall, Previous:Wildcards, Up:Wildcards

#### Wildcard Examples

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 Wildcard Function.