Index: /trunk/kBuild/doc/QuickReference-kmk.html
===================================================================
--- /trunk/kBuild/doc/QuickReference-kmk.html	(revision 2339)
+++ /trunk/kBuild/doc/QuickReference-kmk.html	(revision 2340)
@@ -328,5 +328,5 @@
 sinclude file
 </pre>
-<p>Include another dependency file <a class="footnote-reference" href="#id83" id="id1" name="id1">[1]</a>:</p>
+<p>Include another dependency file <a class="footnote-reference" href="#id84" id="id1" name="id1">[1]</a>:</p>
 <pre class="literal-block">
 includedep file
@@ -358,5 +358,5 @@
 unexport variable
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 local variable = value
@@ -509,34 +509,34 @@
 <tt class="docutils literal"><span class="pre">KBUILD_KMK_REVISION</span></tt></td>
 <td>The kBuild version string and the break down
-into individual components. <a class="footnote-reference" href="#id83" id="id3" name="id3">[1]</a></td>
-</tr>
-<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>
+into individual components. <a class="footnote-reference" href="#id84" id="id3" name="id3">[1]</a></td>
+</tr>
+<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>
 <td>The host operating system.</td>
 </tr>
-<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>
+<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>
 <td>The host architecture.</td>
 </tr>
-<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>
+<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>
 <td>The host CPU <tt class="docutils literal"><span class="pre">kmk</span></tt> is built for, set to
 <tt class="docutils literal"><span class="pre">blend</span></tt> if not any particular CPU.</td>
 </tr>
-<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>
+<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>
 <td>Where the kBuild scripts are.</td>
 </tr>
-<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>
+<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>
 <td>Where the host specific kBuild binaries are.</td>
 </tr>
-<tr><td><tt class="docutils literal"><span class="pre">KMK</span></tt> <a class="footnote-reference" href="#id83" id="id9" name="id9">[1]</a>,
+<tr><td><tt class="docutils literal"><span class="pre">KMK</span></tt> <a class="footnote-reference" href="#id84" id="id9" name="id9">[1]</a>,
 <tt class="docutils literal"><span class="pre">MAKE</span></tt></td>
 <td>The name with which <tt class="docutils literal"><span class="pre">kmk</span></tt> was invoked. Using
 this variable in recipes has special meaning.</td>
 </tr>
-<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>
+<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>
 <td>List of built-in commands.</td>
 </tr>
-<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>
+<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>
 <td>List of <tt class="docutils literal"><span class="pre">kmk</span></tt> specific features.</td>
 </tr>
-<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>
+<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>
 <td><p class="first">The flags given to <tt class="docutils literal"><span class="pre">kmk</span></tt>. You can set this in
 the environment or a makefile to set flags.</p>
@@ -548,8 +548,8 @@
 </td>
 </tr>
-<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>
+<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>
 <td>The number of levels of recursion (sub-makes).</td>
 </tr>
-<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>
+<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>
 <td>The GNU <tt class="docutils literal"><span class="pre">make</span></tt> version number.</td>
 </tr>
@@ -587,5 +587,5 @@
 </tbody>
 </table>
-<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>
+<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>
 <table border="1" class="docutils">
 <colgroup>
@@ -669,5 +669,5 @@
 <td>If mentioned without any prerequisites,
 <tt class="docutils literal"><span class="pre">kmk</span></tt> will run serially as if -j1 was
-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>
+given. 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>
 will only do this for the targets among
 them.</td>
@@ -695,5 +695,5 @@
 </tr>
 <tr><td><tt class="docutils literal"><span class="pre">.SECONDTARGETEXPANSION</span></tt>
-<a class="footnote-reference" href="#id83" id="id17" name="id17">[1]</a></td>
+<a class="footnote-reference" href="#id84" id="id17" name="id17">[1]</a></td>
 <td>If mentioned, all targets after it will be
 expanded a second time after all makefiles
@@ -716,5 +716,5 @@
 <div class="section">
 <h1><a id="commands" name="commands">Commands</a></h1>
-<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
+<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
 space this prefix has been omitted in the table below. All commands comes in an
 external edition that can be used by/in the shell, these are prefixed <tt class="docutils literal"><span class="pre">kmk_</span></tt>.</p>
