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

### 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 dependencies 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 section Empty Target Files to Record Events. (The automatic variable ``$?'` is used to print only those files that have changed; see section 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, dependency or command, wildcard expansion will take place at that time. To set `objects` to the expansion, instead use:

    objects := $(wildcard *.o)

See section The Function `wildcard`.

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