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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

make<br />

Special Target Directives<br />

Special target directives are called targets because they appear in the target<br />

position of rules; however, they are really keywords, not targets. The rules they<br />

appear in are really directives that control the behavior of make.<br />

The special target must be the only target in a special rule; you cannot list other<br />

normal or special targets.<br />

Some special targets are affected by some attributes. Any special target can be<br />

given any attribute, but often the combination is meaningless and the attribute has<br />

no effect.<br />

.BRACEEXPAND<br />

This target may have no prerequisites and no recipes associated with it. If<br />

set, the target enables the outdated brace expansion feature used in older<br />

versions of make. Older makes would expand a construct of the following<br />

form, beginning with each token in the token list:<br />

string1{token_list}string2<br />

Older makes would append string1 to the front of each token in the list, and<br />

string2 to the end of each token in the list. A more productive means for<br />

achieving the same result with modern versions of make relies on macro<br />

expansion with prefix and suffix modifiers:<br />

$ (TOKEN_BASE:^"prefix:+"suffix")<br />

The double quotes are required. Brace expansion is an outdated feature<br />

available in past versions of make.<br />

.CYCLECHECK<br />

This special target cannot have any prerequisites or recipes associated with<br />

it. If set, it determines how make treaters circular dependencies (see<br />

“Circular Dependencies” on page 398).<br />

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

You can specify one of five attributes with this target. If you specify more<br />

than one attribute, an error message results. The five attributes are:<br />

.SILENT<br />

make remains silent about any within-rule and between-rule circular<br />

dependencies, removes the offending dependency from the list of<br />

prerequisites, and continues.<br />

.WARNTARG<br />

make issues warnings for named targets with circular<br />

dependencies. If the name of the dependency is the same as the<br />

named target, it is removed from the list of prerequisites and make<br />

continues. This is the default behavior if .CYCLECHECK is not<br />

specified or is specified with no attributes.<br />

.WARNALL<br />

make issues warnings for all within-rule circular dependencies<br />

regardless of whether the target is being built or not and for all<br />

between-rule circular dependencies for the named targets. The<br />

offending dependency is removed from the list of prerequisites and<br />

make continues.<br />

.FATALTARG<br />

make treats all circular dependencies for named targets as fatal<br />

errors. It issues an error message and exits.

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

Saved successfully!

Ooh no, something went wrong!