@@ -827,5 +827,5 @@
 <div class="section">
 <h1><a id="kmk-expression" name="kmk-expression">kmk-expression</a></h1>
-<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
+<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
 well 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
 because of the way GNU <tt class="docutils literal"><span class="pre">make</span></tt> choose to represent booleans in its function
@@ -981,5 +981,5 @@
 </pre>
 <p>Sort the words in <tt class="docutils literal"><span class="pre">list</span></tt> lexicographically in reserve order, removing
-duplicates <a class="footnote-reference" href="#id83" id="id20" name="id20">[1]</a>:</p>
+duplicates <a class="footnote-reference" href="#id84" id="id20" name="id20">[1]</a>:</p>
 <pre class="literal-block">
 $(rsort list)
@@ -1009,17 +1009,17 @@
 $(join list1,list2)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(toupper text)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(tolower text)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(printf fmt, arg...)
 </pre>
-<p>Return the length of a string or a (unexpanded) variable <a class="footnote-reference" href="#id83" id="id24" name="id24">[1]</a>:</p>
+<p>Return the length of a string or a (unexpanded) variable <a class="footnote-reference" href="#id84" id="id24" name="id24">[1]</a>:</p>
 <pre class="literal-block">
 $(length string)
@@ -1028,5 +1028,5 @@
 <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.
 Negative <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
-positive ones are one based <a class="footnote-reference" href="#id83" id="id25" name="id25">[1]</a>:</p>
+positive ones are one based <a class="footnote-reference" href="#id84" id="id25" name="id25">[1]</a>:</p>
 <pre class="literal-block">
 $(pos needle, haystack[, start])
@@ -1035,10 +1035,10 @@
 <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>.
 If the substring is partially outside the <tt class="docutils literal"><span class="pre">string</span></tt> the result will be
-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>
+padded 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>
 <pre class="literal-block">
 $(substr string, start[, length[, pad]])
 </pre>
 <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
-<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>
+<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>
 <pre class="literal-block">
 $(insert in, str[, n[, length[, pad]]])
@@ -1046,5 +1046,5 @@
 <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>,
 optionally 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
-<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>
+<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>
 <pre class="literal-block">
 $(translate string, from-set[, to-set[, pad-char]])
@@ -1071,5 +1071,5 @@
 </pre>
 <p>Extract the root specification of each file name (a bit complicated on
-Windows &amp; OS/2) <a class="footnote-reference" href="#id83" id="id29" name="id29">[1]</a>:</p>
+Windows &amp; OS/2) <a class="footnote-reference" href="#id84" id="id29" name="id29">[1]</a>:</p>
 <pre class="literal-block">
 $(root names...)
@@ -1099,5 +1099,5 @@
 </pre>
 <p>Same as <tt class="docutils literal"><span class="pre">$(abspath</span> <span class="pre">)</span></tt> except that the current directory can be
-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>
+specified as <tt class="docutils literal"><span class="pre">curdir</span></tt> <a class="footnote-reference" href="#id84" id="id30" name="id30">[1]</a>:</p>
 <pre class="literal-block">
 $(abspathex names...[, curdir])
@@ -1106,63 +1106,63 @@
 <p>Arithmetic Functions:</p>
 <blockquote>
-<p>Returns the sum of the arguments <a class="footnote-reference" href="#id83" id="id31" name="id31">[1]</a>:</p>
+<p>Returns the sum of the arguments <a class="footnote-reference" href="#id84" id="id31" name="id31">[1]</a>:</p>
 <pre class="literal-block">
 $(int-add addend1, addend2[, addendN])
 </pre>
 <p>Returns the difference between the first argument and the sum of the
-rest <a class="footnote-reference" href="#id83" id="id32" name="id32">[1]</a>:</p>
+rest <a class="footnote-reference" href="#id84" id="id32" name="id32">[1]</a>:</p>
 <pre class="literal-block">
 $(int-sub minuend, subtrahend[, subtrahendN])
 </pre>
