make: Wildcard Examples

 
 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 SeeEmpty Target
 Files to Record Events Empty Targets.  (The automatic variable '$?' is
 used to print only those files that have changed; see SeeAutomatic
 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)
 
 SeeWildcard Function.