16.12.2012 Views

z/OS V1R9.0 UNIX System Services Command ... - Christian Grothoff

z/OS V1R9.0 UNIX System Services Command ... - Christian Grothoff

z/OS V1R9.0 UNIX System Services Command ... - Christian Grothoff

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

make<br />

targets :– prereqs<br />

Clears the previous list of prerequisites before adding the new<br />

prerequisites.<br />

targets :: prereqs<br />

If no prerequisites are specified, the targets are always remade. Otherwise<br />

it is used for multiple rules applying to the same targets. Each rule can<br />

specify a different set of prerequisites with a different recipe for updating the<br />

target. Each rule is treated independently; the target is remade for each rule<br />

with recently changed prerequisites, using the corresponding recipe.<br />

targets :| prereqs<br />

Can only be used in metarules. It tells make to treat each metadependency<br />

as an independent rule. For example:<br />

%$0 :| archive/%.c rcs/%.c /srcarc/RCS/%period.c<br />

recipe...<br />

is equivalent to<br />

%$0 : archive/$.c<br />

recipe:<br />

%$0 : rcs/%.c<br />

recipe:<br />

%$0 : /srcarc/rcs/%.c<br />

recipe:<br />

Circular Dependencies<br />

There are two types of circular dependencies: within-rule and between-rule.<br />

Recipes<br />

A within-rule circular dependency occurs when the target’s name is included in the<br />

list of prerequisites for that target. For example,<br />

c.o : a.o b.o c.o<br />

is a within-rule circular dependency. make detects a within-rule circular dependency<br />

when it is parsing the makefile to build the dependency tree.<br />

A between-rule circular dependency occurs when you have two targets, each of<br />

which includes the other’s name in its prerequisite list. For example,<br />

a.o : b:o<br />

b:o : a.o<br />

is a between-rules circular dependency. make detects a between-rule circular<br />

dependency when it is processing the dependency tree built during the parse<br />

phase.<br />

Normally make only detects circular dependencies for those targets actually being<br />

built. When a circular dependency is encountered, make issues a warning<br />

message, removes the offending prerequisite from the list, and continues parsing<br />

the makefile. You can use the .CYCLECHECK special target to alter. make’s treatment<br />

of circular dependencies. See also “Special Target Directives” on page 404, which<br />

describes special targets.)<br />

You can use a target that has prerequisites but no recipes to add the given<br />

prerequisites to that target’s list of prerequisites.<br />

398 z/<strong>OS</strong> <strong>V1R9.0</strong> <strong>UNIX</strong> <strong>System</strong> <strong>Services</strong> <strong>Command</strong> Reference

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!