-<p>Returns the product of the arguments <a class="footnote-reference" href="#id83" id="id33" name="id33">[1]</a>:</p>
+<p>Returns the product of the arguments <a class="footnote-reference" href="#id84" id="id33" name="id33">[1]</a>:</p>
 <pre class="literal-block">
 $(int-mul factor1, factor2[, factorN])
 </pre>
-<p>Returns the quotient of first argument and the rest <a class="footnote-reference" href="#id83" id="id34" name="id34">[1]</a>:</p>
+<p>Returns the quotient of first argument and the rest <a class="footnote-reference" href="#id84" id="id34" name="id34">[1]</a>:</p>
 <pre class="literal-block">
 $(int-div dividend, divisor[, divisorN])
 </pre>
-<p>Returns the modulus of the two arguments <a class="footnote-reference" href="#id83" id="id35" name="id35">[1]</a>:</p>
+<p>Returns the modulus of the two arguments <a class="footnote-reference" href="#id84" id="id35" name="id35">[1]</a>:</p>
 <pre class="literal-block">
 $(int-mod dividend, divisor)
 </pre>
-<p>Returns the bitwise two-complement of argument <a class="footnote-reference" href="#id83" id="id36" name="id36">[1]</a>:</p>
+<p>Returns the bitwise two-complement of argument <a class="footnote-reference" href="#id84" id="id36" name="id36">[1]</a>:</p>
 <pre class="literal-block">
 $(int-not val)
 </pre>
-<p>Returns the result of a bitwise AND of the arguments <a class="footnote-reference" href="#id83" id="id37" name="id37">[1]</a>:</p>
+<p>Returns the result of a bitwise AND of the arguments <a class="footnote-reference" href="#id84" id="id37" name="id37">[1]</a>:</p>
 <pre class="literal-block">
 $(int-and val1, val2[, valN])
 </pre>
-<p>Returns the result of a bitwise OR of the arguments <a class="footnote-reference" href="#id83" id="id38" name="id38">[1]</a>:</p>
+<p>Returns the result of a bitwise OR of the arguments <a class="footnote-reference" href="#id84" id="id38" name="id38">[1]</a>:</p>
 <pre class="literal-block">
 $(int-or val1, val2[, valN])
 </pre>
-<p>Returns the result of a bitwise XOR of the arguments <a class="footnote-reference" href="#id83" id="id39" name="id39">[1]</a>:</p>
+<p>Returns the result of a bitwise XOR of the arguments <a class="footnote-reference" href="#id84" id="id39" name="id39">[1]</a>:</p>
 <pre class="literal-block">
 $(int-xor val1, val2[, valN])
 </pre>
 <p>Returns the <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean (true = non-empty, false = empty) 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="id40" name="id40">[1]</a>:</p>
+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="id40" name="id40">[1]</a>:</p>
 <pre class="literal-block">
 $(int-eq val1, val2)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(int-ne val1, val2)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(int-gt val1, val2)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(int-ge val1, val2)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(int-lt val1, val2)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(int-le val1, val2)
@@ -1188,22 +1188,22 @@
 </pre>
 <p>Test if the two strings are identical, returning <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean (true =
-non-empty, false = empty) <a class="footnote-reference" href="#id84" id="id46" name="id46">[2]</a>:</p>
+non-empty, false = empty) <a class="footnote-reference" href="#id85" id="id46" name="id46">[2]</a>:</p>
 <pre class="literal-block">
 $(eq str1, str2)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(not val)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(defined variable)
 </pre>
 <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
-value <a class="footnote-reference" href="#id83" id="id49" name="id49">[1]</a>:</p>
+value <a class="footnote-reference" href="#id84" id="id49" name="id49">[1]</a>:</p>
 <pre class="literal-block">
 $(intersects set-a, set-b)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(if-expr kmk-expression,true-part[,false-part])
@@ -1211,10 +1211,10 @@
 <p>Select the first true condition (<tt class="docutils literal"><span class="pre">kmk</span></tt>-expression) and expand the
 following body. Special condition strings <tt class="docutils literal"><span class="pre">default</span></tt> and
