Changeset 2171 for trunk/kBuild/doc


Ignore:
Timestamp:
Dec 30, 2008, 11:18:10 PM (17 years ago)
Author:
bird
Message:

kmk-qr: added the special targets section.

Location:
trunk/kBuild/doc
Files:
2 edited

Legend:

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

    r2170 r2171  
    328328sinclude file
    329329</pre>
    330 <p>Include another dependency file <a class="footnote-reference" href="#id80" id="id1" name="id1">[1]</a>:</p>
     330<p>Include another dependency file <a class="footnote-reference" href="#id82" 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="#id80" 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="#id82" 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="#id80" 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="#id80" id="id4" name="id4">[1]</a></td>
     511into individual components. <a class="footnote-reference" href="#id82" 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="#id82" 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="#id80" 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="#id82" 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="#id80" 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="#id82" 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="#id80" 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="#id82" 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="#id80" 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="#id82" 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="#id80" id="id9" name="id9">[1]</a>,
     529<tr><td><tt class="docutils literal"><span class="pre">KMK</span></tt> <a class="footnote-reference" href="#id82" 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="#id80" 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="#id82" 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="#id80" 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="#id82" 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="#id80" 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="#id82" 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="#id80" 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="#id82" 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="#id80" 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="#id82" 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="#id80" 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="#id82" id="id15" name="id15">[1]</a></p>
    590590<table border="1" class="docutils">
    591591<colgroup>
     
    628628<div class="section">
    629629<h1><a id="special-targets" name="special-targets">Special Targets</a></h1>
    630 <p>todo</p>
     630<p>Certain names have special meanings if they appear as targets.</p>
     631<table border="1" class="docutils">
     632<colgroup>
     633<col width="41%" />
     634<col width="59%" />
     635</colgroup>
     636<thead valign="bottom">
     637<tr><th class="head">Target</th>
     638<th class="head">Description</th>
     639</tr>
     640</thead>
     641<tbody valign="top">
     642<tr><td><tt class="docutils literal"><span class="pre">.DEFAULT</span></tt></td>
     643<td>The recipe is used for any target for which
     644no rules are found.</td>
     645</tr>
     646<tr><td><tt class="docutils literal"><span class="pre">.DELETE_ON_ERROR</span></tt></td>
     647<td>If mentioned, <tt class="docutils literal"><span class="pre">kmk</span></tt> will delete the
     648targets of a rule if it hash changed and its
     649recipe fails or is interrupted.</td>
     650</tr>
     651<tr><td><tt class="docutils literal"><span class="pre">.EXPORT_ALL_VARIABLES</span></tt></td>
     652<td>If mentioned, all variables will by default
     653be exported to child processes.</td>
     654</tr>
     655<tr><td><tt class="docutils literal"><span class="pre">.IGNORE</span></tt></td>
     656<td>Ignore errors in the execution of the recipe
     657for the targets <tt class="docutils literal"><span class="pre">.IGNORE</span></tt> depends on, if
     658no prequisites all targets are affected.</td>
     659</tr>
     660<tr><td><tt class="docutils literal"><span class="pre">.INTERMEIDATE</span></tt></td>
     661<td>The prerequisites are treated as
     662intermediate files (implicite rules).</td>
     663</tr>
     664<tr><td><tt class="docutils literal"><span class="pre">.LOW_RESOLUTION_TIME</span></tt></td>
     665<td><tt class="docutils literal"><span class="pre">kmk</span></tt> will assume prerequisite files are
     666created with low resolution time stamps.</td>
     667</tr>
     668<tr><td><tt class="docutils literal"><span class="pre">.NOTPARALLEL</span></tt></td>
     669<td>If mentioned without any prerequisites,
     670<tt class="docutils literal"><span class="pre">kmk</span></tt> will run serially as if -j1 was
     671given. If it has prerequisites <tt class="docutils literal"><span class="pre">kmk</span></tt> <a class="footnote-reference" href="#id82" id="id16" name="id16">[1]</a>
     672will only do this for the targets among
     673them.</td>
     674</tr>
     675<tr><td><tt class="docutils literal"><span class="pre">.PHONY</span></tt></td>
     676<td>The prerequisites are considered phony and
     677will be rebuilt unconditionally.</td>
     678</tr>
     679<tr><td><tt class="docutils literal"><span class="pre">.PRECIOUS</span></tt></td>
     680<td>The targets which <tt class="docutils literal"><span class="pre">.PRECIOUS</span></tt> depends will
     681to be deleted if <tt class="docutils literal"><span class="pre">kmk</span></tt> is killed or
     682interrupted while their building.</td>
     683</tr>
     684<tr><td><tt class="docutils literal"><span class="pre">.SECONDARY</span></tt></td>
     685<td>The prerequisites are treated as
     686intermediate files, except that they are
     687never automatically deleted. If used with
     688no prerequisites all targets gets this
     689treatement.</td>
     690</tr>
     691<tr><td><tt class="docutils literal"><span class="pre">.SECONDEXPANSION</span></tt></td>
     692<td>If mentioned, all prerequisite lists after
     693it will be expanded a second time after all
     694makefiles have been read.</td>
     695</tr>
     696<tr><td><tt class="docutils literal"><span class="pre">.SECONDTARGETEXPANSION</span></tt>
     697<a class="footnote-reference" href="#id82" id="id17" name="id17">[1]</a></td>
     698<td>If mentioned, all prerequisite lists after
     699it will be expanded a second time after all
     700makefiles have been read.</td>
     701</tr>
     702<tr><td><tt class="docutils literal"><span class="pre">.SILENT</span></tt></td>
     703<td><tt class="docutils literal"><span class="pre">kmk</span></tt> will not print the recipe for
     704targets listed as prerequisites, if none
     705then it applies to all targets.</td>
     706</tr>
     707<tr><td><tt class="docutils literal"><span class="pre">.SUFFIXES</span></tt></td>
     708<td>The prerequisites are the list of suffixes
     709used in checking for suffix rules.</td>
     710</tr>
     711</tbody>
     712</table>
    631713</div>
    632714<div class="section">
    633715<h1><a id="commands" name="commands">Commands</a></h1>
    634 <p>Builtin commands <a class="footnote-reference" href="#id80" id="id16" name="id16">[1]</a> all start with <tt class="docutils literal"><span class="pre">kmk_builtin_</span></tt>, so in order to save
     716<p>Builtin commands <a class="footnote-reference" href="#id82" 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
    635717space this prefix has been omitted in the table below. All commands comes in an
    636718external edition that can be used by/in the shell, these are prefixed <tt class="docutils literal"><span class="pre">kmk_</span></tt>.</p>
     
    743825<div class="section">
    744826<h1><a id="kmk-expression" name="kmk-expression">kmk-expression</a></h1>
    745 <p><tt class="docutils literal"><span class="pre">kmk</span></tt>-expressions <a class="footnote-reference" href="#id80" id="id17" name="id17">[1]</a> are related to the C/C++ preprocessor in some ways as
     827<p><tt class="docutils literal"><span class="pre">kmk</span></tt>-expressions <a class="footnote-reference" href="#id82" id="id19" name="id19">[1]</a> are related to the C/C++ preprocessor in some ways as
    746828well 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
    747829because of the way GNU <tt class="docutils literal"><span class="pre">make</span></tt> choose to represent booleans in its function
     
    897979</pre>
    898980<p>Sort the words in <tt class="docutils literal"><span class="pre">list</span></tt> lexicographically in reserve order, removing
    899 duplicates <a class="footnote-reference" href="#id80" id="id18" name="id18">[1]</a>:</p>
     981duplicates <a class="footnote-reference" href="#id82" id="id20" name="id20">[1]</a>:</p>
    900982<pre class="literal-block">
    901983$(rsort list)
     
    9251007$(join list1,list2)
    9261008</pre>
    927 <p>Fold <tt class="docutils literal"><span class="pre">text</span></tt> to upper case <a class="footnote-reference" href="#id80" id="id19" name="id19">[1]</a>:</p>
     1009<p>Fold <tt class="docutils literal"><span class="pre">text</span></tt> to upper case <a class="footnote-reference" href="#id82" id="id21" name="id21">[1]</a>:</p>
    9281010<pre class="literal-block">
    9291011$(toupper text)
    9301012</pre>
    931 <p>Fold <tt class="docutils literal"><span class="pre">text</span></tt> to lower case <a class="footnote-reference" href="#id80" id="id20" name="id20">[1]</a>:</p>
     1013<p>Fold <tt class="docutils literal"><span class="pre">text</span></tt> to lower case <a class="footnote-reference" href="#id82" id="id22" name="id22">[1]</a>:</p>
    9321014<pre class="literal-block">
    9331015$(tolower text)
    9341016</pre>
    935 <p>String formatting a la the unix <tt class="docutils literal"><span class="pre">printf</span></tt> command <a class="footnote-reference" href="#id80" id="id21" name="id21">[1]</a>:</p>
     1017<p>String formatting a la the unix <tt class="docutils literal"><span class="pre">printf</span></tt> command <a class="footnote-reference" href="#id82" id="id23" name="id23">[1]</a>:</p>
    9361018<pre class="literal-block">
    9371019$(printf fmt, arg...)
    9381020</pre>
    939 <p>Return the length of a string or a (unexpanded) variable <a class="footnote-reference" href="#id80" id="id22" name="id22">[1]</a>:</p>
     1021<p>Return the length of a string or a (unexpanded) variable <a class="footnote-reference" href="#id82" id="id24" name="id24">[1]</a>:</p>
    9401022<pre class="literal-block">
    9411023$(length string)
     
    9441026<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.
    9451027Negative <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
    946 positive ones are one based <a class="footnote-reference" href="#id80" id="id23" name="id23">[1]</a>:</p>
     1028positive ones are one based <a class="footnote-reference" href="#id82" id="id25" name="id25">[1]</a>:</p>
    9471029<pre class="literal-block">
    9481030$(pos needle, haystack[, start])
     
    9511033<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>.
    9521034If the substring is partially outside the <tt class="docutils literal"><span class="pre">string</span></tt> the result will be
    953 padded with <tt class="docutils literal"><span class="pre">pad</span></tt> if present <a class="footnote-reference" href="#id80" id="id24" name="id24">[1]</a>:</p>
     1035padded with <tt class="docutils literal"><span class="pre">pad</span></tt> if present <a class="footnote-reference" href="#id82" id="id26" name="id26">[1]</a>:</p>
    9541036<pre class="literal-block">
    9551037$(substr string, start[, length[, pad]])
    9561038</pre>
    9571039<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
    958 <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="#id80" id="id25" name="id25">[1]</a>:</p>
     1040<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="#id82" id="id27" name="id27">[1]</a>:</p>
    9591041<pre class="literal-block">
    9601042$(insert in, str[, n[, length[, pad]]])
     
    9621044<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>,
    9631045optionally 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
    964 <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="#id80" id="id26" name="id26">[1]</a>:</p>
     1046<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="#id82" id="id28" name="id28">[1]</a>:</p>
    9651047<pre class="literal-block">
    9661048$(translate string, from-set[, to-set[, pad-char]])
     
    10101092</pre>
    10111093<p>Same as <tt class="docutils literal"><span class="pre">$(abspath</span> <span class="pre">)</span></tt> except that the current directory can be
    1012 specified as <tt class="docutils literal"><span class="pre">curdir</span></tt> <a class="footnote-reference" href="#id80" id="id27" name="id27">[1]</a>:</p>
     1094specified as <tt class="docutils literal"><span class="pre">curdir</span></tt> <a class="footnote-reference" href="#id82" id="id29" name="id29">[1]</a>:</p>
    10131095<pre class="literal-block">
    10141096$(abspathex names...[, curdir])
     
    10171099<p>Arithmetic Functions:</p>
    10181100<blockquote>
    1019 <p>Returns the sum of the arguments <a class="footnote-reference" href="#id80" id="id28" name="id28">[1]</a>:</p>
     1101<p>Returns the sum of the arguments <a class="footnote-reference" href="#id82" id="id30" name="id30">[1]</a>:</p>
    10201102<pre class="literal-block">
    10211103$(int-add addend1, addend2[, addendN])
    10221104</pre>
    10231105<p>Returns the difference between the first argument and the sum of the
    1024 rest <a class="footnote-reference" href="#id80" id="id29" name="id29">[1]</a>:</p>
     1106rest <a class="footnote-reference" href="#id82" id="id31" name="id31">[1]</a>:</p>
    10251107<pre class="literal-block">
    10261108$(int-sub minuend, subtrahend[, subtrahendN])
    10271109</pre>
    1028 <p>Returns the product of the arguments <a class="footnote-reference" href="#id80" id="id30" name="id30">[1]</a>:</p>
     1110<p>Returns the product of the arguments <a class="footnote-reference" href="#id82" id="id32" name="id32">[1]</a>:</p>
    10291111<pre class="literal-block">
    10301112$(int-mul factor1, factor2[, factorN])
    10311113</pre>
    1032 <p>Returns the quotient of first argument and the rest <a class="footnote-reference" href="#id80" id="id31" name="id31">[1]</a>:</p>
     1114<p>Returns the quotient of first argument and the rest <a class="footnote-reference" href="#id82" id="id33" name="id33">[1]</a>:</p>
    10331115<pre class="literal-block">
    10341116$(int-div dividend, divisor[, divisorN])
    10351117</pre>
    1036 <p>Returns the modulus of the two arguments <a class="footnote-reference" href="#id80" id="id32" name="id32">[1]</a>:</p>
     1118<p>Returns the modulus of the two arguments <a class="footnote-reference" href="#id82" id="id34" name="id34">[1]</a>:</p>
    10371119<pre class="literal-block">
    10381120$(int-mod dividend, divisor)
    10391121</pre>
    1040 <p>Returns the bitwise two-complement of argument <a class="footnote-reference" href="#id80" id="id33" name="id33">[1]</a>:</p>
     1122<p>Returns the bitwise two-complement of argument <a class="footnote-reference" href="#id82" id="id35" name="id35">[1]</a>:</p>
    10411123<pre class="literal-block">
    10421124$(int-not val)
    10431125</pre>
    1044 <p>Returns the result of a bitwise AND of the arguments <a class="footnote-reference" href="#id80" id="id34" name="id34">[1]</a>:</p>
     1126<p>Returns the result of a bitwise AND of the arguments <a class="footnote-reference" href="#id82" id="id36" name="id36">[1]</a>:</p>
    10451127<pre class="literal-block">
    10461128$(int-and val1, val2[, valN])
    10471129</pre>
    1048 <p>Returns the result of a bitwise OR of the arguments <a class="footnote-reference" href="#id80" id="id35" name="id35">[1]</a>:</p>
     1130<p>Returns the result of a bitwise OR of the arguments <a class="footnote-reference" href="#id82" id="id37" name="id37">[1]</a>:</p>
    10491131<pre class="literal-block">
    10501132$(int-or val1, val2[, valN])
    10511133</pre>
    1052 <p>Returns the result of a bitwise XOR of the arguments <a class="footnote-reference" href="#id80" id="id36" name="id36">[1]</a>:</p>
     1134<p>Returns the result of a bitwise XOR of the arguments <a class="footnote-reference" href="#id82" id="id38" name="id38">[1]</a>:</p>
    10531135<pre class="literal-block">
    10541136$(int-xor val1, val2[, valN])
    10551137</pre>
    10561138<p>Returns the <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean (true = non-empty, false = empty) result
    1057 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="#id80" id="id37" name="id37">[1]</a>:</p>
     1139of <tt class="docutils literal"><span class="pre">val1</span> <span class="pre">==</span> <span class="pre">val2</span></tt> <a class="footnote-reference" href="#id82" id="id39" name="id39">[1]</a>:</p>
    10581140<pre class="literal-block">
    10591141$(int-eq val1, val2)
    10601142</pre>
    1061 <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="#id80" id="id38" name="id38">[1]</a>:</p>
     1143<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="#id82" id="id40" name="id40">[1]</a>:</p>
    10621144<pre class="literal-block">
    10631145$(int-ne val1, val2)
    10641146</pre>
    1065 <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="#id80" id="id39" name="id39">[1]</a>:</p>
     1147<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="#id82" id="id41" name="id41">[1]</a>:</p>
    10661148<pre class="literal-block">
    10671149$(int-gt val1, val2)
    10681150</pre>
    1069 <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="#id80" id="id40" name="id40">[1]</a>:</p>
     1151<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="#id82" id="id42" name="id42">[1]</a>:</p>
    10701152<pre class="literal-block">
    10711153$(int-ge val1, val2)
    10721154</pre>
    1073 <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="#id80" id="id41" name="id41">[1]</a>:</p>
     1155<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="#id82" id="id43" name="id43">[1]</a>:</p>
    10741156<pre class="literal-block">
    10751157$(int-lt val1, val2)
    10761158</pre>
    1077 <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="#id80" id="id42" name="id42">[1]</a>:</p>
     1159<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="#id82" id="id44" name="id44">[1]</a>:</p>
    10781160<pre class="literal-block">
    10791161$(int-le val1, val2)
     
    10991181</pre>
    11001182<p>Test if the two strings are identical, returning <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean (true =
    1101 non-empty, false = empty) <a class="footnote-reference" href="#id81" id="id43" name="id43">[2]</a>:</p>
     1183non-empty, false = empty) <a class="footnote-reference" href="#id83" id="id45" name="id45">[2]</a>:</p>
    11021184<pre class="literal-block">
    11031185$(eq str1, str2)
    11041186</pre>
    1105 <p>Invert a <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean value <a class="footnote-reference" href="#id81" id="id44" name="id44">[2]</a>:</p>
     1187<p>Invert a <tt class="docutils literal"><span class="pre">kmk</span></tt> boolean value <a class="footnote-reference" href="#id83" id="id46" name="id46">[2]</a>:</p>
    11061188<pre class="literal-block">
    11071189$(not val)
    11081190</pre>
    1109 <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="#id80" id="id45" name="id45">[1]</a>:</p>
     1191<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="#id82" id="id47" name="id47">[1]</a>:</p>
    11101192<pre class="literal-block">
    11111193$(defined variable)
    11121194</pre>
    11131195<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
    1114 value <a class="footnote-reference" href="#id80" id="id46" name="id46">[1]</a>:</p>
     1196value <a class="footnote-reference" href="#id82" id="id48" name="id48">[1]</a>:</p>
    11151197<pre class="literal-block">
    11161198$(intersects set-a, set-b)
    11171199</pre>
    1118 <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="#id80" id="id47" name="id47">[1]</a>:</p>
     1200<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="#id82" id="id49" name="id49">[1]</a>:</p>
    11191201<pre class="literal-block">
    11201202$(if-expr kmk-expression,true-part[,false-part])
     
    11221204<p>Select the first true condition (<tt class="docutils literal"><span class="pre">kmk</span></tt>-expression) and expand the
    11231205following body. Special condition strings <tt class="docutils literal"><span class="pre">default</span></tt> and
    1124 <tt class="docutils literal"><span class="pre">otherwise</span></tt> <a class="footnote-reference" href="#id80" id="id48" name="id48">[1]</a>:</p>
     1206<tt class="docutils literal"><span class="pre">otherwise</span></tt> <a class="footnote-reference" href="#id82" id="id50" name="id50">[1]</a>:</p>
    11251207<pre class="literal-block">
    11261208$(select when1-cond, when1-body[, whenN-cond, whenN-body])
    11271209</pre>
    11281210<p>Evalutate the <tt class="docutils literal"><span class="pre">kmk-expression</span></tt> returning what it evalues as. This is
    1129 the preferred way of doing arithmentic now <a class="footnote-reference" href="#id80" id="id49" name="id49">[1]</a>:</p>
     1211the preferred way of doing arithmentic now <a class="footnote-reference" href="#id82" id="id51" name="id51">[1]</a>:</p>
    11301212<pre class="literal-block">
    11311213$(expr kmk-expression)
     
    11341216<p>Stack Fuctions:</p>
    11351217<blockquote>
    1136 <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="#id80" id="id50" name="id50">[1]</a>:</p>
     1218<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="#id82" id="id52" name="id52">[1]</a>:</p>
    11371219<pre class="literal-block">
    11381220$(stack-push stack-var, item)
    11391221</pre>
    1140 <p>Pop the top item off the <tt class="docutils literal"><span class="pre">stack-var</span></tt> <a class="footnote-reference" href="#id80" id="id51" name="id51">[1]</a>:</p>
     1222<p>Pop the top item off the <tt class="docutils literal"><span class="pre">stack-var</span></tt> <a class="footnote-reference" href="#id82" id="id53" name="id53">[1]</a>:</p>
    11411223<pre class="literal-block">
    11421224$(stack-pop stack-var)
    11431225</pre>
    1144 <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="#id80" id="id52" name="id52">[1]</a>:</p>
     1226<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="#id82" id="id54" name="id54">[1]</a>:</p>
    11451227<pre class="literal-block">
    11461228$(stack-popv stack-var)
    11471229</pre>
    1148 <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="#id80" id="id53" name="id53">[1]</a>:</p>
     1230<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="#id82" id="id55" name="id55">[1]</a>:</p>
    11491231<pre class="literal-block">
    11501232$(stack-top stack-var)
     
    11661248first 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,
    11671249then expand <tt class="docutils literal"><span class="pre">body</span></tt> concatenating the result to the previous iterations
    1168 (spaced), and finally evaluate <tt class="docutils literal"><span class="pre">next</span></tt> <a class="footnote-reference" href="#id80" id="id54" name="id54">[1]</a>:</p>
     1250(spaced), and finally evaluate <tt class="docutils literal"><span class="pre">next</span></tt> <a class="footnote-reference" href="#id82" id="id56" name="id56">[1]</a>:</p>
    11691251<pre class="literal-block">
    11701252$(for init,conditions,next,body)
     
    11721254<p>C-style while-loop. Each iteration will check whether the <tt class="docutils literal"><span class="pre">condition</span></tt>
    11731255(<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
    1174 result to the previous iterations <a class="footnote-reference" href="#id80" id="id55" name="id55">[1]</a>:</p>
     1256result to the previous iterations <a class="footnote-reference" href="#id82" id="id57" name="id57">[1]</a>:</p>
    11751257<pre class="literal-block">
    11761258$(while conditions,body)
     
    11871269</pre>
    11881270<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
    1189 own variable context <a class="footnote-reference" href="#id80" id="id56" name="id56">[1]</a>:</p>
     1271own variable context <a class="footnote-reference" href="#id82" id="id58" name="id58">[1]</a>:</p>
    11901272<pre class="literal-block">
    11911273$(evalctx text)
    11921274</pre>
    1193 <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="#id80" id="id57" name="id57">[1]</a>:</p>
     1275<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="#id82" id="id59" name="id59">[1]</a>:</p>
    11941276<pre class="literal-block">
    11951277$(evalval var)
    11961278</pre>
    1197 <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="#id80" id="id58" name="id58">[1]</a>:</p>
     1279<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="#id82" id="id60" name="id60">[1]</a>:</p>
    11981280<pre class="literal-block">
    11991281$(evalvalctx var)
    12001282</pre>
    1201 <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="#id80" id="id59" name="id59">[1]</a>:</p>
     1283<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="#id82" id="id61" name="id61">[1]</a>:</p>
    12021284<pre class="literal-block">
    12031285$(evalcall var)
    12041286</pre>
    1205 <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="#id80" id="id60" name="id60">[1]</a>:</p>
     1287<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="#id82" id="id62" name="id62">[1]</a>:</p>
    12061288<pre class="literal-block">
    12071289$(evalcall var)
    12081290</pre>
    12091291<p>Remove comments and blank lines from the variable <tt class="docutils literal"><span class="pre">var</span></tt>. Expands to
    1210 the empty string <a class="footnote-reference" href="#id80" id="id61" name="id61">[1]</a>:</p>
     1292the empty string <a class="footnote-reference" href="#id82" id="id63" name="id63">[1]</a>:</p>
    12111293<pre class="literal-block">
    12121294$(eval-opt-var var)
    12131295</pre>
    12141296<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
    1215 or the file at <tt class="docutils literal"><span class="pre">pos</span></tt> (one-origin) <a class="footnote-reference" href="#id80" id="id62" name="id62">[1]</a>:</p>
     1297or the file at <tt class="docutils literal"><span class="pre">pos</span></tt> (one-origin) <a class="footnote-reference" href="#id82" id="id64" name="id64">[1]</a>:</p>
    12161298<pre class="literal-block">
    12171299$(deps target[, pos])
    12181300</pre>
    12191301<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
    1220 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="#id80" id="id63" name="id63">[1]</a>:</p>
     1302retriving the whole thing or the file at <tt class="docutils literal"><span class="pre">pos</span></tt> (one-origin) <a class="footnote-reference" href="#id82" id="id65" name="id65">[1]</a>:</p>
    12211303<pre class="literal-block">
    12221304$(deps-all target[, pos])
    12231305</pre>
    12241306<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
    1225 thing or the file at <tt class="docutils literal"><span class="pre">pos</span></tt> (one-origin) <a class="footnote-reference" href="#id80" id="id64" name="id64">[1]</a>:</p>
     1307thing or the file at <tt class="docutils literal"><span class="pre">pos</span></tt> (one-origin) <a class="footnote-reference" href="#id82" id="id66" name="id66">[1]</a>:</p>
    12261308<pre class="literal-block">
    12271309$(deps-newer target[, pos])
    12281310</pre>
    12291311<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
    1230 whole thing or the file at <tt class="docutils literal"><span class="pre">pos</span></tt> (one-origin) <a class="footnote-reference" href="#id80" id="id65" name="id65">[1]</a>:</p>
     1312whole thing or the file at <tt class="docutils literal"><span class="pre">pos</span></tt> (one-origin) <a class="footnote-reference" href="#id82" id="id67" name="id67">[1]</a>:</p>
    12311313<pre class="literal-block">
    12321314$(deps-oo target[, pos])
     
    12361318<blockquote>
    12371319<p>Create one or more command lines avoiding the max argument
    1238 length restriction of the host OS <a class="footnote-reference" href="#id80" id="id66" name="id66">[1]</a>:</p>
     1320length restriction of the host OS <a class="footnote-reference" href="#id82" id="id68" name="id68">[1]</a>:</p>
    12391321<pre class="literal-block">
    12401322$(xargs ar cas mylib.a,$(objects))
     
    12431325<p>Returns the commands for the specified target separated by new-line, space,
    12441326or a user defined string. Note that this might not produce the 100% correct
    1245 result if any of the prerequisite automatic variables are used <a class="footnote-reference" href="#id80" id="id67" name="id67">[1]</a>:</p>
     1327result if any of the prerequisite automatic variables are used <a class="footnote-reference" href="#id82" id="id69" name="id69">[1]</a>:</p>
    12461328<pre class="literal-block">
    12471329$(commands target)
     
    12521334argument 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
    12531335line by line is stripped of leading spaces, command prefixes and
    1254 trailing spaces before comparing <a class="footnote-reference" href="#id80" id="id68" name="id68">[1]</a>:</p>
     1336trailing spaces before comparing <a class="footnote-reference" href="#id82" id="id70" name="id70">[1]</a>:</p>
    12551337<pre class="literal-block">
    12561338$(comp-cmds cmds-var1, cmds-var2, ne)
     
    12591341<p>Compares the values of the two variables returning the empty string if
    12601342equal and the 3rd argument if not. Leading and trailing spaces is
    1261 ignored <a class="footnote-reference" href="#id80" id="id69" name="id69">[1]</a>:</p>
     1343ignored <a class="footnote-reference" href="#id82" id="id71" name="id71">[1]</a>:</p>
    12621344<pre class="literal-block">
    12631345$(comp-var var1, var2, ne)
     
    12951377<p>Returns the current local time and date formatted in the <tt class="docutils literal"><span class="pre">strftime</span></tt>
    12961378style 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
    1297 not specified <a class="footnote-reference" href="#id80" id="id70" name="id70">[1]</a>:</p>
     1379not specified <a class="footnote-reference" href="#id82" id="id72" name="id72">[1]</a>:</p>
    12981380<pre class="literal-block">
    12991381$(date fmt)
     
    13011383<p>Returns the current UTC time and date formatted in the <tt class="docutils literal"><span class="pre">strftime</span></tt>
    13021384style 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
    1303 not specified <a class="footnote-reference" href="#id80" id="id71" name="id71">[1]</a>:</p>
     1385not specified <a class="footnote-reference" href="#id82" id="id73" name="id73">[1]</a>:</p>
    13041386<pre class="literal-block">
    13051387$(date-utc fmt)
     
    13071389<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
    13081390to <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
    1309 <tt class="docutils literal"><span class="pre">%Y-%m-%dT%H:%M:%SZ</span></tt> if not specified <a class="footnote-reference" href="#id80" id="id72" name="id72">[1]</a>:</p>
     1391<tt class="docutils literal"><span class="pre">%Y-%m-%dT%H:%M:%SZ</span></tt> if not specified <a class="footnote-reference" href="#id82" id="id74" name="id74">[1]</a>:</p>
    13101392<pre class="literal-block">
    13111393$(date-utc fmt,time,in-fmt)
    13121394</pre>
    1313 <p>Returns the current nanosecond timestamp (monotonic when possible) <a class="footnote-reference" href="#id80" id="id73" name="id73">[1]</a>:</p>
     1395<p>Returns the current nanosecond timestamp (monotonic when possible) <a class="footnote-reference" href="#id82" id="id75" name="id75">[1]</a>:</p>
    13141396<pre class="literal-block">
    13151397$(nanots )
    13161398</pre>
    13171399<p>Returns the size of the specified file, or -1 if the size could not
    1318 be obtained. This can be used to check if a file exist or not <a class="footnote-reference" href="#id80" id="id74" name="id74">[1]</a>:</p>
     1400be obtained. This can be used to check if a file exist or not <a class="footnote-reference" href="#id82" id="id76" name="id76">[1]</a>:</p>
    13191401<pre class="literal-block">
    13201402$(file-size file)
    13211403</pre>
    1322 <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="#id80" id="id75" name="id75">[1]</a>:</p>
     1404<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="#id82" id="id77" name="id77">[1]</a>:</p>
    13231405<pre class="literal-block">
    13241406$(which files...)
    13251407</pre>
    1326 <p>OS/2: Returns the specified LIBPATH variable value <a class="footnote-reference" href="#id80" id="id76" name="id76">[1]</a>:</p>
     1408<p>OS/2: Returns the specified LIBPATH variable value <a class="footnote-reference" href="#id82" id="id78" name="id78">[1]</a>:</p>
    13271409<pre class="literal-block">
    13281410$(libpath var)
    13291411</pre>
    13301412<p>OS/2: Sets the specified LIBPATH variable value, returning the empty
    1331 string <a class="footnote-reference" href="#id80" id="id77" name="id77">[1]</a>:</p>
     1413string <a class="footnote-reference" href="#id82" id="id79" name="id79">[1]</a>:</p>
    13321414<pre class="literal-block">
    13331415$(libpath var,value)
     
    13371419<blockquote>
    13381420<p>Returns various make statistics, if no item is specified a default
    1339 selection is returned <a class="footnote-reference" href="#id80" id="id78" name="id78">[1]</a>:</p>
     1421selection is returned <a class="footnote-reference" href="#id82" id="id80" name="id80">[1]</a>:</p>
    13401422<pre class="literal-block">
    13411423$(make-stats item[,itemN])
    13421424</pre>
    13431425<p>Raise a debug breakpoint. Used for debugging <tt class="docutils literal"><span class="pre">kmk</span></tt> makefile
    1344 parsing <a class="footnote-reference" href="#id80" id="id79" name="id79">[1]</a>:</p>
     1426parsing <a class="footnote-reference" href="#id82" id="id81" name="id81">[1]</a>:</p>
    13451427<pre class="literal-block">
    13461428$(breakpoint )
     
    13481430</blockquote>
    13491431<hr class="docutils" />
    1350 <table class="docutils footnote" frame="void" id="id80" rules="none">
     1432<table class="docutils footnote" frame="void" id="id82" rules="none">
    13511433<colgroup><col class="label" /><col /></colgroup>
    13521434<tbody valign="top">
    1353 <tr><td class="label"><a name="id80">[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="#id45">43</a>, <a class="fn-backref" href="#id46">44</a>, <a class="fn-backref" href="#id47">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>)</em> <tt class="docutils literal"><span class="pre">kmk</span></tt> only feature.</td></tr>
     1435<tr><td class="label"><a name="id82">[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="#id47">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>)</em> <tt class="docutils literal"><span class="pre">kmk</span></tt> only feature.</td></tr>
    13541436</tbody>
    13551437</table>
    1356 <table class="docutils footnote" frame="void" id="id81" rules="none">
     1438<table class="docutils footnote" frame="void" id="id83" rules="none">
    13571439<colgroup><col class="label" /><col /></colgroup>
    13581440<tbody valign="top">
    1359 <tr><td class="label"><a name="id81">[2]</a></td><td><em>(<a class="fn-backref" href="#id43">1</a>, <a class="fn-backref" href="#id44">2</a>)</em> Experimental GNU <tt class="docutils literal"><span class="pre">make</span></tt> feature that is not enabled by default.</td></tr>
     1441<tr><td class="label"><a name="id83">[2]</a></td><td><em>(<a class="fn-backref" href="#id45">1</a>, <a class="fn-backref" href="#id46">2</a>)</em> Experimental GNU <tt class="docutils literal"><span class="pre">make</span></tt> feature that is not enabled by default.</td></tr>
    13601442</tbody>
    13611443</table>
  • trunk/kBuild/doc/QuickReference-kmk.txt

    r2170 r2171  
    268268---------------
    269269
    270 todo
     270Certain names have special meanings if they appear as targets.
     271
     272+-------------------------------+---------------------------------------------+
     273| Target                        | Description                                 |
     274+===============================+=============================================+
     275| ``.DEFAULT``                  | The recipe is used for any target for which |
     276|                               | no rules are found.                         |
     277+-------------------------------+---------------------------------------------+
     278| ``.DELETE_ON_ERROR``          | If mentioned, ``kmk`` will delete the       |
     279|                               | targets of a rule if it has changed and its |
     280|                               | recipe fails or is interrupted.             |
     281+-------------------------------+---------------------------------------------+
     282| ``.EXPORT_ALL_VARIABLES``     | If mentioned, all variables will by default |
     283|                               | be exported to child processes.             |
     284+-------------------------------+---------------------------------------------+
     285| ``.IGNORE``                   | Ignore errors in the execution of the recipe|
     286|                               | for the targets ``.IGNORE`` depends on, if  |
     287|                               | no prequisites all targets are affected.    |
     288+-------------------------------+---------------------------------------------+
     289| ``.INTERMEDIATE``             | The prerequisites are treated as            |
     290|                               | intermediate files (implicite rules).       |
     291+-------------------------------+---------------------------------------------+
     292| ``.LOW_RESOLUTION_TIME``      | ``kmk`` will assume prerequisite files are  |
     293|                               | created with low resolution time stamps.    |
     294+-------------------------------+---------------------------------------------+
     295| ``.NOTPARALLEL``              | If mentioned without any prerequisites,     |
     296|                               | ``kmk`` will run serially as if -j1 was     |
     297|                               | given. If it has prerequisites ``kmk`` [1]_ |
     298|                               | will only do this for the targets among     |
     299|                               | them.                                       |
     300+-------------------------------+---------------------------------------------+
     301| ``.PHONY``                    | The prerequisites are considered phony and  |
     302|                               | will be rebuilt unconditionally.            |
     303+-------------------------------+---------------------------------------------+
     304| ``.PRECIOUS``                 | The targets which ``.PRECIOUS`` depends     |
     305|                               | will to be deleted if ``kmk`` is killed or  |
     306|                               | interrupted while their building.           |
     307+-------------------------------+---------------------------------------------+
     308| ``.SECONDARY``                | The prerequisites are treated as            |
     309|                               | intermediate files, except that they are    |
     310|                               | never automatically deleted. If used with   |
     311|                               | no prerequisites all targets gets this      |
     312|                               | treatement.                                 |
     313+-------------------------------+---------------------------------------------+
     314| ``.SECONDEXPANSION``          | If mentioned, all prerequisite lists after  |
     315|                               | it will be expanded a second time after all |
     316|                               | makefiles have been read.                   |
     317+-------------------------------+---------------------------------------------+
     318| ``.SECONDTARGETEXPANSION``    | If mentioned, all targets after it will be  |
     319| [1]_                          | expanded a second time after all makefiles  |
     320|                               | have been read.                             |
     321+-------------------------------+---------------------------------------------+
     322| ``.SILENT``                   | ``kmk`` will not print the recipe for       |
     323|                               | targets listed as prerequisites, if none    |
     324|                               | then it applies to all targets.             |
     325+-------------------------------+---------------------------------------------+
     326| ``.SUFFIXES``                 | The prerequisites are the list of suffixes  |
     327|                               | used in checking for suffix rules. If it    |
     328|                               | appears without prerequisites it the suffix |
     329|                               | will be cleared.                            |
     330+-------------------------------+---------------------------------------------+
    271331
    272332
Note: See TracChangeset for help on using the changeset viewer.