b4e
Wildcard Examples
Contents|Index|Previous|Next
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 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 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 The Function, wildcard.
0