-<tt class="docutils literal"><span class="pre">otherwise</span></tt> <a class="footnote-reference" href="#id83" id="id51" name="id51">[1]</a>:</p>
+<tt class="docutils literal"><span class="pre">otherwise</span></tt> <a class="footnote-reference" href="#id84" id="id51" name="id51">[1]</a>:</p>
 <pre class="literal-block">
 $(select when1-cond, when1-body[, whenN-cond, whenN-body])
 </pre>
 <p>Evalutate the <tt class="docutils literal"><span class="pre">kmk-expression</span></tt> returning what it evalues as. This is
-the preferred way of doing arithmentic now <a class="footnote-reference" href="#id83" id="id52" name="id52">[1]</a>:</p>
+the preferred way of doing arithmentic now <a class="footnote-reference" href="#id84" id="id52" name="id52">[1]</a>:</p>
 <pre class="literal-block">
 $(expr kmk-expression)
@@ -1223,17 +1223,17 @@
 <p>Stack Fuctions:</p>
 <blockquote>
-<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>
+<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>
 <pre class="literal-block">
 $(stack-push stack-var, item)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(stack-pop stack-var)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(stack-popv stack-var)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(stack-top stack-var)
@@ -1255,5 +1255,5 @@
 first 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,
 then expand <tt class="docutils literal"><span class="pre">body</span></tt> concatenating the result to the previous iterations
