Node:Wildcard Examples, Next:, 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.