Ignore:
Timestamp:
Apr 18, 2009, 2:05:47 PM (16 years ago)
Author:
bird
Message:

quickref: Added recipes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/kBuild/doc/QuickReference-kmk.html

    r2243 r2340  
    328328sinclude file
    329329</pre>
    330 <p>Include another dependency file <a class="footnote-reference" href="#id83" id="id1" name="id1">[1]</a>:</p>
     330<p>Include another dependency file <a class="footnote-reference" href="#id84" id="id1" name="id1">[1]</a>:</p>
    331331<pre class="literal-block">
    332332includedep file
     
    358358unexport variable
    359359</pre>
    360 <p>Define a variable in the local context instead of the global one <a class="footnote-reference" href="#id83" id="id2" name="id2">[1]</a>:</p>
     360<p>Define a variable in the local context instead of the global one <a class="footnote-reference" href="#id84" id="id2" name="id2">[1]</a>:</p>
    361361<pre class="literal-block">
    362362local variable = value
     
    509509<tt class="docutils literal"><span class="pre">KBUILD_KMK_REVISION</span></tt></td>
    510510<td>The kBuild version string and the break down
    511 into individual components. <a class="footnote-reference" href="#id83" id="id3" name="id3">[1]</a></td>
    512 </tr>
    513 <tr><td><tt class="docutils literal"><span class="pre">KBUILD_HOST</span></tt> <a class="footnote-reference" href="#id83" id="id4" name="id4">[1]</a></td>
     511into individual components. <a class="footnote-reference" href="#id84" id="id3" name="id3">[1]</a></td>
     512</tr>
     513<tr><td><tt class="docutils literal"><span class="pre">KBUILD_HOST</span></tt> <a class="footnote-reference" href="#id84" id="id4" name="id4">[1]</a></td>
    514514<td>The host operating system.</td>
    515515</tr>
    516 <tr><td><tt class="docutils literal"><span class="pre">KBUILD_HOST_ARCH</span></tt> <a class="footnote-reference" href="#id83" id="id5" name="id5">[1]</a></td>
     516<tr><td><tt class="docutils literal"><span class="pre">KBUILD_HOST_ARCH</span></tt> <a class="footnote-reference" href="#id84" id="id5" name="id5">[1]</a></td>
    517517<td>The host architecture.</td>
    518518</tr>
    519 <tr><td><tt class="docutils literal"><span class="pre">KBUILD_HOST_CPU</span></tt> <a class="footnote-reference" href="#id83" id="id6" name="id6">[1]</a></td>
     519<tr><td><tt class="docutils literal"><span class="pre">KBUILD_HOST_CPU</span></tt> <a class="footnote-reference" href="#id84" id="id6" name="id6">[1]</a></td>
    520520<td>The host CPU <tt class="docutils literal"><span class="pre">kmk</span></tt> is built for, set to
    521521<tt class="docutils literal"><span class="pre">blend</span></tt> if not any particular CPU.</td>
    522522</tr>
    523 <tr><td><tt class="docutils literal"><span class="pre">KBUILD_PATH</span></tt> <a class="footnote-reference" href="#id83" id="id7" name="id7">[1]</a></td>
     523<tr><td><tt class="docutils literal"><span class="pre">KBUILD_PATH</span></tt> <a class="footnote-reference" href="#id84" id="id7" name="id7">[1]</a></td>
    524524<td>Where the kBuild scripts are.</td>
    525525</tr>
    526 <tr><td><tt class="docutils literal"><span class="pre">KBUILD_BIN_PATH</span></tt> <a class="footnote-reference" href="#id83" id="id8" name="id8">[1]</a></td>
     526<tr><td><tt class="docutils literal"><span class="pre">KBUILD_BIN_PATH</span></tt> <a class="footnote-reference" href="#id84" id="id8" name="id8">[1]</a></td>
    527527<td>Where the host specific kBuild binaries are.</td>
    528528</tr>
    529 <tr><td><tt class="docutils literal"><span class="pre">KMK</span></tt> <a class="footnote-reference" href="#id83" id="id9" name="id9">[1]</a>,
     529<tr><td><tt class="docutils literal"><span class="pre">KMK</span></tt> <a class="footnote-reference" href="#id84" id="id9" name="id9">[1]</a>,
    530530<tt class="docutils literal"><span class="pre">MAKE</span></tt></td>
    531531<td>The name with which <tt class="docutils literal"><span class="pre">kmk</span></tt> was invoked. Using
    532532this variable in recipes has special meaning.</td>
    533533</tr>
    534 <tr><td><tt class="docutils literal"><span class="pre">KMK_BUILTIN</span></tt> <a class="footnote-reference" href="#id83" id="id10" name="id10">[1]</a></td>
     534<tr><td><tt class="docutils literal"><span class="pre">KMK_BUILTIN</span></tt> <a class="footnote-reference" href="#id84" id="id10" name="id10">[1]</a></td>
    535535<td>List of built-in commands.</td>
    536536</tr>
    537 <tr><td><tt class="docutils literal"><span class="pre">KMK_FEATURES</span></tt> <a class="footnote-reference" href="#id83" id="id11" name="id11">[1]</a></td>
     537<tr><td><tt class="docutils literal"><span class="pre">KMK_FEATURES</span></tt> <a class="footnote-reference" href="#id84" id="id11" name="id11">[1]</a></td>
    538538<td>List of <tt class="docutils literal"><span class="pre">kmk</span></tt> specific features.</td>
    539539</tr>
    540 <tr><td><tt class="docutils literal"><span class="pre">KMK_FLAGS</span></tt> <a class="footnote-reference" href="#id83" id="id12" name="id12">[1]</a></td>
     540<tr><td><tt class="docutils literal"><span class="pre">KMK_FLAGS</span></tt> <a class="footnote-reference" href="#id84" id="id12" name="id12">[1]</a></td>
    541541<td><p class="first">The flags given to <tt class="docutils literal"><span class="pre">kmk</span></tt>. You can set this in
    542542the environment or a makefile to set flags.</p>
     
    548548</td>
    549549</tr>
    550 <tr><td><tt class="docutils literal"><span class="pre">KMK_LEVEL</span></tt> <a class="footnote-reference" href="#id83" id="id13" name="id13">[1]</a></td>
     550<tr><td><tt class="docutils literal"><span class="pre">KMK_LEVEL</span></tt> <a class="footnote-reference" href="#id84" id="id13" name="id13">[1]</a></td>
    551551<td>The number of levels of recursion (sub-makes).</td>
    552552</tr>
    553 <tr><td><tt class="docutils literal"><span class="pre">KMK_VERSION</span></tt> <a class="footnote-reference" href="#id83" id="id14" name="id14">[1]</a></td>
     553<tr><td><tt class="docutils literal"><span class="pre">KMK_VERSION</span></tt> <a class="footnote-reference" href="#id84" id="id14" name="id14">[1]</a></td>
    554554<td>The GNU <tt class="docutils literal"><span class="pre">make</span></tt> version number.</td>
    555555</tr>
     
    587587</tbody>
    588588</table>
    589 <p>The following variables reflects <tt class="docutils literal"><span class="pre">kmk</span></tt> options. Do not set these. <a class="footnote-reference" href="#id83" id="id15" name="id15">[1]</a></p>
     589<p>The following variables reflects <tt class="docutils literal"><span class="pre">kmk</span></tt> options. Do not set these. <a class="footnote-reference" href="#id84" id="id15" name="id15">[1]</a></p>
    590590<table border="1" class="docutils">
    591591<colgroup>
     
    669669<td>If mentioned without any prerequisites,
    670670<tt class="docutils literal"><span class="pre">kmk</span></tt> will run serially as if -j1 was
    671 given. If it has prerequisites <tt class="docutils literal"><span class="pre">kmk</span></tt> <a class="footnote-reference" href="#id83" id="id16" name="id16">[1]</a>
     671given. If it has prerequisites <tt class="docutils literal"><span class="pre">kmk</span></tt> <a class="footnote-reference" href="#id84" id="id16" name="id16">[1]</a>
    672672will only do this for the targets among
    673673them.</td>
     
    695695</tr>
    696696<tr><td><tt class="docutils literal"><span class="pre">.SECONDTARGETEXPANSION</span></tt>
    697 <a class="footnote-reference" href="#id83" id="id17" name="id17">[1]</a></td>
     697<a class="footnote-reference" href="#id84" id="id17" name="id17">[1]</a></td>
    698698<td>If mentioned, all targets after it will be
    699699expanded a second time after all makefiles
     
    716716<div class="section">
    717717<h1><a id="commands" name="commands">Commands</a></h1>
    718 <p>Builtin commands <a class="footnote-reference" href="#id83" id="id18" name="id18">[1]</a> all start with <tt class="docutils literal"><span class="pre">kmk_builtin_</span></tt>, so in order to save
     718<p>Builtin commands <a class="footnote-reference" href="#id84" id="id18" name="id18">[1]</a> all start with <tt class="docutils literal"><span class="pre">kmk_builtin_</span></tt>, so in order to save
    719719space this prefix has been omitted in the table below. All commands comes in an
    720720external edition that can be used by/in the shell, these are prefixed <tt class="docutils literal"><span class="pre">kmk_</span></tt>.</p>
     
    827827<div class="section">
    828828<h1><a id="kmk-expression" name="kmk-expression">kmk-expression</a></h1>
    829 <p><tt class="docutils literal"><span class="pre">kmk</span></tt>-expressions <a class="footnote-reference" href="#id83" id="id19" name="id19">[1]</a> are related to the C/C++ preprocessor in some ways as
     829<p><tt class="docutils literal"><span class="pre">kmk</span></tt>-expressions <a class="footnote-reference" href="#id84" id="id19" name="id19">[1]</a> are related to the C/C++ preprocessor in some ways as
    830830well as <tt class="docutils literal"><span class="pre">nmake</span></tt> and BSD <tt class="docutils literal"><span class="pre">make</span></tt>. There are however some peculiarities
    831831because of the way GNU <tt class="docutils literal"><span class="pre">make</span></tt> choose to represent booleans in its function
     
    981981</pre>
    982982<p>Sort the words in <tt class="docutils literal"><span class="pre">list</span></tt> lexicographically in reserve order, removing
    983 duplicates <a class="footnote-reference" href="#id83" id="id20" name="id20">[1]</a>:</p>
     983duplicates <a class="footnote-reference" href="#id84" id="id20" name="id20">[1]</a>:</p>
    984984<pre class="literal-block">
    985985$(rsort list)
     
    10091009$(join list1,list2)
    10101010</pre>
    1011 <p>Fold <tt class="docutils literal"><span class="pre">text</span></tt> to upper case <a class="footnote-reference" href="#id83" id="id21" name="id21">[1]</a>:</p>
     1011<p>Fold <tt class="docutils literal"><span class="pre">text</span></tt> to upper case <a class="footnote-reference" href="#id84" id="id21" name="id21">[1]</a>:</p>
    10121012<pre class="literal-block">
    10131013$(toupper text)
    10141014</pre>
    1015 <p>Fold <tt class="docutils literal"><span class="pre">text</span></tt> to lower case <a class="footnote-reference" href="#id83" id="id22" name="id22">[1]</a>:</p>
     1015<p>Fold <tt class="docutils literal"><span class="pre">text</span></tt> to lower case <a class="footnote-reference" href="#id84" id="id22" name="id22">[1]</a>:</p>
    10161016<pre class="literal-block">
    10171017$(tolower text)
    10181018</pre>
    1019 <p>String formatting a la the unix <tt class="docutils literal"><span class="pre">printf</span></tt> command <a class="footnote-reference" href="#id83" id="id23" name="id23">[1]</a>:</p>
     1019<p>String formatting a la the unix <tt class="docutils literal"><span class="pre">printf</span></tt> command <a class="footnote-reference" href="#id84" id="id23" name="id23">[1]</a>:</p>
    10201020<pre class="literal-block">
    10211021$(printf fmt, arg...)
    10221022</pre>
    1023 <p>Return the length of a string or a (unexpanded) variable <a class="footnote-reference" href="#id83" id="id24" name="id24">[1]</a>:</p>
     1023<p>Return the length of a string or a (unexpanded) variable <a class="footnote-reference" href="#id84" id="id24" name="id24">[1]</a>:</p>
    10241024<pre class="literal-block">
    10251025$(length string)
     
    10281028<p>Find the position of <tt class="docutils literal"><span class="pre">needle</span></tt> in <tt class="docutils literal"><span class="pre">haystack</span></tt>, returns 0 if not found.
    10291029Negative <tt class="docutils literal"><span class="pre">start</span></tt> indices are relative to the end of <tt class="docutils literal"><span class="pre">haystack</span></tt>, while
    1030 positive ones are one based <a class="footnote-reference" href="#id83" id="id25" name="id25">[1]</a>:</p>
     1030positive ones are one based <a class="footnote-reference" href="#id84" id="id25" name="id25">[1]</a>:</p>
    10311031<pre class="literal-block">
    10321032$(pos needle, haystack[, start])
     
    10351035<p>Returns the specified substring. The <tt class="docutils literal"><span class="pre">start</span></tt> works like with <tt class="docutils literal"><span class="pre">$(pos</span> <span class="pre">)</span></tt>.
    10361036If the substring is partially outside the <tt class="docutils literal"><span class="pre">string</span></tt> the result will be
    1037 padded with <tt class="docutils literal"><span class="pre">pad</span></tt> if present <a class="footnote-reference" href="#id83" id="id26" name="id26">[1]</a>:</p>
     1037padded with <tt class="docutils literal"><span class="pre">pad</span></tt> if present <a class="footnote-reference" href="#id84" id="id26" name="id26">[1]</a>:</p>
    10381038<pre class="literal-block">
    10391039$(substr string, start[, length[, pad]])
    10401040</pre>
    10411041<p>Insert <tt class="docutils literal"><span class="pre">in</span></tt> into <tt class="docutils literal"><span class="pre">str</span></tt> at the specified position. <tt class="docutils literal"><span class="pre">n</span></tt> works like with
    1042 <tt class="docutils literal"><span class="pre">$(pos</span> <span class="pre">)</span></tt>, except that <tt class="docutils literal"><span class="pre">0</span></tt> is the end of the string <a class="footnote-reference" href="#id83" id="id27" name="id27">[1]</a>:</p>
     1042<tt class="docutils literal"><span class="pre">$(pos</span> <span class="pre">)</span></tt>, except that <tt class="docutils literal"><span class="pre">0</span></tt> is the end of the string <a class="footnote-reference" href="#id84" id="id27" name="id27">[1]</a>:</p>
    10431043<pre class="literal-block">
    10441044$(insert in, str[, n[, length[, pad]]])
     
    10461046<p>Translate <tt class="docutils literal"><span class="pre">string</span></tt> exchanging characters in <tt class="docutils literal"><span class="pre">from-set</span></tt> with <tt class="docutils literal"><span class="pre">to-set</span></tt>,
    10471047optionally completing <tt class="docutils literal"><span class="pre">to-set</span></tt> with <tt class="docutils literal"><span class="pre">pad-char</span></tt> if specified. If no
    1048 <tt class="docutils literal"><span class="pre">pad-char</span></tt> characters absent in <tt class="docutils literal"><span class="pre">to-set</span></tt> will be deleted <a class="footnote-reference" href="#id83" id="id28" name="id28">[1]</a>:</p>
     1048<tt class="docutils literal"><span class="pre">pad-char</span></tt> characters absent in <tt class="docutils literal"><span class="pre">to-set</span></tt> will be deleted <a class="footnote-reference" href="#id84" id="id28" name="id28">[1]</a>:</p>
    10491049<pre class="literal-block">
    10501050$(translate string, from-set[, to-set[, pad-char]])
     
    10711071</pre>
    10721072<p>Extract the root specification of each file name (a bit complicated on
    1073 Windows &amp; OS/2) <a class="footnote-reference" href="#id83" id="id29" name="id29">[1]</a>:</p>
     1073Windows &amp; OS/2) <a class="footnote-reference" href="#id84" id="id29" name="id29">[1]</a>:</p>
    10741074<pre class="literal-block">
    10751075$(root names...)
     
    10991099</pre>
    11001100<p>Same as <tt class="docutils literal"><span class="pre">$(abspath</span> <span class="pre">)</span></tt> except that the current directory can be
    1101 specified as <tt class="docutils literal"><span class="pre">curdir</span></tt> <a class="footnote-reference" href="#id83" id="id30" name="id30">[1]</a>:</p>
     1101specified as <tt class="docutils literal"><span class="pre">curdir</span></tt> <a class="footnote-reference" href="#id84" id="id30" name="id30">[1]</a>:</p>
    11021102<pre class="literal-block">
    11031103$(abspathex names...[, curdir])
     
    11061106<p>Arithmetic Functions:</p>
    11071107<blockquote>
    1108 <p>Returns the sum of the arguments <a class="footnote-reference" href="#id83" id="id31" name="id31">[1]</a>:</p>
     1108<p>Returns the sum of the arguments <a class="footnote-reference" href="#id84" id="id31" name="id31">[1]</a>:</p>
    11091109<pre class="literal-block">
    11101110$(int-add addend1, addend2[, addendN])
    11111111</pre>
    11121112<p>Returns the difference between the first argument and the sum of the
    1113 rest <a class="footnote-reference" href="#id83" id="id32" name="id32">[1]</a>:</p>
     1113rest <a class="footnote-reference" href="#id84" id="id32" name="id32">[1]</a>:</p>
    11141114<pre class="literal-block">
    11151115$(int-sub minuend, subtrahend[, subtrahendN])
    11161116</pre>
    1117 <p>Returns the product of the arguments <a class="footnote-reference" href="#id83" id="id33" name="id33">[1]</a>:</p>
     1117<p>Returns the product of the arguments <a class="footnote-reference" href="#id84" id="id33" name="id33">[1]</a>:</p>
    11181118<pre class="literal-block">
    11191119$(int-mul factor1, factor2[, factorN])
    11201120</pre>
    1121 <p>Returns the quotient of first argument and the rest <a class="footnote-reference" href="#id83" id="id34" name="id34">[1]</a>:</p>
     1121<p>Returns the quotient of first argument and the rest <a class="footnote-reference" href="#id84" id="id34" name="id34">[1]</a>:</p>
    11221122<pre class="literal-block">
    11231123$(int-div dividend, divisor[, divisorN])
    11241124</pre>
    1125 <p>Returns the modulus of the two arguments <a class="footnote-reference" href="#id83" id="id35" name="id35">[1]</a>:</p>
     1125<p>Returns the modulus of the two arguments <a class="footnote-reference" href="#id84" id="id35" name="id35">[1]</a>:</p>
    11261126<pre class="literal-block">
    11271127$(int-mod dividend, divisor)
    11281128</pre>
    1129 <p>Returns the bitwise two-complement of argument <a class="footnote-reference" href="#id83" id="id36" name="id36">[1]</a>:</p>
     1129<p>Returns the bitwise two-complement of argument <a class="footnote-reference" href="#id84" id="id36" name="id36">[1]</a>:</p>
    11301130<pre class="literal-block">
    11311131$(int-not val)
    11321132</pre>
    1133 <p>Returns the result of a bitwise AND of the arguments <a class="footnote-reference" href="#id83" id="id37" name="id37">[1]</a>:</p>
     1133<p>Returns the result of a bitwise AND of the arguments <a class="footnote-reference" href="#id84" id="id37" name="id37">[1]</a>:</p>
    11341134<pre class="literal-block">
    11351135$(int-and val1, val2[, valN])
    11361136</pre>
    1137 <p>Returns the result of a bitwise OR of the arguments <a class="footnote-reference" href="#id83" id="id38" name="id38">[1]</a>:</p>
     1137<p>Returns the result of a bitwise OR of the arguments <a class="footnote-reference" href="#id84" id="id38" name="id38">[1]</a>:</p>
    11381138<pre class="literal-block">
    11391139$(int-or val1, val2[, valN])
    11401140</pre>
    1141 <p>Returns the result of a bitwise XOR of the arguments <a class="footnote-reference" href="#id83" id="id39" name="id39">[1]</a>:</p>
     1141<p>Returns the result of a bitwise XOR of the arguments <a class="footnote-reference" href="#id84" id="id39" name="id39">[1]</a>:</p>
    11421142<pre class="literal-block">
    11431143$(int-xor val1, val2[, valN])
    11441144</pre>
    11451145<p>Returns the <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean (true = non-empty, false = empty) result
    1146 of <tt class="docutils literal"><span class="pre">val1</span> <span class="pre">==</span> <span class="pre">val2</span></tt> <a class="footnote-reference" href="#id83" id="id40" name="id40">[1]</a>:</p>
     1146of <tt class="docutils literal"><span class="pre">val1</span> <span class="pre">==</span> <span class="pre">val2</span></tt> <a class="footnote-reference" href="#id84" id="id40" name="id40">[1]</a>:</p>
    11471147<pre class="literal-block">
    11481148$(int-eq val1, val2)
    11491149</pre>
    1150 <p>Returns the <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean result of <tt class="docutils literal"><span class="pre">val1</span> <span class="pre">!=</span> <span class="pre">val2</span></tt> <a class="footnote-reference" href="#id83" id="id41" name="id41">[1]</a>:</p>
     1150<p>Returns the <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean result of <tt class="docutils literal"><span class="pre">val1</span> <span class="pre">!=</span> <span class="pre">val2</span></tt> <a class="footnote-reference" href="#id84" id="id41" name="id41">[1]</a>:</p>
    11511151<pre class="literal-block">
    11521152$(int-ne val1, val2)
    11531153</pre>
    1154 <p>Returns the <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean result of <tt class="docutils literal"><span class="pre">val1</span> <span class="pre">&gt;</span> <span class="pre">val2</span></tt> <a class="footnote-reference" href="#id83" id="id42" name="id42">[1]</a>:</p>
     1154<p>Returns the <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean result of <tt class="docutils literal"><span class="pre">val1</span> <span class="pre">&gt;</span> <span class="pre">val2</span></tt> <a class="footnote-reference" href="#id84" id="id42" name="id42">[1]</a>:</p>
    11551155<pre class="literal-block">
    11561156$(int-gt val1, val2)
    11571157</pre>
    1158 <p>Returns the <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean result of <tt class="docutils literal"><span class="pre">val1</span> <span class="pre">&gt;=</span> <span class="pre">val2</span></tt> <a class="footnote-reference" href="#id83" id="id43" name="id43">[1]</a>:</p>
     1158<p>Returns the <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean result of <tt class="docutils literal"><span class="pre">val1</span> <span class="pre">&gt;=</span> <span class="pre">val2</span></tt> <a class="footnote-reference" href="#id84" id="id43" name="id43">[1]</a>:</p>
    11591159<pre class="literal-block">
    11601160$(int-ge val1, val2)
    11611161</pre>
    1162 <p>Returns the <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean result of <tt class="docutils literal"><span class="pre">val1</span> <span class="pre">&lt;</span> <span class="pre">val2</span></tt> <a class="footnote-reference" href="#id83" id="id44" name="id44">[1]</a>:</p>
     1162<p>Returns the <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean result of <tt class="docutils literal"><span class="pre">val1</span> <span class="pre">&lt;</span> <span class="pre">val2</span></tt> <a class="footnote-reference" href="#id84" id="id44" name="id44">[1]</a>:</p>
    11631163<pre class="literal-block">
    11641164$(int-lt val1, val2)
    11651165</pre>
    1166 <p>Returns the <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean result of <tt class="docutils literal"><span class="pre">val1</span> <span class="pre">&lt;=</span> <span class="pre">val2</span></tt> <a class="footnote-reference" href="#id83" id="id45" name="id45">[1]</a>:</p>
     1166<p>Returns the <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean result of <tt class="docutils literal"><span class="pre">val1</span> <span class="pre">&lt;=</span> <span class="pre">val2</span></tt> <a class="footnote-reference" href="#id84" id="id45" name="id45">[1]</a>:</p>
    11671167<pre class="literal-block">
    11681168$(int-le val1, val2)
     
    11881188</pre>
    11891189<p>Test if the two strings are identical, returning <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean (true =
    1190 non-empty, false = empty) <a class="footnote-reference" href="#id84" id="id46" name="id46">[2]</a>:</p>
     1190non-empty, false = empty) <a class="footnote-reference" href="#id85" id="id46" name="id46">[2]</a>:</p>
    11911191<pre class="literal-block">
    11921192$(eq str1, str2)
    11931193</pre>
    1194 <p>Invert a <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean value <a class="footnote-reference" href="#id84" id="id47" name="id47">[2]</a>:</p>
     1194<p>Invert a <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean value <a class="footnote-reference" href="#id85" id="id47" name="id47">[2]</a>:</p>
    11951195<pre class="literal-block">
    11961196$(not val)
    11971197</pre>
    1198 <p>Test if <tt class="docutils literal"><span class="pre">variable</span></tt> is defined, returning a <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean value <a class="footnote-reference" href="#id83" id="id48" name="id48">[1]</a>:</p>
     1198<p>Test if <tt class="docutils literal"><span class="pre">variable</span></tt> is defined, returning a <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean value <a class="footnote-reference" href="#id84" id="id48" name="id48">[1]</a>:</p>
    11991199<pre class="literal-block">
    12001200$(defined variable)
    12011201</pre>
    12021202<p>Test if <tt class="docutils literal"><span class="pre">set-a</span></tt> and <tt class="docutils literal"><span class="pre">set-b</span></tt> intersects, returning a <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean
    1203 value <a class="footnote-reference" href="#id83" id="id49" name="id49">[1]</a>:</p>
     1203value <a class="footnote-reference" href="#id84" id="id49" name="id49">[1]</a>:</p>
    12041204<pre class="literal-block">
    12051205$(intersects set-a, set-b)
    12061206</pre>
    1207 <p>Same as <tt class="docutils literal"><span class="pre">$(if</span> <span class="pre">)</span></tt> execpt that the condition is a <tt class="docutils literal"><span class="pre">kmk</span></tt>-expression <a class="footnote-reference" href="#id83" id="id50" name="id50">[1]</a>:</p>
     1207<p>Same as <tt class="docutils literal"><span class="pre">$(if</span> <span class="pre">)</span></tt> execpt that the condition is a <tt class="docutils literal"><span class="pre">kmk</span></tt>-expression <a class="footnote-reference" href="#id84" id="id50" name="id50">[1]</a>:</p>
    12081208<pre class="literal-block">
    12091209$(if-expr kmk-expression,true-part[,false-part])
     
    12111211<p>Select the first true condition (<tt class="docutils literal"><span class="pre">kmk</span></tt>-expression) and expand the
    12121212following body. Special condition strings <tt class="docutils literal"><span class="pre">default</span></tt> and
    1213 <tt class="docutils literal"><span class="pre">otherwise</span></tt> <a class="footnote-reference" href="#id83" id="id51" name="id51">[1]</a>:</p>
     1213<tt class="docutils literal"><span class="pre">otherwise</span></tt> <a class="footnote-reference" href="#id84" id="id51" name="id51">[1]</a>:</p>
    12141214<pre class="literal-block">
    12151215$(select when1-cond, when1-body[, whenN-cond, whenN-body])
    12161216</pre>
    12171217<p>Evalutate the <tt class="docutils literal"><span class="pre">kmk-expression</span></tt> returning what it evalues as. This is
    1218 the preferred way of doing arithmentic now <a class="footnote-reference" href="#id83" id="id52" name="id52">[1]</a>:</p>
     1218the preferred way of doing arithmentic now <a class="footnote-reference" href="#id84" id="id52" name="id52">[1]</a>:</p>
    12191219<pre class="literal-block">
    12201220$(expr kmk-expression)
     
    12231223<p>Stack Fuctions:</p>
    12241224<blockquote>
    1225 <p>Push <tt class="docutils literal"><span class="pre">item</span></tt> onto the <tt class="docutils literal"><span class="pre">stack-var</span></tt>, returning the empty string <a class="footnote-reference" href="#id83" id="id53" name="id53">[1]</a>:</p>
     1225<p>Push <tt class="docutils literal"><span class="pre">item</span></tt> onto the <tt class="docutils literal"><span class="pre">stack-var</span></tt>, returning the empty string <a class="footnote-reference" href="#id84" id="id53" name="id53">[1]</a>:</p>
    12261226<pre class="literal-block">
    12271227$(stack-push stack-var, item)
    12281228</pre>
    1229 <p>Pop the top item off the <tt class="docutils literal"><span class="pre">stack-var</span></tt> <a class="footnote-reference" href="#id83" id="id54" name="id54">[1]</a>:</p>
     1229<p>Pop the top item off the <tt class="docutils literal"><span class="pre">stack-var</span></tt> <a class="footnote-reference" href="#id84" id="id54" name="id54">[1]</a>:</p>
    12301230<pre class="literal-block">
    12311231$(stack-pop stack-var)
    12321232</pre>
    1233 <p>Pop the top item off the <tt class="docutils literal"><span class="pre">stack-var</span></tt>, returning the empty string <a class="footnote-reference" href="#id83" id="id55" name="id55">[1]</a>:</p>
     1233<p>Pop the top item off the <tt class="docutils literal"><span class="pre">stack-var</span></tt>, returning the empty string <a class="footnote-reference" href="#id84" id="id55" name="id55">[1]</a>:</p>
    12341234<pre class="literal-block">
    12351235$(stack-popv stack-var)
    12361236</pre>
    1237 <p>Get the top item of the <tt class="docutils literal"><span class="pre">stack-var</span></tt>, returning the empty string <a class="footnote-reference" href="#id83" id="id56" name="id56">[1]</a>:</p>
     1237<p>Get the top item of the <tt class="docutils literal"><span class="pre">stack-var</span></tt>, returning the empty string <a class="footnote-reference" href="#id84" id="id56" name="id56">[1]</a>:</p>
    12381238<pre class="literal-block">
    12391239$(stack-top stack-var)
     
    12551255first check whether the <tt class="docutils literal"><span class="pre">condition</span></tt> (<tt class="docutils literal"><span class="pre">kmk</span></tt>-expression) is true,
    12561256then expand <tt class="docutils literal"><span class="pre">body</span></tt> concatenating the result to the previous iterations
    1257 (spaced), and finally evaluate <tt class="docutils literal"><span class="pre">next</span></tt> <a class="footnote-reference" href="#id83" id="id57" name="id57">[1]</a>:</p>
     1257(spaced), and finally evaluate <tt class="docutils literal"><span class="pre">next</span></tt> <a class="footnote-reference" href="#id84" id="id57" name="id57">[1]</a>:</p>
    12581258<pre class="literal-block">
    12591259$(for init,conditions,next,body)
     
    12611261<p>C-style while-loop. Each iteration will check whether the <tt class="docutils literal"><span class="pre">condition</span></tt>
    12621262(<tt class="docutils literal"><span class="pre">kmk</span></tt>-expression) is true, then expand <tt class="docutils literal"><span class="pre">body</span></tt> concatenating the
    1263 result to the previous iterations <a class="footnote-reference" href="#id83" id="id58" name="id58">[1]</a>:</p>
     1263result to the previous iterations <a class="footnote-reference" href="#id84" id="id58" name="id58">[1]</a>:</p>
    12641264<pre class="literal-block">
    12651265$(while conditions,body)
     
    12761276</pre>
    12771277<p>Same as <tt class="docutils literal"><span class="pre">$(eval</span> <span class="pre">text)</span></tt> except that the <tt class="docutils literal"><span class="pre">text</span></tt> is expanded in its
    1278 own variable context <a class="footnote-reference" href="#id83" id="id59" name="id59">[1]</a>:</p>
     1278own variable context <a class="footnote-reference" href="#id84" id="id59" name="id59">[1]</a>:</p>
    12791279<pre class="literal-block">
    12801280$(evalctx text)
    12811281</pre>
    1282 <p>Same as <tt class="docutils literal"><span class="pre">$(eval</span> <span class="pre">$(value</span> <span class="pre">var))</span></tt> <a class="footnote-reference" href="#id83" id="id60" name="id60">[1]</a>:</p>
     1282<p>Same as <tt class="docutils literal"><span class="pre">$(eval</span> <span class="pre">$(value</span> <span class="pre">var))</span></tt> <a class="footnote-reference" href="#id84" id="id60" name="id60">[1]</a>:</p>
    12831283<pre class="literal-block">
    12841284$(evalval var)
    12851285</pre>
    1286 <p>Same as <tt class="docutils literal"><span class="pre">$(evalctx</span> <span class="pre">$(value</span> <span class="pre">var))</span></tt> <a class="footnote-reference" href="#id83" id="id61" name="id61">[1]</a>:</p>
     1286<p>Same as <tt class="docutils literal"><span class="pre">$(evalctx</span> <span class="pre">$(value</span> <span class="pre">var))</span></tt> <a class="footnote-reference" href="#id84" id="id61" name="id61">[1]</a>:</p>
    12871287<pre class="literal-block">
    12881288$(evalvalctx var)
    12891289</pre>
    1290 <p>A combination of <tt class="docutils literal"><span class="pre">$(eval</span> <span class="pre">)</span></tt>, <tt class="docutils literal"><span class="pre">$(call</span> <span class="pre">)</span></tt> and <tt class="docutils literal"><span class="pre">$(value</span> <span class="pre">)</span></tt> <a class="footnote-reference" href="#id83" id="id62" name="id62">[1]</a>:</p>
     1290<p>A combination of <tt class="docutils literal"><span class="pre">$(eval</span> <span class="pre">)</span></tt>, <tt class="docutils literal"><span class="pre">$(call</span> <span class="pre">)</span></tt> and <tt class="docutils literal"><span class="pre">$(value</span> <span class="pre">)</span></tt> <a class="footnote-reference" href="#id84" id="id62" name="id62">[1]</a>:</p>
    12911291<pre class="literal-block">
    12921292$(evalcall var)
    12931293</pre>
    1294 <p>A combination of <tt class="docutils literal"><span class="pre">$(eval</span> <span class="pre">)</span></tt> and <tt class="docutils literal"><span class="pre">$(call</span> <span class="pre">)</span></tt> <a class="footnote-reference" href="#id83" id="id63" name="id63">[1]</a>:</p>
     1294<p>A combination of <tt class="docutils literal"><span class="pre">$(eval</span> <span class="pre">)</span></tt> and <tt class="docutils literal"><span class="pre">$(call</span> <span class="pre">)</span></tt> <a class="footnote-reference" href="#id84" id="id63" name="id63">[1]</a>:</p>
    12951295<pre class="literal-block">
    12961296$(evalcall var)
    12971297</pre>
    12981298<p>Remove comments and blank lines from the variable <tt class="docutils literal"><span class="pre">var</span></tt>. Expands to
    1299 the empty string <a class="footnote-reference" href="#id83" id="id64" name="id64">[1]</a>:</p>
     1299the empty string <a class="footnote-reference" href="#id84" id="id64" name="id64">[1]</a>:</p>
    13001300<pre class="literal-block">
    13011301$(eval-opt-var var)
    13021302</pre>
    13031303<p>Returns accessing <tt class="docutils literal"><span class="pre">$&lt;</span></tt> of <tt class="docutils literal"><span class="pre">target</span></tt>, either retriving the whole thing
    1304 or the file at <tt class="docutils literal"><span class="pre">pos</span></tt> (one-origin) <a class="footnote-reference" href="#id83" id="id65" name="id65">[1]</a>:</p>
     1304or the file at <tt class="docutils literal"><span class="pre">pos</span></tt> (one-origin) <a class="footnote-reference" href="#id84" id="id65" name="id65">[1]</a>:</p>
    13051305<pre class="literal-block">
    13061306$(deps target[, pos])
    13071307</pre>
    13081308<p>Returns accessing <tt class="docutils literal"><span class="pre">$+</span></tt> (order + duplicates) of <tt class="docutils literal"><span class="pre">target</span></tt>, either
    1309 retriving the whole thing or the file at <tt class="docutils literal"><span class="pre">pos</span></tt> (one-origin) <a class="footnote-reference" href="#id83" id="id66" name="id66">[1]</a>:</p>
     1309retriving the whole thing or the file at <tt class="docutils literal"><span class="pre">pos</span></tt> (one-origin) <a class="footnote-reference" href="#id84" id="id66" name="id66">[1]</a>:</p>
    13101310<pre class="literal-block">
    13111311$(deps-all target[, pos])
    13121312</pre>
    13131313<p>Returns accessing <tt class="docutils literal"><span class="pre">$?</span></tt>  of <tt class="docutils literal"><span class="pre">target</span></tt>, either retriving the whole
    1314 thing or the file at <tt class="docutils literal"><span class="pre">pos</span></tt> (one-origin) <a class="footnote-reference" href="#id83" id="id67" name="id67">[1]</a>:</p>
     1314thing or the file at <tt class="docutils literal"><span class="pre">pos</span></tt> (one-origin) <a class="footnote-reference" href="#id84" id="id67" name="id67">[1]</a>:</p>
    13151315<pre class="literal-block">
    13161316$(deps-newer target[, pos])
    13171317</pre>
    13181318<p>Returns accessing <tt class="docutils literal"><span class="pre">$|</span></tt> (order only)  of <tt class="docutils literal"><span class="pre">target</span></tt>, either retriving the
    1319 whole thing or the file at <tt class="docutils literal"><span class="pre">pos</span></tt> (one-origin) <a class="footnote-reference" href="#id83" id="id68" name="id68">[1]</a>:</p>
     1319whole thing or the file at <tt class="docutils literal"><span class="pre">pos</span></tt> (one-origin) <a class="footnote-reference" href="#id84" id="id68" name="id68">[1]</a>:</p>
    13201320<pre class="literal-block">
    13211321$(deps-oo target[, pos])
     
    13251325<blockquote>
    13261326<p>Create one or more command lines avoiding the max argument
    1327 length restriction of the host OS <a class="footnote-reference" href="#id83" id="id69" name="id69">[1]</a>:</p>
     1327length restriction of the host OS <a class="footnote-reference" href="#id84" id="id69" name="id69">[1]</a>:</p>
    13281328<pre class="literal-block">
    13291329$(xargs ar cas mylib.a,$(objects))
     
    13321332<p>Returns the commands for the specified target separated by new-line, space,
    13331333or a user defined string. Note that this might not produce the 100% correct
    1334 result if any of the prerequisite automatic variables are used <a class="footnote-reference" href="#id83" id="id70" name="id70">[1]</a>:</p>
     1334result if any of the prerequisite automatic variables are used <a class="footnote-reference" href="#id84" id="id70" name="id70">[1]</a>:</p>
    13351335<pre class="literal-block">
    13361336$(commands target)
     
    13411341argument if not. This differs from <tt class="docutils literal"><span class="pre">$(comp-vars</span> <span class="pre">v1,v2,ne)</span></tt> in that
    13421342line by line is stripped of leading spaces, command prefixes and
    1343 trailing spaces before comparing <a class="footnote-reference" href="#id83" id="id71" name="id71">[1]</a>:</p>
     1343trailing spaces before comparing <a class="footnote-reference" href="#id84" id="id71" name="id71">[1]</a>:</p>
    13441344<pre class="literal-block">
    13451345$(comp-cmds cmds-var1, cmds-var2, ne)
     
    13481348<p>Compares the values of the two variables returning the empty string if
    13491349equal and the 3rd argument if not. Leading and trailing spaces is
    1350 ignored <a class="footnote-reference" href="#id83" id="id72" name="id72">[1]</a>:</p>
     1350ignored <a class="footnote-reference" href="#id84" id="id72" name="id72">[1]</a>:</p>
    13511351<pre class="literal-block">
    13521352$(comp-var var1, var2, ne)
     
    13841384<p>Returns the current local time and date formatted in the <tt class="docutils literal"><span class="pre">strftime</span></tt>
    13851385style specifier <tt class="docutils literal"><span class="pre">fmt</span></tt>. <tt class="docutils literal"><span class="pre">fmt</span></tt> defaults to <tt class="docutils literal"><span class="pre">%Y-%m-%dT%H:%M:%S</span></tt> when
    1386 not specified <a class="footnote-reference" href="#id83" id="id73" name="id73">[1]</a>:</p>
     1386not specified <a class="footnote-reference" href="#id84" id="id73" name="id73">[1]</a>:</p>
    13871387<pre class="literal-block">
    13881388$(date fmt)
     
    13901390<p>Returns the current UTC time and date formatted in the <tt class="docutils literal"><span class="pre">strftime</span></tt>
    13911391style specifier <tt class="docutils literal"><span class="pre">fmt</span></tt>. <tt class="docutils literal"><span class="pre">fmt</span></tt> defaults to <tt class="docutils literal"><span class="pre">%Y-%m-%dT%H:%M:%SZ</span></tt> when
    1392 not specified <a class="footnote-reference" href="#id83" id="id74" name="id74">[1]</a>:</p>
     1392not specified <a class="footnote-reference" href="#id84" id="id74" name="id74">[1]</a>:</p>
    13931393<pre class="literal-block">
    13941394$(date-utc fmt)
     
    13961396<p>Reformats the <tt class="docutils literal"><span class="pre">in</span></tt> time and date using <tt class="docutils literal"><span class="pre">fmt</span></tt>. The <tt class="docutils literal"><span class="pre">in-fmt</span></tt> defaults
    13971397to <tt class="docutils literal"><span class="pre">fmt</span></tt> if not specified. While <tt class="docutils literal"><span class="pre">fmt</span></tt> defaults to
    1398 <tt class="docutils literal"><span class="pre">%Y-%m-%dT%H:%M:%SZ</span></tt> if not specified <a class="footnote-reference" href="#id83" id="id75" name="id75">[1]</a>:</p>
     1398<tt class="docutils literal"><span class="pre">%Y-%m-%dT%H:%M:%SZ</span></tt> if not specified <a class="footnote-reference" href="#id84" id="id75" name="id75">[1]</a>:</p>
    13991399<pre class="literal-block">
    14001400$(date-utc fmt,time,in-fmt)
    14011401</pre>
    1402 <p>Returns the current nanosecond timestamp (monotonic when possible) <a class="footnote-reference" href="#id83" id="id76" name="id76">[1]</a>:</p>
     1402<p>Returns the current nanosecond timestamp (monotonic when possible) <a class="footnote-reference" href="#id84" id="id76" name="id76">[1]</a>:</p>
    14031403<pre class="literal-block">
    14041404$(nanots )
    14051405</pre>
    14061406<p>Returns the size of the specified file, or -1 if the size could not
    1407 be obtained. This can be used to check if a file exist or not <a class="footnote-reference" href="#id83" id="id77" name="id77">[1]</a>:</p>
     1407be obtained. This can be used to check if a file exist or not <a class="footnote-reference" href="#id84" id="id77" name="id77">[1]</a>:</p>
    14081408<pre class="literal-block">
    14091409$(file-size file)
    14101410</pre>
    1411 <p>Searches the <tt class="docutils literal"><span class="pre">PATH</span></tt> <tt class="docutils literal"><span class="pre">kmk</span></tt> variable for the specified <tt class="docutils literal"><span class="pre">files</span></tt> <a class="footnote-reference" href="#id83" id="id78" name="id78">[1]</a>:</p>
     1411<p>Searches the <tt class="docutils literal"><span class="pre">PATH</span></tt> <tt class="docutils literal"><span class="pre">kmk</span></tt> variable for the specified <tt class="docutils literal"><span class="pre">files</span></tt> <a class="footnote-reference" href="#id84" id="id78" name="id78">[1]</a>:</p>
    14121412<pre class="literal-block">
    14131413$(which files...)
    14141414</pre>
    1415 <p>OS/2: Returns the specified LIBPATH variable value <a class="footnote-reference" href="#id83" id="id79" name="id79">[1]</a>:</p>
     1415<p>OS/2: Returns the specified LIBPATH variable value <a class="footnote-reference" href="#id84" id="id79" name="id79">[1]</a>:</p>
    14161416<pre class="literal-block">
    14171417$(libpath var)
    14181418</pre>
    14191419<p>OS/2: Sets the specified LIBPATH variable value, returning the empty
    1420 string <a class="footnote-reference" href="#id83" id="id80" name="id80">[1]</a>:</p>
     1420string <a class="footnote-reference" href="#id84" id="id80" name="id80">[1]</a>:</p>
    14211421<pre class="literal-block">
    14221422$(libpath var,value)
     
    14261426<blockquote>
    14271427<p>Returns various make statistics, if no item is specified a default
    1428 selection is returned <a class="footnote-reference" href="#id83" id="id81" name="id81">[1]</a>:</p>
     1428selection is returned <a class="footnote-reference" href="#id84" id="id81" name="id81">[1]</a>:</p>
    14291429<pre class="literal-block">
    14301430$(make-stats item[,itemN])
    14311431</pre>
    14321432<p>Raise a debug breakpoint. Used for debugging <tt class="docutils literal"><span class="pre">kmk</span></tt> makefile
    1433 parsing <a class="footnote-reference" href="#id83" id="id82" name="id82">[1]</a>:</p>
     1433parsing <a class="footnote-reference" href="#id84" id="id82" name="id82">[1]</a>:</p>
    14341434<pre class="literal-block">
    14351435$(breakpoint )
    14361436</pre>
     1437</blockquote>
     1438</div>
     1439<div class="section">
     1440<h1><a id="recipes" name="recipes">Recipes</a></h1>
     1441<blockquote>
     1442<p>A typical recipe takes one of the two following forms:</p>
     1443<pre class="literal-block">
     1444targets : normal-prerequisites | order-only-prerequisites
     1445        command
     1446        ...
     1447
     1448targets : normal-prerequisites | order-only-prerequisites ; command
     1449        command
     1450        ...
     1451</pre>
     1452<p>Specifying more than one file in the <tt class="docutils literal"><span class="pre">targets</span></tt> lists is the same as
     1453repeating the recipe for each of the files.</p>
     1454<p>Use <tt class="docutils literal"><span class="pre">+</span></tt> and <tt class="docutils literal"><span class="pre">+|</span></tt> in the list of <tt class="docutils literal"><span class="pre">targets</span></tt> to tell <tt class="docutils literal"><span class="pre">kmk</span></tt> that the
     1455recipe has more than one output. <a class="footnote-reference" href="#id84" id="id83" name="id83">[1]</a> The files after a <tt class="docutils literal"><span class="pre">+</span></tt> will
     1456always be remade, while the files after a <tt class="docutils literal"><span class="pre">+|</span></tt> don't have to be remade.
     1457The latter is frequently employed to update files which prerequisites
     1458change wihtout the output files necessarily changing. See also
     1459<tt class="docutils literal"><span class="pre">kmk_cp</span> <span class="pre">--changed</span></tt>.</p>
     1460</blockquote>
     1461<p>Double colon recipes</p>
     1462<blockquote>
     1463Double colon recipes are written with <tt class="docutils literal"><span class="pre">::</span></tt> instead of <tt class="docutils literal"><span class="pre">:</span></tt> and are
     1464handled differently from ordinary recipes if the target appears in more
     1465than one recipe. First, all the recipes must be of the double colon type.
     1466Second, the recipes are executed individually and may be omitted depending
     1467on the state of their prerequisites. Double colon recipes without any
     1468prerequisites will always be executed.</blockquote>
     1469<p>Pattern rules</p>
     1470<blockquote>
     1471<p>A couple of examples:</p>
     1472<pre class="literal-block">
     1473%.o : %.c
     1474        gcc -o $&#64; $&lt;
     1475%.tab.c %.tab.h : %.y
     1476        bison -d $&lt;
     1477</pre>
     1478<p>The latter has two outputs.</p>
    14371479</blockquote>
    14381480<hr class="docutils" />
    1439 <table class="docutils footnote" frame="void" id="id83" rules="none">
    1440 <colgroup><col class="label" /><col /></colgroup>
    1441 <tbody valign="top">
    1442 <tr><td class="label"><a name="id83">[1]</a></td><td><em>(<a class="fn-backref" href="#id1">1</a>, <a class="fn-backref" href="#id2">2</a>, <a class="fn-backref" href="#id3">3</a>, <a class="fn-backref" href="#id4">4</a>, <a class="fn-backref" href="#id5">5</a>, <a class="fn-backref" href="#id6">6</a>, <a class="fn-backref" href="#id7">7</a>, <a class="fn-backref" href="#id8">8</a>, <a class="fn-backref" href="#id9">9</a>, <a class="fn-backref" href="#id10">10</a>, <a class="fn-backref" href="#id11">11</a>, <a class="fn-backref" href="#id12">12</a>, <a class="fn-backref" href="#id13">13</a>, <a class="fn-backref" href="#id14">14</a>, <a class="fn-backref" href="#id15">15</a>, <a class="fn-backref" href="#id16">16</a>, <a class="fn-backref" href="#id17">17</a>, <a class="fn-backref" href="#id18">18</a>, <a class="fn-backref" href="#id19">19</a>, <a class="fn-backref" href="#id20">20</a>, <a class="fn-backref" href="#id21">21</a>, <a class="fn-backref" href="#id22">22</a>, <a class="fn-backref" href="#id23">23</a>, <a class="fn-backref" href="#id24">24</a>, <a class="fn-backref" href="#id25">25</a>, <a class="fn-backref" href="#id26">26</a>, <a class="fn-backref" href="#id27">27</a>, <a class="fn-backref" href="#id28">28</a>, <a class="fn-backref" href="#id29">29</a>, <a class="fn-backref" href="#id30">30</a>, <a class="fn-backref" href="#id31">31</a>, <a class="fn-backref" href="#id32">32</a>, <a class="fn-backref" href="#id33">33</a>, <a class="fn-backref" href="#id34">34</a>, <a class="fn-backref" href="#id35">35</a>, <a class="fn-backref" href="#id36">36</a>, <a class="fn-backref" href="#id37">37</a>, <a class="fn-backref" href="#id38">38</a>, <a class="fn-backref" href="#id39">39</a>, <a class="fn-backref" href="#id40">40</a>, <a class="fn-backref" href="#id41">41</a>, <a class="fn-backref" href="#id42">42</a>, <a class="fn-backref" href="#id43">43</a>, <a class="fn-backref" href="#id44">44</a>, <a class="fn-backref" href="#id45">45</a>, <a class="fn-backref" href="#id48">46</a>, <a class="fn-backref" href="#id49">47</a>, <a class="fn-backref" href="#id50">48</a>, <a class="fn-backref" href="#id51">49</a>, <a class="fn-backref" href="#id52">50</a>, <a class="fn-backref" href="#id53">51</a>, <a class="fn-backref" href="#id54">52</a>, <a class="fn-backref" href="#id55">53</a>, <a class="fn-backref" href="#id56">54</a>, <a class="fn-backref" href="#id57">55</a>, <a class="fn-backref" href="#id58">56</a>, <a class="fn-backref" href="#id59">57</a>, <a class="fn-backref" href="#id60">58</a>, <a class="fn-backref" href="#id61">59</a>, <a class="fn-backref" href="#id62">60</a>, <a class="fn-backref" href="#id63">61</a>, <a class="fn-backref" href="#id64">62</a>, <a class="fn-backref" href="#id65">63</a>, <a class="fn-backref" href="#id66">64</a>, <a class="fn-backref" href="#id67">65</a>, <a class="fn-backref" href="#id68">66</a>, <a class="fn-backref" href="#id69">67</a>, <a class="fn-backref" href="#id70">68</a>, <a class="fn-backref" href="#id71">69</a>, <a class="fn-backref" href="#id72">70</a>, <a class="fn-backref" href="#id73">71</a>, <a class="fn-backref" href="#id74">72</a>, <a class="fn-backref" href="#id75">73</a>, <a class="fn-backref" href="#id76">74</a>, <a class="fn-backref" href="#id77">75</a>, <a class="fn-backref" href="#id78">76</a>, <a class="fn-backref" href="#id79">77</a>, <a class="fn-backref" href="#id80">78</a>, <a class="fn-backref" href="#id81">79</a>, <a class="fn-backref" href="#id82">80</a>)</em> <tt class="docutils literal"><span class="pre">kmk</span></tt> only feature.</td></tr>
    1443 </tbody>
    1444 </table>
    14451481<table class="docutils footnote" frame="void" id="id84" rules="none">
    14461482<colgroup><col class="label" /><col /></colgroup>
    14471483<tbody valign="top">
    1448 <tr><td class="label"><a name="id84">[2]</a></td><td><em>(<a class="fn-backref" href="#id46">1</a>, <a class="fn-backref" href="#id47">2</a>)</em> Experimental GNU <tt class="docutils literal"><span class="pre">make</span></tt> feature that is not enabled by default.</td></tr>
     1484<tr><td class="label"><a name="id84">[1]</a></td><td><em>(<a class="fn-backref" href="#id1">1</a>, <a class="fn-backref" href="#id2">2</a>, <a class="fn-backref" href="#id3">3</a>, <a class="fn-backref" href="#id4">4</a>, <a class="fn-backref" href="#id5">5</a>, <a class="fn-backref" href="#id6">6</a>, <a class="fn-backref" href="#id7">7</a>, <a class="fn-backref" href="#id8">8</a>, <a class="fn-backref" href="#id9">9</a>, <a class="fn-backref" href="#id10">10</a>, <a class="fn-backref" href="#id11">11</a>, <a class="fn-backref" href="#id12">12</a>, <a class="fn-backref" href="#id13">13</a>, <a class="fn-backref" href="#id14">14</a>, <a class="fn-backref" href="#id15">15</a>, <a class="fn-backref" href="#id16">16</a>, <a class="fn-backref" href="#id17">17</a>, <a class="fn-backref" href="#id18">18</a>, <a class="fn-backref" href="#id19">19</a>, <a class="fn-backref" href="#id20">20</a>, <a class="fn-backref" href="#id21">21</a>, <a class="fn-backref" href="#id22">22</a>, <a class="fn-backref" href="#id23">23</a>, <a class="fn-backref" href="#id24">24</a>, <a class="fn-backref" href="#id25">25</a>, <a class="fn-backref" href="#id26">26</a>, <a class="fn-backref" href="#id27">27</a>, <a class="fn-backref" href="#id28">28</a>, <a class="fn-backref" href="#id29">29</a>, <a class="fn-backref" href="#id30">30</a>, <a class="fn-backref" href="#id31">31</a>, <a class="fn-backref" href="#id32">32</a>, <a class="fn-backref" href="#id33">33</a>, <a class="fn-backref" href="#id34">34</a>, <a class="fn-backref" href="#id35">35</a>, <a class="fn-backref" href="#id36">36</a>, <a class="fn-backref" href="#id37">37</a>, <a class="fn-backref" href="#id38">38</a>, <a class="fn-backref" href="#id39">39</a>, <a class="fn-backref" href="#id40">40</a>, <a class="fn-backref" href="#id41">41</a>, <a class="fn-backref" href="#id42">42</a>, <a class="fn-backref" href="#id43">43</a>, <a class="fn-backref" href="#id44">44</a>, <a class="fn-backref" href="#id45">45</a>, <a class="fn-backref" href="#id48">46</a>, <a class="fn-backref" href="#id49">47</a>, <a class="fn-backref" href="#id50">48</a>, <a class="fn-backref" href="#id51">49</a>, <a class="fn-backref" href="#id52">50</a>, <a class="fn-backref" href="#id53">51</a>, <a class="fn-backref" href="#id54">52</a>, <a class="fn-backref" href="#id55">53</a>, <a class="fn-backref" href="#id56">54</a>, <a class="fn-backref" href="#id57">55</a>, <a class="fn-backref" href="#id58">56</a>, <a class="fn-backref" href="#id59">57</a>, <a class="fn-backref" href="#id60">58</a>, <a class="fn-backref" href="#id61">59</a>, <a class="fn-backref" href="#id62">60</a>, <a class="fn-backref" href="#id63">61</a>, <a class="fn-backref" href="#id64">62</a>, <a class="fn-backref" href="#id65">63</a>, <a class="fn-backref" href="#id66">64</a>, <a class="fn-backref" href="#id67">65</a>, <a class="fn-backref" href="#id68">66</a>, <a class="fn-backref" href="#id69">67</a>, <a class="fn-backref" href="#id70">68</a>, <a class="fn-backref" href="#id71">69</a>, <a class="fn-backref" href="#id72">70</a>, <a class="fn-backref" href="#id73">71</a>, <a class="fn-backref" href="#id74">72</a>, <a class="fn-backref" href="#id75">73</a>, <a class="fn-backref" href="#id76">74</a>, <a class="fn-backref" href="#id77">75</a>, <a class="fn-backref" href="#id78">76</a>, <a class="fn-backref" href="#id79">77</a>, <a class="fn-backref" href="#id80">78</a>, <a class="fn-backref" href="#id81">79</a>, <a class="fn-backref" href="#id82">80</a>, <a class="fn-backref" href="#id83">81</a>)</em> <tt class="docutils literal"><span class="pre">kmk</span></tt> only feature.</td></tr>
     1485</tbody>
     1486</table>
     1487<table class="docutils footnote" frame="void" id="id85" rules="none">
     1488<colgroup><col class="label" /><col /></colgroup>
     1489<tbody valign="top">
     1490<tr><td class="label"><a name="id85">[2]</a></td><td><em>(<a class="fn-backref" href="#id46">1</a>, <a class="fn-backref" href="#id47">2</a>)</em> Experimental GNU <tt class="docutils literal"><span class="pre">make</span></tt> feature that is not enabled by default.</td></tr>
    14491491</tbody>
    14501492</table>
Note: See TracChangeset for help on using the changeset viewer.