manpagez: man pages & more
info make
Home | html | info | man

File: make.info,  Node: Wildcard Examples,  Next: Wildcard Pitfall,  Prev: Wildcards.php">Wildcards,  Up: Wildcards.php">Wildcards

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

*Note Wildcard Function::.

© manpagez.com 2000-2025
Individual documents may contain additional copyright information.