02.05.2013 Views

The Source Integrity Professional Edition User Guide - MKS

The Source Integrity Professional Edition User Guide - MKS

The Source Integrity Professional Edition User Guide - MKS

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

Using the <strong>MKS</strong> Make Utility<br />

Runtime Macros<br />

<strong>MKS</strong> Make expands runtime macros when it carries out the recipes<br />

that contain them. Except for dynamic prerequisite macros, runtime<br />

macros do not produce useful values if placed outside recipes. <strong>The</strong><br />

following table describes the expansions for the runtime macros.<br />

Macro Description<br />

$@ <strong>The</strong> full name of the target, when building a normal target.<br />

When building a library, it expands to the name of the archive<br />

library (for example, if you specify the target as<br />

mylib(member), $@ expands to mylib).<br />

$% Also the full name of the target, when building a normal target.<br />

When building a library, it expands to the name of the archive<br />

member. With a target of mylib(member), $% expands to<br />

member.<br />

$* <strong>The</strong> target name, with no suffix. This macro produces the same<br />

value as $(%:db).<br />

$> <strong>The</strong> name of the library, if the current target is a library member.<br />

With a target of mylib(member), $> produces the string<br />

mylib.<br />

$^ <strong>The</strong> list of prerequisites given in the current rule (that is, the rule<br />

associated with the recipe that <strong>MKS</strong> Make is executing).<br />

$& <strong>The</strong> list of all prerequisites in all rules that apply to the current<br />

target. In :: rules, $& produces the same strings as $^.<br />

$? <strong>The</strong> list of all prerequisites in all rules associated with the<br />

current target, which are newer than that target or which need<br />

to be created. However, in double colon rules (rules with the ::<br />

rule operator) this macro produces the same string as the $<<br />

macro.<br />

$< Similar to $?, except it produces only those prerequisites that<br />

prompt the execution of the current rule (not all changed<br />

prerequisites associated with a single target). In normal rules,<br />

the expansions contains the list of all changed prerequisites in<br />

the current rule. In inference rules, however, it always contains<br />

the single prerequisite of the executing rule. In rules using the<br />

:! operator, this macro produces the current changed<br />

prerequisite. For more information on rule operators, see the<br />

man page for the make command.<br />

$$ Produces a single dollar sign ($).<br />

274 <strong>Source</strong> <strong>Integrity</strong> <strong>Professional</strong> <strong>Edition</strong>

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

Saved successfully!

Ooh no, something went wrong!