-(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>
+(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>
 <pre class="literal-block">
 $(for init,conditions,next,body)
@@ -1261,5 +1261,5 @@
 <p>C-style while-loop. Each iteration will 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, then expand <tt class="docutils literal"><span class="pre">body</span></tt> concatenating the
-result to the previous iterations <a class="footnote-reference" href="#id83" id="id58" name="id58">[1]</a>:</p>
+result to the previous iterations <a class="footnote-reference" href="#id84" id="id58" name="id58">[1]</a>:</p>
 <pre class="literal-block">
 $(while conditions,body)
@@ -1276,46 +1276,46 @@
 </pre>
 <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
-own variable context <a class="footnote-reference" href="#id83" id="id59" name="id59">[1]</a>:</p>
+own variable context <a class="footnote-reference" href="#id84" id="id59" name="id59">[1]</a>:</p>
 <pre class="literal-block">
 $(evalctx text)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(evalval var)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(evalvalctx var)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(evalcall var)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(evalcall var)
 </pre>
 <p>Remove comments and blank lines from the variable <tt class="docutils literal"><span class="pre">var</span></tt>. Expands to
-the empty string <a class="footnote-reference" href="#id83" id="id64" name="id64">[1]</a>:</p>
+the empty string <a class="footnote-reference" href="#id84" id="id64" name="id64">[1]</a>:</p>
 <pre class="literal-block">
 $(eval-opt-var var)
 </pre>
 <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
-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>
+or 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>
 <pre class="literal-block">
 $(deps target[, pos])
 </pre>
 <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
-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>
+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="#id84" id="id66" name="id66">[1]</a>:</p>
 <pre class="literal-block">
 $(deps-all target[, pos])
 </pre>
 <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
-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>
+thing 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>
 <pre class="literal-block">
 $(deps-newer target[, pos])
 </pre>
 <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
-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>
+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="id68" name="id68">[1]</a>:</p>
 <pre class="literal-block">
 $(deps-oo target[, pos])
@@ -1325,5 +1325,5 @@
 <blockquote>
 <p>Create one or more command lines avoiding the max argument
-length restriction of the host OS <a class="footnote-reference" href="#id83" id="id69" name="id69">[1]</a>:</p>
+length restriction of the host OS <a class="footnote-reference" href="#id84" id="id69" name="id69">[1]</a>:</p>
 <pre class="literal-block">
 $(xargs ar cas mylib.a,$(objects))
@@ -1332,5 +1332,5 @@
 <p>Returns the commands for the specified target separated by new-line, space,
 or a user defined string. Note that this might not produce the 100% correct
-result if any of the prerequisite automatic variables are used <a class="footnote-reference" href="#id83" id="id70" name="id70">[1]</a>:</p>
+result if any of the prerequisite automatic variables are used <a class="footnote-reference" href="#id84" id="id70" name="id70">[1]</a>:</p>
 <pre class="literal-block">
 $(commands target)
@@ -1341,5 +1341,5 @@
 argument 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
 line by line is stripped of leading spaces, command prefixes and
-trailing spaces before comparing <a class="footnote-reference" href="#id83" id="id71" name="id71">[1]</a>:</p>
+trailing spaces before comparing <a class="footnote-reference" href="#id84" id="id71" name="id71">[1]</a>:</p>
 <pre class="literal-block">
 $(comp-cmds cmds-var1, cmds-var2, ne)
@@ -1348,5 +1348,5 @@
 <p>Compares the values of the two variables returning the empty string if
 equal and the 3rd argument if not. Leading and trailing spaces is
-ignored <a class="footnote-reference" href="#id83" id="id72" name="id72">[1]</a>:</p>
+ignored <a class="footnote-reference" href="#id84" id="id72" name="id72">[1]</a>:</p>
 <pre class="literal-block">
 $(comp-var var1, var2, ne)
@@ -1384,5 +1384,5 @@
 <p>Returns the current local time and date formatted in the <tt class="docutils literal"><span class="pre">strftime</span></tt>
 style 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
-not specified <a class="footnote-reference" href="#id83" id="id73" name="id73">[1]</a>:</p>
+not specified <a class="footnote-reference" href="#id84" id="id73" name="id73">[1]</a>:</p>
 <pre class="literal-block">
 $(date fmt)
@@ -1390,5 +1390,5 @@
 <p>Returns the current UTC time and date formatted in the <tt class="docutils literal"><span class="pre">strftime</span></tt>
 style 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
-not specified <a class="footnote-reference" href="#id83" id="id74" name="id74">[1]</a>:</p>
+not specified <a class="footnote-reference" href="#id84" id="id74" name="id74">[1]</a>:</p>
 <pre class="literal-block">
 $(date-utc fmt)
@@ -1396,27 +1396,27 @@
 <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
 to <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
-<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>
+<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>
 <pre class="literal-block">
 $(date-utc fmt,time,in-fmt)
 </pre>
-<p>Returns the current nanosecond timestamp (monotonic when possible) <a class="footnote-reference" href="#id83" id="id76" name="id76">[1]</a>:</p>
+<p>Returns the current nanosecond timestamp (monotonic when possible) <a class="footnote-reference" href="#id84" id="id76" name="id76">[1]</a>:</p>
 <pre class="literal-block">
 $(nanots )
 </pre>
 <p>Returns the size of the specified file, or -1 if the size could not
-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>
+be 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>
 <pre class="literal-block">
 $(file-size file)
 </pre>
-<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>
+<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>
 <pre class="literal-block">
 $(which files...)
 </pre>
-<p>OS/2: Returns the specified LIBPATH variable value <a class="footnote-reference" href="#id83" id="id79" name="id79">[1]</a>:</p>
+<p>OS/2: Returns the specified LIBPATH variable value <a class="footnote-reference" href="#id84" id="id79" name="id79">[1]</a>:</p>
 <pre class="literal-block">
 $(libpath var)
 </pre>
 <p>OS/2: Sets the specified LIBPATH variable value, returning the empty
-string <a class="footnote-reference" href="#id83" id="id80" name="id80">[1]</a>:</p>
+string <a class="footnote-reference" href="#id84" id="id80" name="id80">[1]</a>:</p>
 <pre class="literal-block">
 $(libpath var,value)
@@ -1426,25 +1426,67 @@
 <blockquote>
 <p>Returns various make statistics, if no item is specified a default
-selection is returned <a class="footnote-reference" href="#id83" id="id81" name="id81">[1]</a>:</p>
+selection is returned <a class="footnote-reference" href="#id84" id="id81" name="id81">[1]</a>:</p>
 <pre class="literal-block">
 $(make-stats item[,itemN])
 </pre>
 <p>Raise a debug breakpoint. Used for debugging <tt class="docutils literal"><span class="pre">kmk</span></tt> makefile
-parsing <a class="footnote-reference" href="#id83" id="id82" name="id82">[1]</a>:</p>
+parsing <a class="footnote-reference" href="#id84" id="id82" name="id82">[1]</a>:</p>
 <pre class="literal-block">
 $(breakpoint )
 </pre>
+</blockquote>
+</div>
+<div class="section">
+<h1><a id="recipes" name="recipes">Recipes</a></h1>
+<blockquote>
+<p>A typical recipe takes one of the two following forms:</p>
+<pre class="literal-block">
+targets : normal-prerequisites | order-only-prerequisites
+        command
+        ...
+
+targets : normal-prerequisites | order-only-prerequisites ; command
+        command
+        ...
+</pre>
+<p>Specifying more than one file in the <tt class="docutils literal"><span class="pre">targets</span></tt> lists is the same as
+repeating the recipe for each of the files.</p>
+<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
+recipe 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
+always be remade, while the files after a <tt class="docutils literal"><span class="pre">+|</span></tt> don't have to be remade.
+The latter is frequently employed to update files which prerequisites
+change wihtout the output files necessarily changing. See also
+<tt class="docutils literal"><span class="pre">kmk_cp</span> <span class="pre">--changed</span></tt>.</p>
+</blockquote>
+<p>Double colon recipes</p>
+<blockquote>
+Double 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
+handled differently from ordinary recipes if the target appears in more
+than one recipe. First, all the recipes must be of the double colon type.
+Second, the recipes are executed individually and may be omitted depending
+on the state of their prerequisites. Double colon recipes without any
+prerequisites will always be executed.</blockquote>
+<p>Pattern rules</p>
+<blockquote>
+<p>A couple of examples:</p>
+<pre class="literal-block">
+%.o : %.c
+        gcc -o $&#64; $&lt;
+%.tab.c %.tab.h : %.y
+        bison -d $&lt;
+</pre>
+<p>The latter has two outputs.</p>
 </blockquote>
 <hr class="docutils" />
-<table class="docutils footnote" frame="void" id="id83" rules="none">
-<colgroup><col class="label" /><col /></colgroup>
-<tbody valign="top">
-<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>
-</tbody>
-</table>
 <table class="docutils footnote" frame="void" id="id84" rules="none">
 <colgroup><col class="label" /><col /></colgroup>
 <tbody valign="top">
-<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>
+<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>
+</tbody>
+</table>
+<table class="docutils footnote" frame="void" id="id85" rules="none">
+<colgroup><col class="label" /><col /></colgroup>
+<tbody valign="top">
+<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>
 </tbody>
 </table>
Index: /trunk/kBuild/doc/QuickReference-kmk.txt
===================================================================
--- /trunk/kBuild/doc/QuickReference-kmk.txt	(revision 2339)
+++ /trunk/kBuild/doc/QuickReference-kmk.txt	(revision 2340)
@@ -974,4 +974,50 @@
 
 
+Recipes
+-------
+
+    A typical recipe takes one of the two following forms::
+
+        targets : normal-prerequisites | order-only-prerequisites
+        	command
+        	...
+
+        targets : normal-prerequisites | order-only-prerequisites ; command
+        	command
+        	...
+
+    Specifying more than one file in the ``targets`` lists is the same as
+    repeating the recipe for each of the files.
+
+    Use ``+`` and ``+|`` in the list of ``targets`` to tell ``kmk`` that the
+    recipe has more than one output. [1]_ The files after a ``+`` will
+    always be remade, while the files after a ``+|`` don't have to be remade.
+    The latter is frequently employed to update files which prerequisites
+    change wihtout the output files necessarily changing. See also
+    ``kmk_cp --changed``.
+
+
+Double colon recipes
+
+    Double colon recipes are written with ``::`` instead of ``:`` and are
+    handled differently from ordinary recipes if the target appears in more
+    than one recipe. First, all the recipes must be of the double colon type.
+    Second, the recipes are executed individually and may be omitted depending
+    on the state of their prerequisites. Double colon recipes without any
+    prerequisites will always be executed.
+
+
+Pattern rules
+
+    A couple of examples::
+
+        %.o : %.c
+		gcc -o $@ $<
+        %.tab.c %.tab.h : %.y
+		bison -d $<
+
+    The latter has two outputs.
+
+
 -----
 
