(make.info.gz) Multiple Targets

Info Catalog (make.info.gz) Special Targets (make.info.gz) Rules (make.info.gz) Multiple Rules
 
 4.10 Multiple Targets in a Rule
 ===============================
 
 A rule with multiple targets is equivalent to writing many rules, each
 with one target, and all identical aside from that.  The same recipe
 applies to all the targets, but its effect may vary because you can
 substitute the actual target name into the recipe using `$@'.  The rule
 contributes the same prerequisites to all the targets also.
 
    This is useful in two cases.
 
    * You want just prerequisites, no recipe.  For example:
 
           kbd.o command.o files.o: command.h
 
      gives an additional prerequisite to each of the three object files
      mentioned.
 
    * Similar recipes work for all the targets.  The recipes do not need
      to be absolutely identical, since the automatic variable `$@' can
      be used to substitute the particular target to be remade into the
      commands ( Automatic Variables).  For example:
 
           bigoutput littleoutput : text.g
                   generate text.g -$(subst output,,$@) > $@
      
      is equivalent to
 
           bigoutput : text.g
                   generate text.g -big > bigoutput
           littleoutput : text.g
                   generate text.g -little > littleoutput
 
      Here we assume the hypothetical program `generate' makes two types
      of output, one if given `-big' and one if given `-little'.  
      Functions for String Substitution and Analysis Text Functions,
      for an explanation of the `subst' function.
 
    Suppose you would like to vary the prerequisites according to the
 target, much as the variable `$@' allows you to vary the recipe.  You
 cannot do this with multiple targets in an ordinary rule, but you can
 do it with a "static pattern rule".   Static Pattern Rules Static
 Pattern.
 
Info Catalog (make.info.gz) Special Targets (make.info.gz) Rules (make.info.gz) Multiple Rules
automatically generated by info2html