summaryrefslogtreecommitdiff
path: root/doc/html/bbv2/reference.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/html/bbv2/reference.html')
-rw-r--r--doc/html/bbv2/reference.html388
1 files changed, 200 insertions, 188 deletions
diff --git a/doc/html/bbv2/reference.html b/doc/html/bbv2/reference.html
index 54574d19bb..046764ce36 100644
--- a/doc/html/bbv2/reference.html
+++ b/doc/html/bbv2/reference.html
@@ -4,9 +4,9 @@
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Reference</title>
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
-<link rel="up" href="../bbv2.html" title="Chapter&#160;44.&#160;Boost.Build User Manual">
+<link rel="up" href="../bbv2.html" title="Chapter&#160;46.&#160;Boost.Build User Manual">
<link rel="prev" href="tasks.html" title="Common tasks">
<link rel="next" href="extender.html" title="Extender Manual">
</head>
@@ -26,7 +26,7 @@
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="bbv2.reference"></a>Reference</h2></div></div></div>
-<div class="toc"><dl class="toc">
+<div class="toc"><dl>
<dt><span class="section"><a href="reference.html#bbv2.reference.general">General information</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.rules">Builtin rules</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.overview.builtins.features">Builtin features</a></span></dt>
@@ -39,7 +39,7 @@
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="bbv2.reference.general"></a>General information</h3></div></div></div>
-<div class="toc"><dl class="toc"><dt><span class="section"><a href="reference.html#bbv2.reference.init">Initialization</a></span></dt></dl></div>
+<div class="toc"><dl><dt><span class="section"><a href="reference.html#bbv2.reference.init">Initialization</a></span></dt></dl></div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.init"></a>Initialization</h4></div></div></div>
@@ -84,7 +84,7 @@ boost-build build-system ;
<p>This section contains the list of all rules that
can be used in Jamfile&#8212;both rules that define new
targets and auxiliary rules.</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">exe</code></span></dt>
<dd><p>Creates an executable file. See
<a class="xref" href="tasks.html#bbv2.tasks.programs" title="Programs">the section called &#8220;Programs&#8221;</a>.</p></dd>
@@ -119,11 +119,11 @@ rule check-target-builds ( target message ? : true-properties * : false-properti
</pre>
<p>This function can only be used when passing requirements or usage
requirements to a metatarget rule. For example, to make an application link
- to a library if it's avavailable, one has use the following:</p>
+ to a library if it's available, one has use the following:</p>
<pre class="programlisting">
exe app : app.cpp : [ check-target-builds has_foo "System has foo" : &lt;library&gt;foo : &lt;define&gt;FOO_MISSING=1 ] ;
</pre>
-<p>For another example, the alias rule can be used to consolidate configuraiton
+<p>For another example, the alias rule can be used to consolidate configuration
choices and make them available to other metatargets, like so:</p>
<pre class="programlisting">
alias foobar : : : : [ check-target-builds has_foo "System has foo" : &lt;library&gt;foo : &lt;library&gt;bar ] ;
@@ -195,7 +195,7 @@ ECHO [ glob-tree *.cpp : .svn ] ;
their containing project is built.</p></dd>
<dt><span class="term"><code class="literal">always</code></span></dt>
<dd>
-<p>The <code class="literal">always</code> funciton takes a single
+<p>The <code class="literal">always</code> function takes a single
parameter&#8212;a list of metatarget names. The top-level targets produced
by the named metatargets will be always considered out of date. Consider this example:
</p>
@@ -260,7 +260,7 @@ path-constant DATA : data/a.txt ;
<p>This section documents the features that are built-in into
Boost.Build. For features with a fixed set of values, that set is
provided, with the default value listed first.</p>
-<a class="indexterm" name="idm45555007357744"></a><div class="variablelist"><dl class="variablelist">
+<a class="indexterm" name="idp519633088"></a><div class="variablelist"><dl>
<dt><span class="term"><code class="literal">variant</code></span></dt>
<dd>
<p>
@@ -309,7 +309,7 @@ path-constant DATA : data/a.txt ;
<p><span class="bold"><strong>Allowed values:</strong></span> <code class="literal">shared</code>,
<code class="literal">static</code></p>
<p class="simpara">
- A feature controling how libraries are built.
+ A feature controlling how libraries are built.
</p>
</dd>
<dt>
@@ -394,7 +394,7 @@ path-constant DATA : data/a.txt ;
Specify an additional directory where the system should
look for shared libraries when the executable or shared
library is run. This feature only affects Unix
- compilers. Plase see <a class="xref" href="faq.html#bbv2.faq.dll-path" title="Why are the dll-path and hardcode-dll-paths properties useful?">the section called &#8220;
+ compilers. Please see <a class="xref" href="faq.html#bbv2.faq.dll-path" title="Why are the dll-path and hardcode-dll-paths properties useful?">the section called &#8220;
Why are the <code class="literal">dll-path</code> and <code class="literal">hardcode-dll-paths
</code> properties useful?
&#8221;</a>
@@ -413,7 +413,7 @@ path-constant DATA : data/a.txt ;
As the result, the executable can be run without changing system
paths to shared libraries or installing the libraries to system
paths. This is very
- convenient during development. Plase see the <a class="link" href="faq.html#bbv2.faq.dll-path" title="Why are the dll-path and hardcode-dll-paths properties useful?">FAQ entry</a> for details. Note that on Mac
+ convenient during development. Please see the <a class="link" href="faq.html#bbv2.faq.dll-path" title="Why are the dll-path and hardcode-dll-paths properties useful?">FAQ entry</a> for details. Note that on Mac
OSX, the paths are unconditionally hardcoded by the linker, and it
is not possible to disable that behaviour.</p>
</dd>
@@ -444,7 +444,7 @@ path-constant DATA : data/a.txt ;
<dd>
The <code class="computeroutput">&lt;warnings&gt;</code> feature controls the warning level
of compilers. It has the following values:
- <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+ <div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem"><p><code class="computeroutput">off</code> - disables all warnings.</p></li>
<li class="listitem"><p><code class="computeroutput">on</code> - enables default warning level for the tool.</p></li>
<li class="listitem"><p><code class="computeroutput">all</code> - enables all warnings.</p></li>
@@ -553,7 +553,7 @@ path-constant DATA : data/a.txt ;
<code class="literal">combined-x86-power</code>.
</p>
<p>The <code class="literal">architecture</code> features specifies
- the general processor familty to generate code for.</p>
+ the general processor family to generate code for.</p>
</dd>
<dt><span class="term"><code class="literal">instruction-set</code></span></dt>
<dd>
@@ -605,7 +605,7 @@ path-constant DATA : data/a.txt ;
</dd>
<dt><span class="term"><code class="literal">embed-manifest</code></span></dt>
<dd>
-<a class="indexterm" name="idm45555007198880"></a><a class="indexterm" name="idm45555007197776"></a><p>
+<a class="indexterm" name="idp519791872"></a><a class="indexterm" name="idp519792976"></a><p>
<span class="bold"><strong>Allowed values:</strong></span> on, off.
</p>
<p>This feature is specific to the msvc toolset (see
@@ -618,7 +618,7 @@ path-constant DATA : data/a.txt ;
</dd>
<dt><span class="term"><code class="literal">embed-manifest-file</code></span></dt>
<dd>
-<a class="indexterm" name="idm45555007189536"></a><a class="indexterm" name="idm45555007188432"></a><p>This feature is specific to the msvc toolset (see
+<a class="indexterm" name="idp519801216"></a><a class="indexterm" name="idp519802320"></a><p>This feature is specific to the msvc toolset (see
<a class="xref" href="reference.html#bbv2.reference.tools.compiler.msvc" title="Microsoft Visual C++">the section called &#8220;Microsoft Visual C++&#8221;</a>),
and controls which manifest files should be embedded inside
executables and shared libraries. This
@@ -631,10 +631,10 @@ path-constant DATA : data/a.txt ;
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="bbv2.reference.tools"></a>Builtin tools</h3></div></div></div>
-<div class="toc"><dl class="toc">
+<div class="toc"><dl>
<dt><span class="section"><a href="reference.html#bbv2.reference.tools.compilers">C++ Compilers</a></span></dt>
-<dt><span class="section"><a href="reference.html#idm45555006872448">Third-party libraries</a></span></dt>
-<dt><span class="section"><a href="reference.html#idm45555006836320">Documentation tools</a></span></dt>
+<dt><span class="section"><a href="reference.html#idp520125360">Third-party libraries</a></span></dt>
+<dt><span class="section"><a href="reference.html#idp520161456">Documentation tools</a></span></dt>
</dl></div>
<p>Boost.Build comes with support for a large number of C++ compilers,
and other tools. This section documents how to use those tools.</p>
@@ -654,7 +654,7 @@ using gcc : 4.0 : g++-4.0 ;
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.tools.compilers"></a>C++ Compilers</h4></div></div></div>
-<div class="toc"><dl class="toc">
+<div class="toc"><dl>
<dt><span class="section"><a href="reference.html#bbv2.reference.tools.compiler.gcc">GNU C++</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.tools.compiler.darwin">Apple Darwin gcc</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.tools.compiler.msvc">Microsoft Visual C++</a></span></dt>
@@ -694,7 +694,7 @@ using gcc : [<span class="optional"><em class="replaceable"><code>version</code>
option. If the command is not specified, the <span class="command"><strong>g++</strong></span>
binary will be searched in <code class="envar">PATH</code>.</p>
<p>The following options can be provided, using <code class="literal">&lt;<em class="replaceable"><code>option-name</code></em>&gt;<em class="replaceable"><code>option-value</code></em></code> syntax:</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">cflags</code></span></dt>
<dd><p>Specifies additional compiler flags that will be used when
compiling C sources.</p></dd>
@@ -712,6 +712,18 @@ using gcc : [<span class="optional"><em class="replaceable"><code>version</code>
This option is necessary only if it is not possible to detect this
information from the compiler command&#8212;for example if the specified
compiler command is a user script.</p></dd>
+<dt><span class="term"><code class="literal">archiver</code></span></dt>
+<dd><p>Specifies the archiver command that is used to produce static
+ libraries. Normally, it is autodetected using gcc
+ <span class="command"><strong>-print-prog-name</strong></span> option or defaulted to <span class="command"><strong>ar</strong></span>,
+ but in some cases you might want to override it, for example to expliitly
+ use a system version instead of one included with gcc.</p></dd>
+<dt><span class="term"><code class="literal">ranlib</code></span></dt>
+<dd><p>Specifies the ranlib command that is used to generated symbol table
+ for static libraries. Normally, it is autodetected using gcc
+ <span class="command"><strong>-print-prog-name</strong></span> option or defaulted to <span class="command"><strong>ranlib</strong></span>,
+ but in some cases you might want to override it, for example to expliitly
+ use a system version instead of one included with gcc.</p></dd>
<dt><span class="term"><code class="literal">rc</code></span></dt>
<dd><p>Specifies the resource compiler command
that will be used with the version of gcc that is being
@@ -723,7 +735,7 @@ using gcc : [<span class="optional"><em class="replaceable"><code>version</code>
be either <code class="computeroutput">windres</code> for msvc resource compiler,
or <code class="computeroutput">rc</code> for borland's resource compiler.</p></dd>
</dl></div>
-<a class="indexterm" name="idm45555007143792"></a>
+<a class="indexterm" name="idp519854272"></a>
In order to compile 64-bit applications, you have to specify
<code class="computeroutput">address-model=64</code>, and the <code class="computeroutput">instruction-set</code>
@@ -740,7 +752,7 @@ using gcc : [<span class="optional"><em class="replaceable"><code>version</code>
to that of the gcc module.
</p>
<p>
- <a class="indexterm" name="idm45555007135264"></a>
+ <a class="indexterm" name="idp519862800"></a>
The darwin toolset can generate so called "fat"
binaries&#8212;binaries that can run support more than one
architecture, or address mode. To build a binary that can run both
@@ -758,7 +770,7 @@ using gcc : [<span class="optional"><em class="replaceable"><code>version</code>
<a href="http://msdn.microsoft.com/visualc/" target="_top">Microsoft Visual
C++</a> command-line tools on Microsoft Windows. The supported
products and versions of command line tools are listed below:</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem"><p>Visual Studio 2010&#8212;10.0</p></li>
<li class="listitem"><p>Visual Studio 2008&#8212;9.0</p></li>
<li class="listitem"><p>Visual Studio 2005&#8212;8.0</p></li>
@@ -782,7 +794,7 @@ using msvc : [<span class="optional"><em class="replaceable"><code>version</code
<p>The compiler command should be specified using forward slashes,
and quoted.</p>
<p>The following options can be provided, using <code class="literal">&lt;<em class="replaceable"><code>option-name</code></em>&gt;<em class="replaceable"><code>option-value</code></em></code> syntax:</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">cflags</code></span></dt>
<dd><p>Specifies additional compiler flags that will be used when
compiling C sources.</p></dd>
@@ -836,7 +848,7 @@ using msvc : [<span class="optional"><em class="replaceable"><code>version</code
script has been explicitly specified for the current target
platform. Used setup script will be passed the target platform
identifier (x86, x86_amd64, x86_ia64, amd64 or ia64) as a
- arameter. If not specified a default script is chosen based on the
+ parameter. If not specified a default script is chosen based on the
used compiler binary, e.g. <span class="command"><strong>vcvars32.bat</strong></span> or
<span class="command"><strong>vsvars32.bat</strong></span>.</p></dd>
<dt>
@@ -850,14 +862,14 @@ using msvc : [<span class="optional"><em class="replaceable"><code>version</code
<div class="section">
<div class="titlepage"><div><div><h6 class="title">
<a name="v2.reference.tools.compiler.msvc.64"></a>64-bit support</h6></div></div></div>
-<a class="indexterm" name="idm45555007080288"></a><p>Starting with version 8.0, Microsoft Visual Studio can
+<a class="indexterm" name="idp519917840"></a><p>Starting with version 8.0, Microsoft Visual Studio can
generate binaries for 64-bit processor, both 64-bit flavours of x86
(codenamed AMD64/EM64T), and Itanium (codenamed IA64). In addition,
compilers that are itself run in 64-bit mode, for better
performance, are provided. The complete list of compiler
configurations are as follows (we abbreviate AMD64/EM64T to just
AMD64):</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem"><p>32-bit x86 host, 32-bit x86 target</p></li>
<li class="listitem"><p>32-bit x86 host, 64-bit AMD64 target</p></li>
<li class="listitem"><p>32-bit x86 host, 64-bit IA64 target</p></li>
@@ -897,7 +909,7 @@ using msvc : [<span class="optional"><em class="replaceable"><code>version</code
<div class="section">
<div class="titlepage"><div><div><h6 class="title">
<a name="v2.reference.tools.compiler.msvc.winrt"></a>Windows Runtime support</h6></div></div></div>
-<a class="indexterm" name="idm45555007063712"></a><p>
+<a class="indexterm" name="idp519933968"></a><p>
Starting with version 11.0, Microsoft Visual Studio can
produce binaries for Windows Store and Phone in addition to
traditional Win32 desktop. To specify which Windows API set
@@ -911,7 +923,7 @@ using msvc : [<span class="optional"><em class="replaceable"><code>version</code
the specified toolset determines what Windows version is
targeted. The following options are available:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem"><p>Windows 8.0: toolset=msvc-11.0 windows-api=store</p></li>
<li class="listitem"><p>Windows 8.1: toolset=msvc-12.0 windows-api=store</p></li>
<li class="listitem"><p>Windows Phone 8.0: toolset=msvc-11.0 windows-api=phone</p></li>
@@ -952,7 +964,7 @@ using intel-win : [<span class="optional"><em class="replaceable"><code>version<
(on Linux), or <span class="command"><strong>icc.exe</strong></span> (on Windows).
</p>
<p>The following options can be provided, using <code class="literal">&lt;<em class="replaceable"><code>option-name</code></em>&gt;<em class="replaceable"><code>option-value</code></em></code> syntax:</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">cflags</code></span></dt>
<dd><p>Specifies additional compiler flags that will be used when
compiling C sources.</p></dd>
@@ -967,7 +979,7 @@ using intel-win : [<span class="optional"><em class="replaceable"><code>version<
passed to the linker.</p></dd>
</dl></div>
<p>The Linux version supports the following additional options:</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">root</code></span></dt>
<dd><p>Specifies root directory of the compiler installation.
This option is necessary only if it is not possible to detect this
@@ -990,7 +1002,7 @@ using acc : [<span class="optional"><em class="replaceable"><code>version</code>
If the command is not specified, the <span class="command"><strong>aCC</strong></span>
binary will be searched in <code class="envar">PATH</code>.</p>
<p>The following options can be provided, using <code class="literal">&lt;<em class="replaceable"><code>option-name</code></em>&gt;<em class="replaceable"><code>option-value</code></em></code> syntax:</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">cflags</code></span></dt>
<dd><p>Specifies additional compiler flags that will be used when
compiling C sources.</p></dd>
@@ -1014,7 +1026,7 @@ using acc : [<span class="optional"><em class="replaceable"><code>version</code>
product and earlier version of it, running on Microsoft Windows.</p>
<p>The supported products are listed below. The version reported
by the command lines tools is also listed for reference.:</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem"><p>C++ Builder 2006&#8212;5.8.2</p></li>
<li class="listitem"><p>CBuilderX&#8212;5.6.5, 5.6.4 (depending on release)</p></li>
<li class="listitem"><p>CBuilder6&#8212;5.6.4</p></li>
@@ -1027,7 +1039,7 @@ using borland : [<span class="optional"><em class="replaceable"><code>version</c
<p>If the command is not specified, Boost.Build will search for
a binary named <span class="command"><strong>bcc32</strong></span> in <code class="envar">PATH</code>.</p>
<p>The following options can be provided, using <code class="literal">&lt;<em class="replaceable"><code>option-name</code></em>&gt;<em class="replaceable"><code>option-value</code></em></code> syntax:</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">cflags</code></span></dt>
<dd><p>Specifies additional compiler flags that will be used when
compiling C sources.</p></dd>
@@ -1057,7 +1069,7 @@ using como-linux : [<span class="optional"><em class="replaceable"><code>version
a binary named <span class="command"><strong>como</strong></span> in
<code class="envar">PATH</code>.</p>
<p>The following options can be provided, using <code class="literal">&lt;<em class="replaceable"><code>option-name</code></em>&gt;<em class="replaceable"><code>option-value</code></em></code> syntax:</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">cflags</code></span></dt>
<dd><p>Specifies additional compiler flags that will be used when
compiling C sources.</p></dd>
@@ -1084,7 +1096,7 @@ using como-linux : [<span class="optional"><em class="replaceable"><code>version
originally produced by Metrowerks and presently developed by
Freescale. Boost.Build supports only the versions of the compiler that
target x86 processors. All such versions were released by Metrowerks
- before aquisition and are not sold any longer. The last version known
+ before acquisition and are not sold any longer. The last version known
to work is 9.4.</p>
<p>The module is initialized using the following syntax:</p>
<pre class="programlisting">
@@ -1094,7 +1106,7 @@ using cw : [<span class="optional"><em class="replaceable"><code>version</code><
binary named <span class="command"><strong>mwcc</strong></span> in default installation paths and
in <code class="envar">PATH</code>.</p>
<p>The following options can be provided, using <code class="literal">&lt;<em class="replaceable"><code>option-name</code></em>&gt;<em class="replaceable"><code>option-value</code></em></code> syntax:</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">cflags</code></span></dt>
<dd><p>Specifies additional compiler flags that will be used when
compiling C sources.</p></dd>
@@ -1144,7 +1156,7 @@ using dmc : [<span class="optional"><em class="replaceable"><code>version</code>
a binary named <span class="command"><strong>dmc</strong></span> in
<code class="envar">PATH</code>.</p>
<p>The following options can be provided, using <code class="literal">&lt;<em class="replaceable"><code>option-name</code></em>&gt;<em class="replaceable"><code>option-value</code></em></code> syntax:</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">cflags</code></span></dt>
<dd><p>Specifies additional compiler flags that will be used when
compiling C sources.</p></dd>
@@ -1172,7 +1184,7 @@ using hp_cxx : [<span class="optional"><em class="replaceable"><code>version</co
<p>If the command is not specified, Boost.Build will search for
a binary named <span class="command"><strong>hp_cxx</strong></span> in <code class="envar">PATH</code>.</p>
<p>The following options can be provided, using <code class="literal">&lt;<em class="replaceable"><code>option-name</code></em>&gt;<em class="replaceable"><code>option-value</code></em></code> syntax:</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">cflags</code></span></dt>
<dd><p>Specifies additional compiler flags that will be used when
compiling C sources.</p></dd>
@@ -1203,7 +1215,7 @@ using sun : [<span class="optional"><em class="replaceable"><code>version</code>
<code class="envar">PATH</code>.</p>
<p>When using this compiler on complex C++ code, such as the
<a href="http://boost.org" target="_top">Boost C++ library</a>, it is
- recommended to specify the following options when intializing the
+ recommended to specify the following options when initializing the
<code class="computeroutput">sun</code> module:
</p>
<pre class="screen">
@@ -1212,7 +1224,7 @@ using sun : [<span class="optional"><em class="replaceable"><code>version</code>
<p> See the <a href="http://blogs.sun.com/sga/entry/command_line_options" target="_top">
Sun C++ Frontend Tales</a> for details.</p>
<p>The following options can be provided, using <code class="literal">&lt;<em class="replaceable"><code>option-name</code></em>&gt;<em class="replaceable"><code>option-value</code></em></code> syntax:</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">cflags</code></span></dt>
<dd><p>Specifies additional compiler flags that will be used when
compiling C sources.</p></dd>
@@ -1226,7 +1238,7 @@ using sun : [<span class="optional"><em class="replaceable"><code>version</code>
<dd><p>Specifies additional command line options that will be
passed to the linker.</p></dd>
</dl></div>
-<a class="indexterm" name="idm45555006881600"></a>
+<a class="indexterm" name="idp520116144"></a>
Starting with Sun Studio 12, you can create 64-bit applications
by using the <code class="computeroutput">address-model=64</code> property.
@@ -1251,8 +1263,8 @@ using vacpp ;</pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idm45555006872448"></a>Third-party libraries</h4></div></div></div>
-<div class="toc"><dl class="toc">
+<a name="idp520125360"></a>Third-party libraries</h4></div></div></div>
+<div class="toc"><dl>
<dt><span class="section"><a href="reference.html#bbv2.reference.tools.libraries.stlport">STLport library</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.tools.libraries.zlib">zlib</a></span></dt>
</dl></div>
@@ -1261,9 +1273,9 @@ using vacpp ;</pre>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="bbv2.reference.tools.libraries.stlport"></a>STLport library</h5></div></div></div>
-<a class="indexterm" name="idm45555006870048"></a><p>The <a href="http://stlport.org" target="_top">STLport</a> library
+<a class="indexterm" name="idp520127760"></a><p>The <a href="http://stlport.org" target="_top">STLport</a> library
is an alternative implementation of C++ runtime library. Boost.Build
- supports using that library on Windows platfrom. Linux is
+ supports using that library on Windows platform. Linux is
hampered by different naming of libraries in each STLport
version and is not officially supported.</p>
<p>Before using STLport, you need to configure it in
@@ -1290,7 +1302,7 @@ using stlport : [<span class="optional"><em class="replaceable"><code>version</c
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="bbv2.reference.tools.libraries.zlib"></a>zlib</h5></div></div></div>
-<a class="indexterm" name="idm45555006859024"></a><p>Provides support for the
+<a class="indexterm" name="idp520138784"></a><p>Provides support for the
<a href="http://www.zlib.net" target="_top">zlib</a> library. zlib
can be configured either to use precompiled binaries or to
build the library from source.</p>
@@ -1299,7 +1311,7 @@ using stlport : [<span class="optional"><em class="replaceable"><code>version</c
using zlib : [<span class="optional"><em class="replaceable"><code>version</code></em></span>] : [<span class="optional"><em class="replaceable"><code>options</code></em></span>] : [<span class="optional"><em class="replaceable"><code>condition</code></em></span>] : [<span class="optional"><em class="replaceable"><code>is-default</code></em></span>] ;
</pre>
<p>Options for using a prebuilt library:</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">search</code></span></dt>
<dd><p>The directory containing the zlib binaries.</p></dd>
<dt><span class="term"><code class="literal">name</code></span></dt>
@@ -1311,7 +1323,7 @@ using zlib : [<span class="optional"><em class="replaceable"><code>version</code
variables ZLIB_LIBRARY_PATH, ZLIB_NAME, and ZLIB_INCLUDE will be
used instead.</p>
<p>Options for building zlib from source:</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">source</code></span></dt>
<dd><p>The zlib source directory. Defaults to the
environmental variable ZLIB_SOURCE.</p></dd>
@@ -1340,8 +1352,8 @@ using zlib : 1.2.7 : : &lt;toolset&gt;gcc ;
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idm45555006836320"></a>Documentation tools</h4></div></div></div>
-<div class="toc"><dl class="toc">
+<a name="idp520161456"></a>Documentation tools</h4></div></div></div>
+<div class="toc"><dl>
<dt><span class="section"><a href="reference.html#bbv2.reference.tools.doc.xsltproc">xsltproc</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.tools.doc.boostbook">boostbook</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.tools.doc.doxygen">doxygen</a></span></dt>
@@ -1354,7 +1366,7 @@ using zlib : 1.2.7 : : &lt;toolset&gt;gcc ;
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="bbv2.reference.tools.doc.xsltproc"></a>xsltproc</h5></div></div></div>
-<a class="indexterm" name="idm45555006833968"></a><p>To use xsltproc, you first need to configure it using the following syntax:</p>
+<a class="indexterm" name="idp520163856"></a><p>To use xsltproc, you first need to configure it using the following syntax:</p>
<pre class="programlisting">
using xsltproc : [<span class="optional"><em class="replaceable"><code>xsltproc</code></em></span>] ;
</pre>
@@ -1365,7 +1377,7 @@ using xsltproc : [<span class="optional"><em class="replaceable"><code>xsltproc<
Otherwise, xsltproc will be searched for in PATH.
</p>
<p>The following options can be provided, using <code class="literal">&lt;<em class="replaceable"><code>option-name</code></em>&gt;<em class="replaceable"><code>option-value</code></em></code> syntax:</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">xsl:param</code></span></dt>
<dd><p>Values should have the form
<em class="replaceable"><code>name</code></em>=<em class="replaceable"><code>value</code></em></p></dd>
@@ -1378,7 +1390,7 @@ using xsltproc : [<span class="optional"><em class="replaceable"><code>xsltproc<
these operate on jam targets and are intended to be used by another
toolset, such as boostbook, rather than directly by users.
</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">xslt</code></span></dt>
<dd>
<pre class="programlisting">
@@ -1402,7 +1414,7 @@ rule xslt-dir ( target : source stylesheet : properties * : dirname )
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="bbv2.reference.tools.doc.boostbook"></a>boostbook</h5></div></div></div>
-<a class="indexterm" name="idm45555006808032"></a><p>To use boostbook, you first need to configure it using the following syntax:</p>
+<a class="indexterm" name="idp520189792"></a><p>To use boostbook, you first need to configure it using the following syntax:</p>
<pre class="programlisting">
using boostbook : [<span class="optional"><em class="replaceable"><code>docbook-xsl-dir</code></em></span>] : [<span class="optional"><em class="replaceable"><code>docbook-dtd-dir</code></em></span>] : [<span class="optional"><em class="replaceable"><code>boostbook-dir</code></em></span>] ;
</pre>
@@ -1426,7 +1438,7 @@ using boostbook : [<span class="optional"><em class="replaceable"><code>docbook-
it also depends on fop.
</p>
<p>The following options can be provided, using <code class="literal">&lt;<em class="replaceable"><code>option-name</code></em>&gt;<em class="replaceable"><code>option-value</code></em></code> syntax:</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">format</code></span></dt>
<dd>
<p>
@@ -1443,7 +1455,7 @@ using boostbook : [<span class="optional"><em class="replaceable"><code>docbook-
</dl></div>
<p>The boostbook module defines a rule for creating a target
following the common syntax.</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">boostbook</code></span></dt>
<dd>
<pre class="programlisting">
@@ -1456,7 +1468,7 @@ rule boostbook ( target-name : sources * : requirements * : default-build * )
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="bbv2.reference.tools.doc.doxygen"></a>doxygen</h5></div></div></div>
-<a class="indexterm" name="idm45555006772640"></a><p>To use doxygen, you first need to configure it using the following syntax:</p>
+<a class="indexterm" name="idp520225248"></a><p>To use doxygen, you first need to configure it using the following syntax:</p>
<pre class="programlisting">
using doxygen : [<span class="optional"><em class="replaceable"><code>name</code></em></span>] ;
</pre>
@@ -1468,7 +1480,7 @@ using doxygen : [<span class="optional"><em class="replaceable"><code>name</code
generating BoostBook XML.
</p>
<p>The following options can be provided, using <code class="literal">&lt;<em class="replaceable"><code>option-name</code></em>&gt;<em class="replaceable"><code>option-value</code></em></code> syntax:</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">doxygen:param</code></span></dt>
<dd><p>All the values of <code class="literal">doxygen:param</code>
are added to the doxyfile.</p></dd>
@@ -1499,7 +1511,7 @@ using doxygen : [<span class="optional"><em class="replaceable"><code>name</code
</dl></div>
<p>The doxygen module defines a rule for creating a target
following the common syntax.</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">doxygen</code></span></dt>
<dd>
<pre class="programlisting">
@@ -1515,7 +1527,7 @@ rule doxygen ( target : sources * : requirements * : default-build * : usage-req
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="bbv2.reference.tools.doc.quickbook"></a>quickbook</h5></div></div></div>
-<a class="indexterm" name="idm45555006747136"></a><p>The quickbook module provides a generator to convert from
+<a class="indexterm" name="idp520250816"></a><p>The quickbook module provides a generator to convert from
Quickbook to BoostBook XML.</p>
<p>To use quickbook, you first need to configure it using the following syntax:</p>
<pre class="programlisting">
@@ -1531,7 +1543,7 @@ using quickbook : [<span class="optional"><em class="replaceable"><code>command<
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="bbv2.reference.tools.doc.fop"></a>fop</h5></div></div></div>
-<a class="indexterm" name="idm45555006741856"></a><p>The fop module provides generators to convert from
+<a class="indexterm" name="idp520256160"></a><p>The fop module provides generators to convert from
XSL formatting objects to Postscript and PDF.</p>
<p>To use fop, you first need to configure it using the following syntax:</p>
<pre class="programlisting">
@@ -1553,7 +1565,7 @@ using fop : [<span class="optional"><em class="replaceable"><code>fop-command</c
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="bbv2.reference.modules"></a>Builtin modules</h3></div></div></div>
-<div class="toc"><dl class="toc">
+<div class="toc"><dl>
<dt><span class="section"><a href="reference.html#bbv2.reference.modules.modules">modules</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.modules.path">path</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.modules.regex">regex</a></span></dt>
@@ -1568,7 +1580,7 @@ using fop : [<span class="optional"><em class="replaceable"><code>fop-command</c
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.modules.modules"></a>modules</h4></div></div></div>
-<a class="indexterm" name="idm45555006732128"></a><p>
+<a class="indexterm" name="idp520265888"></a><p>
The <code class="computeroutput">modules</code> module defines basic functionality
for handling modules.
</p>
@@ -1618,7 +1630,7 @@ using fop : [<span class="optional"><em class="replaceable"><code>fop-command</c
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
-<a name="bbv2.reference.modules.modules.binding"></a><a class="indexterm" name="idm45555006722304"></a><code class="computeroutput"><span class="keyword">rule</span> binding <span class="special">(</span> module-name <span class="special">)</span></code><p>Returns the filesystem binding of the given module.</p>
+<a name="bbv2.reference.modules.modules.binding"></a><a class="indexterm" name="idp520275712"></a><code class="computeroutput"><span class="keyword">rule</span> binding <span class="special">(</span> module-name <span class="special">)</span></code><p>Returns the filesystem binding of the given module.</p>
<p>For example, a module can get its own location with:
</p>
<pre class="programlisting">me <span class="special">=</span> <span class="special">[</span> modules.binding $(__name__) <span class="special">]</span> <span class="special">;</span></pre>
@@ -1626,7 +1638,7 @@ using fop : [<span class="optional"><em class="replaceable"><code>fop-command</c
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.modules.poke"></a><a class="indexterm" name="idm45555006713488"></a><code class="computeroutput"><span class="keyword">rule</span> poke <span class="special">(</span> module-name ? <span class="special">:</span> variables + <span class="special">:</span> value * <span class="special">)</span></code><p>Sets the module-local value of a variable.</p>
+<a name="bbv2.reference.modules.modules.poke"></a><a class="indexterm" name="idp520284592"></a><code class="computeroutput"><span class="keyword">rule</span> poke <span class="special">(</span> module-name ? <span class="special">:</span> variables + <span class="special">:</span> value * <span class="special">)</span></code><p>Sets the module-local value of a variable.</p>
<p>For example, to set a variable in the global module:
</p>
<pre class="programlisting">modules.poke <span class="special">:</span> ZLIB_INCLUDE <span class="special">:</span> /usr/local/include <span class="special">;</span></pre>
@@ -1634,7 +1646,7 @@ using fop : [<span class="optional"><em class="replaceable"><code>fop-command</c
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.modules.peek"></a><a class="indexterm" name="idm45555006703888"></a><code class="computeroutput"><span class="keyword">rule</span> peek <span class="special">(</span> module-name ? <span class="special">:</span> variables + <span class="special">)</span></code><p>Returns the module-local value of a variable.</p>
+<a name="bbv2.reference.modules.modules.peek"></a><a class="indexterm" name="idp520294192"></a><code class="computeroutput"><span class="keyword">rule</span> peek <span class="special">(</span> module-name ? <span class="special">:</span> variables + <span class="special">)</span></code><p>Returns the module-local value of a variable.</p>
<p>
For example, to read a variable from the global module:
</p>
@@ -1643,7 +1655,7 @@ using fop : [<span class="optional"><em class="replaceable"><code>fop-command</c
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.modules.call-in"></a><a class="indexterm" name="idm45555006693088"></a><code class="computeroutput"><span class="keyword">rule</span> call-in <span class="special">(</span> module-name ? <span class="special">:</span> rule-name args * <span class="special">:</span> * <span class="special">)</span> </code><p>Call the given rule locally in the given module. Use
+<a name="bbv2.reference.modules.modules.call-in"></a><a class="indexterm" name="idp520304944"></a><code class="computeroutput"><span class="keyword">rule</span> call-in <span class="special">(</span> module-name ? <span class="special">:</span> rule-name args * <span class="special">:</span> * <span class="special">)</span> </code><p>Call the given rule locally in the given module. Use
this for rules accepting rule names as arguments, so that
the passed rule may be invoked in the context of the rule's
caller (for example, if the rule accesses module globals or
@@ -1678,23 +1690,23 @@ using fop : [<span class="optional"><em class="replaceable"><code>fop-command</c
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.modules.load"></a><a class="indexterm" name="idm45555006666352"></a><code class="computeroutput"><span class="keyword">rule</span> load <span class="special">(</span> module-name <span class="special">:</span> filename ? <span class="special">:</span> search * <span class="special">)</span></code><p>Load the indicated module if it is not already loaded.</p>
-<div class="variablelist"><dl class="variablelist">
+<a name="bbv2.reference.modules.modules.load"></a><a class="indexterm" name="idp520331616"></a><code class="computeroutput"><span class="keyword">rule</span> load <span class="special">(</span> module-name <span class="special">:</span> filename ? <span class="special">:</span> search * <span class="special">)</span></code><p>Load the indicated module if it is not already loaded.</p>
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">module-name</code></span></dt>
<dd><p>Name of module to load.</p></dd>
</dl></div>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">filename</code></span></dt>
<dd><p>(partial) path to file; Defaults to <code class="computeroutput">$(module-name).jam</code></p></dd>
</dl></div>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">search</code></span></dt>
<dd><p>Directories in which to search for filename.
Defaults to <code class="computeroutput">$(BOOST_BUILD_PATH)</code>.</p></dd>
</dl></div>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.modules.import"></a><a class="indexterm" name="idm45555006652160"></a><code class="computeroutput"><span class="keyword">rule</span> import <span class="special">(</span> module-names + <span class="special">:</span> rules-opt * <span class="special">:</span> rename-opt * <span class="special">)</span></code><p>Load the indicated module and import rule names into the
+<a name="bbv2.reference.modules.modules.import"></a><a class="indexterm" name="idp520345872"></a><code class="computeroutput"><span class="keyword">rule</span> import <span class="special">(</span> module-names + <span class="special">:</span> rules-opt * <span class="special">:</span> rename-opt * <span class="special">)</span></code><p>Load the indicated module and import rule names into the
current module. Any members of <code class="computeroutput">rules-opt</code> will be
available without qualification in the caller's module. Any
members of <code class="computeroutput">rename-opt</code> will be taken as the names
@@ -1723,7 +1735,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.modules.clone-rules"></a><a class="indexterm" name="idm45555006633760"></a><code class="computeroutput"><span class="keyword">rule</span> clone-rules <span class="special">(</span> source-module target-module <span class="special">)</span></code><p>Define exported copies in <code class="computeroutput">$(target-module)</code>
+<a name="bbv2.reference.modules.modules.clone-rules"></a><a class="indexterm" name="idp520364208"></a><code class="computeroutput"><span class="keyword">rule</span> clone-rules <span class="special">(</span> source-module target-module <span class="special">)</span></code><p>Define exported copies in <code class="computeroutput">$(target-module)</code>
of all rules exported from <code class="computeroutput">$(source-module)</code>. Also
make them available in the global module with qualification,
so that it is just as though the rules were defined originally
@@ -1734,12 +1746,12 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.modules.path"></a>path</h4></div></div></div>
-<a class="indexterm" name="idm45555006625680"></a><p>
+<a class="indexterm" name="idp520372224"></a><p>
Performs various path manipulations. Paths are always in a 'normalized'
representation. In it, a path may be either:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem"><p><code class="computeroutput">'.'</code>, or</p></li>
<li class="listitem"><p>
<code class="computeroutput">['/'] [ ( '..' '/' )* (token '/')* token ]</code>
@@ -1753,25 +1765,25 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
-<a name="bbv2.reference.modules.path.make"></a><a class="indexterm" name="idm45555006618256"></a><code class="computeroutput"><span class="keyword">rule</span> make <span class="special">(</span> native <span class="special">)</span></code><p>Converts the native path into normalized form.</p>
+<a name="bbv2.reference.modules.path.make"></a><a class="indexterm" name="idp520379584"></a><code class="computeroutput"><span class="keyword">rule</span> make <span class="special">(</span> native <span class="special">)</span></code><p>Converts the native path into normalized form.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.native"></a><a class="indexterm" name="idm45555006612416"></a><code class="computeroutput"><span class="keyword">rule</span> native <span class="special">(</span> path <span class="special">)</span></code><p>Builds the native representation of the path.</p>
+<a name="bbv2.reference.modules.path.native"></a><a class="indexterm" name="idp520385424"></a><code class="computeroutput"><span class="keyword">rule</span> native <span class="special">(</span> path <span class="special">)</span></code><p>Builds the native representation of the path.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.is-rooted"></a><a class="indexterm" name="idm45555006607056"></a><code class="computeroutput"><span class="keyword">rule</span> is-rooted <span class="special">(</span> path <span class="special">)</span></code><p>Tests if a path is rooted.</p>
+<a name="bbv2.reference.modules.path.is-rooted"></a><a class="indexterm" name="idp520390848"></a><code class="computeroutput"><span class="keyword">rule</span> is-rooted <span class="special">(</span> path <span class="special">)</span></code><p>Tests if a path is rooted.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.has-parent"></a><a class="indexterm" name="idm45555006601648"></a><code class="computeroutput"><span class="keyword">rule</span> has-parent <span class="special">(</span> path <span class="special">)</span></code><p>Tests if a path has a parent.</p>
+<a name="bbv2.reference.modules.path.has-parent"></a><a class="indexterm" name="idp520396256"></a><code class="computeroutput"><span class="keyword">rule</span> has-parent <span class="special">(</span> path <span class="special">)</span></code><p>Tests if a path has a parent.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.basename"></a><a class="indexterm" name="idm45555006596304"></a><code class="computeroutput"><span class="keyword">rule</span> basename <span class="special">(</span> path <span class="special">)</span></code><p>Returns the path without any directory components.</p>
+<a name="bbv2.reference.modules.path.basename"></a><a class="indexterm" name="idp520401600"></a><code class="computeroutput"><span class="keyword">rule</span> basename <span class="special">(</span> path <span class="special">)</span></code><p>Returns the path without any directory components.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.parent"></a><a class="indexterm" name="idm45555006590944"></a><code class="computeroutput"><span class="keyword">rule</span> parent <span class="special">(</span> path <span class="special">)</span></code><p>Returns the parent directory of the path. If no parent exists, an error is issued.</p>
+<a name="bbv2.reference.modules.path.parent"></a><a class="indexterm" name="idp520407024"></a><code class="computeroutput"><span class="keyword">rule</span> parent <span class="special">(</span> path <span class="special">)</span></code><p>Returns the parent directory of the path. If no parent exists, an error is issued.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.reverse"></a><a class="indexterm" name="idm45555006585552"></a><code class="computeroutput"><span class="keyword">rule</span> reverse <span class="special">(</span> path <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.reverse"></a><a class="indexterm" name="idp520412416"></a><code class="computeroutput"><span class="keyword">rule</span> reverse <span class="special">(</span> path <span class="special">)</span></code><p>
Returns <code class="computeroutput">path2</code> such that
<code class="computeroutput"><span class="special">[</span> join path path2 <span class="special">]</span> <span class="special">=</span> "."</code>.
The path may not contain <code class="computeroutput">".."</code>
@@ -1779,30 +1791,30 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.join"></a><a class="indexterm" name="idm45555006576160"></a><code class="computeroutput"><span class="keyword">rule</span> join <span class="special">(</span> elements + <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.join"></a><a class="indexterm" name="idp520421808"></a><code class="computeroutput"><span class="keyword">rule</span> join <span class="special">(</span> elements + <span class="special">)</span></code><p>
Concatenates the passed path elements. Generates an error if any
element other than the first one is rooted. Skips any empty or
undefined path elements.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.root"></a><a class="indexterm" name="idm45555006570592"></a><code class="computeroutput"><span class="keyword">rule</span> root <span class="special">(</span> path root <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.root"></a><a class="indexterm" name="idp520427376"></a><code class="computeroutput"><span class="keyword">rule</span> root <span class="special">(</span> path root <span class="special">)</span></code><p>
If <code class="computeroutput">path</code> is relative, it is rooted at
<code class="computeroutput">root</code>. Otherwise, it is unchanged.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.pwd"></a><a class="indexterm" name="idm45555006563728"></a><code class="computeroutput"><span class="keyword">rule</span> pwd <span class="special">(</span> <span class="special">)</span></code><p>Returns the current working directory.</p>
+<a name="bbv2.reference.modules.path.pwd"></a><a class="indexterm" name="idp520434192"></a><code class="computeroutput"><span class="keyword">rule</span> pwd <span class="special">(</span> <span class="special">)</span></code><p>Returns the current working directory.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.glob"></a><a class="indexterm" name="idm45555006558336"></a><code class="computeroutput"><span class="keyword">rule</span> glob <span class="special">(</span> dirs * <span class="special">:</span> patterns + <span class="special">:</span> exclude-patterns * <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.glob"></a><a class="indexterm" name="idp520439520"></a><code class="computeroutput"><span class="keyword">rule</span> glob <span class="special">(</span> dirs * <span class="special">:</span> patterns + <span class="special">:</span> exclude-patterns * <span class="special">)</span></code><p>
Returns the list of files matching the given pattern in the specified
directory. Both directories and patterns are supplied as portable paths. Each
pattern should be a non-absolute path, and can't contain "." or ".." elements.
Each slash separated element of a pattern can contain the following special
characters:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem"><p>'?' matches any character</p></li>
<li class="listitem"><p>'*' matches an arbitrary number of characters</p></li>
</ul></div>
@@ -1820,7 +1832,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.glob-tree"></a><a class="indexterm" name="idm45555006544400"></a><code class="computeroutput"><span class="keyword">rule</span> glob-tree <span class="special">(</span> roots * <span class="special">:</span> patterns + <span class="special">:</span> exclude-patterns * <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.glob-tree"></a><a class="indexterm" name="idp520453584"></a><code class="computeroutput"><span class="keyword">rule</span> glob-tree <span class="special">(</span> roots * <span class="special">:</span> patterns + <span class="special">:</span> exclude-patterns * <span class="special">)</span></code><p>
Recursive version of <a class="link" href="reference.html#bbv2.reference.modules.path.glob">glob</a>.
Builds the glob of files while also searching in
the subdirectories of the given roots. An optional set of exclusion patterns
@@ -1830,10 +1842,10 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.exists"></a><a class="indexterm" name="idm45555006536448"></a><code class="computeroutput"><span class="keyword">rule</span> exists <span class="special">(</span> file <span class="special">)</span></code><p>Returns true if the specified file exists.</p>
+<a name="bbv2.reference.modules.path.exists"></a><a class="indexterm" name="idp520461584"></a><code class="computeroutput"><span class="keyword">rule</span> exists <span class="special">(</span> file <span class="special">)</span></code><p>Returns true if the specified file exists.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.all-parents"></a><a class="indexterm" name="idm45555006531024"></a><code class="computeroutput"><span class="keyword">rule</span> all-parents <span class="special">(</span> path <span class="special">:</span> upper_limit ? <span class="special">:</span> cwd ? <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.all-parents"></a><a class="indexterm" name="idp520466944"></a><code class="computeroutput"><span class="keyword">rule</span> all-parents <span class="special">(</span> path <span class="special">:</span> upper_limit ? <span class="special">:</span> cwd ? <span class="special">)</span></code><p>
Find out the absolute name of path and return the list of all the parents,
starting with the immediate one. Parents are returned as relative names. If
<code class="computeroutput">upper_limit</code> is specified, directories above it
@@ -1841,7 +1853,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.glob-in-parents"></a><a class="indexterm" name="idm45555006523344"></a><code class="computeroutput"><span class="keyword">rule</span> glob-in-parents <span class="special">(</span> dir <span class="special">:</span> patterns + <span class="special">:</span> upper-limit ? <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.glob-in-parents"></a><a class="indexterm" name="idp520474624"></a><code class="computeroutput"><span class="keyword">rule</span> glob-in-parents <span class="special">(</span> dir <span class="special">:</span> patterns + <span class="special">:</span> upper-limit ? <span class="special">)</span></code><p>
Search for <code class="computeroutput">patterns</code> in parent directories
of <code class="computeroutput">dir</code>, up to and including
<code class="computeroutput">upper_limit</code>, if it is specified, or
@@ -1849,23 +1861,23 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.relative"></a><a class="indexterm" name="idm45555006514288"></a><code class="computeroutput"><span class="keyword">rule</span> relative <span class="special">(</span> child parent <span class="special">:</span> no-error ? <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.relative"></a><a class="indexterm" name="idp520483616"></a><code class="computeroutput"><span class="keyword">rule</span> relative <span class="special">(</span> child parent <span class="special">:</span> no-error ? <span class="special">)</span></code><p>
Assuming <code class="computeroutput">child</code> is a subdirectory of
<code class="computeroutput">parent</code>, return the relative path from
<code class="computeroutput">parent</code> to <code class="computeroutput">child</code>.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.relative-to"></a><a class="indexterm" name="idm45555006505280"></a><code class="computeroutput"><span class="keyword">rule</span> relative-to <span class="special">(</span> path1 path2 <span class="special">)</span></code><p>Returns the minimal path to path2 that is relative path1.</p>
+<a name="bbv2.reference.modules.path.relative-to"></a><a class="indexterm" name="idp520492560"></a><code class="computeroutput"><span class="keyword">rule</span> relative-to <span class="special">(</span> path1 path2 <span class="special">)</span></code><p>Returns the minimal path to path2 that is relative path1.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.programs-path"></a><a class="indexterm" name="idm45555006499856"></a><code class="computeroutput"><span class="keyword">rule</span> programs-path <span class="special">(</span> <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.programs-path"></a><a class="indexterm" name="idp520498048"></a><code class="computeroutput"><span class="keyword">rule</span> programs-path <span class="special">(</span> <span class="special">)</span></code><p>
Returns the list of paths which are used by the operating system for
looking up programs.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.mkdirs"></a><a class="indexterm" name="idm45555006494448"></a><code class="computeroutput"><span class="keyword">rule</span> makedirs <span class="special">(</span> path <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.mkdirs"></a><a class="indexterm" name="idp520503520"></a><code class="computeroutput"><span class="keyword">rule</span> makedirs <span class="special">(</span> path <span class="special">)</span></code><p>
Creates a directory and all parent directories that do not
already exist.
</p>
@@ -1875,10 +1887,10 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.modules.regex"></a>regex</h4></div></div></div>
-<a class="indexterm" name="idm45555006488304"></a><p>
+<a class="indexterm" name="idp520509664"></a><p>
Contains rules for string processing using regular expressions.
</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem"><p>
<code class="computeroutput">"x*"</code> matches the pattern
<code class="computeroutput">"x"</code> zero or more times.
@@ -1924,7 +1936,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</ul></div>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
-<a name="bbv2.reference.modules.regex.split"></a><a class="indexterm" name="idm45555006461264"></a><code class="computeroutput"><span class="keyword">rule</span> split <span class="special">(</span> string separator <span class="special">)</span></code><p>Returns a list of the following substrings:
+<a name="bbv2.reference.modules.regex.split"></a><a class="indexterm" name="idp520536656"></a><code class="computeroutput"><span class="keyword">rule</span> split <span class="special">(</span> string separator <span class="special">)</span></code><p>Returns a list of the following substrings:
</p>
<div class="orderedlist"><ol class="orderedlist" type="a">
<li class="listitem"><p>from beginning till the first occurrence of
@@ -1942,34 +1954,34 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.regex.split-list"></a><a class="indexterm" name="idm45555006450512"></a><code class="computeroutput"><span class="keyword">rule</span> split-list <span class="special">(</span> list * <span class="special">:</span> separator <span class="special">)</span></code><p>Returns the concatenated results of applying
+<a name="bbv2.reference.modules.regex.split-list"></a><a class="indexterm" name="idp520547408"></a><code class="computeroutput"><span class="keyword">rule</span> split-list <span class="special">(</span> list * <span class="special">:</span> separator <span class="special">)</span></code><p>Returns the concatenated results of applying
<a class="link" href="reference.html#bbv2.reference.modules.regex.split">regex.split</a>
to every element of the list using the separator pattern.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.regex.match"></a><a class="indexterm" name="idm45555006443136"></a><code class="computeroutput"><span class="keyword">rule</span> match <span class="special">(</span> pattern <span class="special">:</span> string <span class="special">:</span> indices * <span class="special">)</span></code><p>Match <code class="computeroutput">string</code> against
+<a name="bbv2.reference.modules.regex.match"></a><a class="indexterm" name="idp520554848"></a><code class="computeroutput"><span class="keyword">rule</span> match <span class="special">(</span> pattern <span class="special">:</span> string <span class="special">:</span> indices * <span class="special">)</span></code><p>Match <code class="computeroutput">string</code> against
<code class="computeroutput">pattern</code>, and return the elements
indicated by <code class="computeroutput">indices</code>.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.regex.transform"></a><a class="indexterm" name="idm45555006433760"></a><code class="computeroutput"><span class="keyword">rule</span> transform <span class="special">(</span> list * <span class="special">:</span> pattern <span class="special">:</span> indices * <span class="special">)</span></code><p>Matches all elements of <code class="computeroutput">list</code> against
+<a name="bbv2.reference.modules.regex.transform"></a><a class="indexterm" name="idp520564160"></a><code class="computeroutput"><span class="keyword">rule</span> transform <span class="special">(</span> list * <span class="special">:</span> pattern <span class="special">:</span> indices * <span class="special">)</span></code><p>Matches all elements of <code class="computeroutput">list</code> against
the <code class="computeroutput">pattern</code> and returns a list of elements
indicated by <code class="computeroutput">indices</code> of all successful
matches. If <code class="computeroutput">indices</code> is omitted returns a list
of first parenthesized groups of all successful matches.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.regex.escape"></a><a class="indexterm" name="idm45555006423552"></a><code class="computeroutput"><span class="keyword">rule</span> escape <span class="special">(</span> string <span class="special">:</span> symbols <span class="special">:</span> escape-symbol <span class="special">)</span></code><p>Escapes all of the characters in <code class="computeroutput">symbols</code>
+<a name="bbv2.reference.modules.regex.escape"></a><a class="indexterm" name="idp520574384"></a><code class="computeroutput"><span class="keyword">rule</span> escape <span class="special">(</span> string <span class="special">:</span> symbols <span class="special">:</span> escape-symbol <span class="special">)</span></code><p>Escapes all of the characters in <code class="computeroutput">symbols</code>
using the escape symbol <code class="computeroutput">escape-symbol</code> for
the given string, and returns the escaped string.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.regex.replace"></a><a class="indexterm" name="idm45555006414912"></a><code class="computeroutput"><span class="keyword">rule</span> replace <span class="special">(</span> string match replacement <span class="special">)</span></code><p>Replaces occurrences of a match string in a given string and
+<a name="bbv2.reference.modules.regex.replace"></a><a class="indexterm" name="idp520583024"></a><code class="computeroutput"><span class="keyword">rule</span> replace <span class="special">(</span> string match replacement <span class="special">)</span></code><p>Replaces occurrences of a match string in a given string and
returns the new string. The match string can be a regex expression.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.regex.replace-list"></a><a class="indexterm" name="idm45555006408992"></a><code class="computeroutput"><span class="keyword">rule</span> replace-list <span class="special">(</span> list * <span class="special">:</span> match <span class="special">:</span> replacement <span class="special">)</span></code><p>Replaces occurrences of a match string in a given list of strings
+<a name="bbv2.reference.modules.regex.replace-list"></a><a class="indexterm" name="idp520589008"></a><code class="computeroutput"><span class="keyword">rule</span> replace-list <span class="special">(</span> list * <span class="special">:</span> match <span class="special">:</span> replacement <span class="special">)</span></code><p>Replaces occurrences of a match string in a given list of strings
and returns a list of new strings. The match string can be a regex
expression.
</p>
@@ -1980,7 +1992,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.modules.sequence"></a>sequence</h4></div></div></div>
-<a class="indexterm" name="idm45555006399824"></a><p>
+<a class="indexterm" name="idp520598176"></a><p>
Various useful list functions. Note that algorithms in this module
execute largely in the caller's module namespace, so that local
rules can be used as function objects. Also note that most predicates
@@ -1990,50 +2002,50 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.filter"></a><a class="indexterm" name="idm45555006395984"></a><code class="computeroutput"><span class="keyword">rule</span> filter <span class="special">(</span> predicate + <span class="special">:</span> sequence * <span class="special">)</span></code><p>Return the elements <code class="computeroutput">e</code> of
+<a name="bbv2.reference.modules.sequence.filter"></a><a class="indexterm" name="idp520602016"></a><code class="computeroutput"><span class="keyword">rule</span> filter <span class="special">(</span> predicate + <span class="special">:</span> sequence * <span class="special">)</span></code><p>Return the elements <code class="computeroutput">e</code> of
<code class="computeroutput">$(sequence)</code> for which
<code class="computeroutput"><span class="special">[</span> $(predicate) e <span class="special">]</span></code> has a non-null value.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.transform"></a><a class="indexterm" name="idm45555006386240"></a><code class="computeroutput"><span class="keyword">rule</span> transform <span class="special">(</span> function + <span class="special">:</span> sequence * <span class="special">)</span></code><p>Return a new sequence consisting of
+<a name="bbv2.reference.modules.sequence.transform"></a><a class="indexterm" name="idp520611696"></a><code class="computeroutput"><span class="keyword">rule</span> transform <span class="special">(</span> function + <span class="special">:</span> sequence * <span class="special">)</span></code><p>Return a new sequence consisting of
<code class="computeroutput"><span class="special">[</span> $(function) $(e) <span class="special">]</span></code> for each element
<code class="computeroutput">e</code> of <code class="computeroutput">$(sequence)</code>.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.reverse"></a><a class="indexterm" name="idm45555006376496"></a><code class="computeroutput"><span class="keyword">rule</span> reverse <span class="special">(</span> s * <span class="special">)</span></code><p>Returns the elements of <code class="computeroutput">s</code> in
+<a name="bbv2.reference.modules.sequence.reverse"></a><a class="indexterm" name="idp520621376"></a><code class="computeroutput"><span class="keyword">rule</span> reverse <span class="special">(</span> s * <span class="special">)</span></code><p>Returns the elements of <code class="computeroutput">s</code> in
reverse order.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.insertion-sort"></a><a class="indexterm" name="idm45555006369920"></a><code class="computeroutput"><span class="keyword">rule</span> insertion-sort <span class="special">(</span> s * <span class="special">:</span> ordered * <span class="special">)</span></code><p>Insertion-sort <code class="computeroutput">s</code> using the
+<a name="bbv2.reference.modules.sequence.insertion-sort"></a><a class="indexterm" name="idp520627952"></a><code class="computeroutput"><span class="keyword">rule</span> insertion-sort <span class="special">(</span> s * <span class="special">:</span> ordered * <span class="special">)</span></code><p>Insertion-sort <code class="computeroutput">s</code> using the
BinaryPredicate <code class="computeroutput">ordered</code>.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.merge"></a><a class="indexterm" name="idm45555006362080"></a><code class="computeroutput"><span class="keyword">rule</span> merge <span class="special">(</span> s1 * <span class="special">:</span> s2 * <span class="special">:</span> ordered * <span class="special">)</span></code><p>Merge two ordered sequences using the BinaryPredicate
+<a name="bbv2.reference.modules.sequence.merge"></a><a class="indexterm" name="idp520635792"></a><code class="computeroutput"><span class="keyword">rule</span> merge <span class="special">(</span> s1 * <span class="special">:</span> s2 * <span class="special">:</span> ordered * <span class="special">)</span></code><p>Merge two ordered sequences using the BinaryPredicate
<code class="computeroutput">ordered</code>.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.join"></a><a class="indexterm" name="idm45555006354288"></a><code class="computeroutput"><span class="keyword">rule</span> join <span class="special">(</span> s * <span class="special">:</span> joint ? <span class="special">)</span></code><p>Join the elements of <code class="computeroutput">s</code> into one
+<a name="bbv2.reference.modules.sequence.join"></a><a class="indexterm" name="idp520643712"></a><code class="computeroutput"><span class="keyword">rule</span> join <span class="special">(</span> s * <span class="special">:</span> joint ? <span class="special">)</span></code><p>Join the elements of <code class="computeroutput">s</code> into one
long string. If <code class="computeroutput">joint</code> is supplied, it
is used as a separator.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.length"></a><a class="indexterm" name="idm45555006346336"></a><code class="computeroutput"><span class="keyword">rule</span> length <span class="special">(</span> s * <span class="special">)</span></code><p>Find the length of any sequence.</p>
+<a name="bbv2.reference.modules.sequence.length"></a><a class="indexterm" name="idp520651664"></a><code class="computeroutput"><span class="keyword">rule</span> length <span class="special">(</span> s * <span class="special">)</span></code><p>Find the length of any sequence.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.unique"></a><a class="indexterm" name="idm45555006340512"></a><code class="computeroutput"><span class="keyword">rule</span> unique <span class="special">(</span> list * <span class="special">:</span> stable ? <span class="special">)</span></code><p>Removes duplicates from <code class="computeroutput">list</code>.
+<a name="bbv2.reference.modules.sequence.unique"></a><a class="indexterm" name="idp520657488"></a><code class="computeroutput"><span class="keyword">rule</span> unique <span class="special">(</span> list * <span class="special">:</span> stable ? <span class="special">)</span></code><p>Removes duplicates from <code class="computeroutput">list</code>.
If <code class="computeroutput">stable</code> is passed, then the order
of the elements will be unchanged.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.max-element"></a><a class="indexterm" name="idm45555006332528"></a><code class="computeroutput"><span class="keyword">rule</span> max-element <span class="special">(</span> elements + <span class="special">:</span> ordered ? <span class="special">)</span></code><p>Returns the maximum number in <code class="computeroutput">elements</code>.
+<a name="bbv2.reference.modules.sequence.max-element"></a><a class="indexterm" name="idp520665536"></a><code class="computeroutput"><span class="keyword">rule</span> max-element <span class="special">(</span> elements + <span class="special">:</span> ordered ? <span class="special">)</span></code><p>Returns the maximum number in <code class="computeroutput">elements</code>.
Uses <code class="computeroutput">ordered</code> for comparisons or
<a class="link" href="../">numbers.less</a>
if none is provided.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.select-highest-ranked"></a><a class="indexterm" name="idm45555006323440"></a><code class="computeroutput"><span class="keyword">rule</span> select-highest-ranked <span class="special">(</span> elements * <span class="special">:</span> ranks * <span class="special">)</span></code><p>Returns all of <code class="computeroutput">elements</code> for which
+<a name="bbv2.reference.modules.sequence.select-highest-ranked"></a><a class="indexterm" name="idp520674560"></a><code class="computeroutput"><span class="keyword">rule</span> select-highest-ranked <span class="special">(</span> elements * <span class="special">:</span> ranks * <span class="special">)</span></code><p>Returns all of <code class="computeroutput">elements</code> for which
the corresponding element in the parallel list
<code class="computeroutput">rank</code> is equal to the maximum value in
<code class="computeroutput">rank</code>.</p>
@@ -2043,13 +2055,13 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.modules.type"></a>type</h4></div></div></div>
-<a class="indexterm" name="idm45555006314112"></a><p>
+<a class="indexterm" name="idp520683888"></a><p>
Deals with target type declaration and defines target class which supports
typed targets.
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
-<a name="bbv2.reference.modules.type.register"></a><a class="indexterm" name="idm45555006310624"></a><code class="computeroutput"><span class="keyword">rule</span> register <span class="special">(</span> type <span class="special">:</span> suffixes * <span class="special">:</span> base-type ? <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.register"></a><a class="indexterm" name="idp520687440"></a><code class="computeroutput"><span class="keyword">rule</span> register <span class="special">(</span> type <span class="special">:</span> suffixes * <span class="special">:</span> base-type ? <span class="special">)</span></code><p>
Registers a target type, possible derived from a
<code class="computeroutput">base-type</code>. Providing a list
of suffixes here is a shortcut for separately calling the
@@ -2060,7 +2072,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.register-suffixes"></a><a class="indexterm" name="idm45555006300496"></a><code class="computeroutput"><span class="keyword">rule</span> register-suffixes <span class="special">(</span> suffixes + <span class="special">:</span> type <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.register-suffixes"></a><a class="indexterm" name="idp520697696"></a><code class="computeroutput"><span class="keyword">rule</span> register-suffixes <span class="special">(</span> suffixes + <span class="special">:</span> type <span class="special">)</span></code><p>
Specifies that files with suffix from <code class="computeroutput">suffixes</code>
be recognized as targets of type <code class="computeroutput">type</code>.
Issues an error if a different type is already specified for any
@@ -2068,47 +2080,47 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.registered"></a><a class="indexterm" name="idm45555006292992"></a><code class="computeroutput"><span class="keyword">rule</span> registered <span class="special">(</span> type <span class="special">)</span></code><p>Returns true iff type has been registered.</p>
+<a name="bbv2.reference.modules.type.registered"></a><a class="indexterm" name="idp520705264"></a><code class="computeroutput"><span class="keyword">rule</span> registered <span class="special">(</span> type <span class="special">)</span></code><p>Returns true iff type has been registered.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.validate"></a><a class="indexterm" name="idm45555006287696"></a><code class="computeroutput"><span class="keyword">rule</span> validate <span class="special">(</span> type <span class="special">)</span></code><p>Issues an error if <code class="computeroutput">type</code> is unknown.</p>
+<a name="bbv2.reference.modules.type.validate"></a><a class="indexterm" name="idp520710624"></a><code class="computeroutput"><span class="keyword">rule</span> validate <span class="special">(</span> type <span class="special">)</span></code><p>Issues an error if <code class="computeroutput">type</code> is unknown.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.set-scanner"></a><a class="indexterm" name="idm45555006281584"></a><code class="computeroutput"><span class="keyword">rule</span> set-scanner <span class="special">(</span> type <span class="special">:</span> scanner <span class="special">)</span></code><p>Sets a scanner class that will be used for this type.</p>
+<a name="bbv2.reference.modules.type.set-scanner"></a><a class="indexterm" name="idp520716608"></a><code class="computeroutput"><span class="keyword">rule</span> set-scanner <span class="special">(</span> type <span class="special">:</span> scanner <span class="special">)</span></code><p>Sets a scanner class that will be used for this type.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.get-scanner"></a><a class="indexterm" name="idm45555006275472"></a><code class="computeroutput"><span class="keyword">rule</span> get-scanner <span class="special">(</span> type <span class="special">:</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.get-scanner"></a><a class="indexterm" name="idp520722720"></a><code class="computeroutput"><span class="keyword">rule</span> get-scanner <span class="special">(</span> type <span class="special">:</span> property-set <span class="special">)</span></code><p>
Returns a scanner instance appropriate to <code class="computeroutput">type</code>
and <code class="computeroutput">property-set</code>.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.base"></a><a class="indexterm" name="idm45555006267904"></a><code class="computeroutput"><span class="keyword">rule</span> base <span class="special">(</span> type <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.base"></a><a class="indexterm" name="idp520730272"></a><code class="computeroutput"><span class="keyword">rule</span> base <span class="special">(</span> type <span class="special">)</span></code><p>
Returns a base type for the given type or nothing in case the given
type is not derived.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.all-bases"></a><a class="indexterm" name="idm45555006262480"></a><code class="computeroutput"><span class="keyword">rule</span> all-bases <span class="special">(</span> type <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.all-bases"></a><a class="indexterm" name="idp520735632"></a><code class="computeroutput"><span class="keyword">rule</span> all-bases <span class="special">(</span> type <span class="special">)</span></code><p>
Returns the given type and all of its base types in order of
their distance from type.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.all-derived"></a><a class="indexterm" name="idm45555006256992"></a><code class="computeroutput"><span class="keyword">rule</span> all-derived <span class="special">(</span> type <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.all-derived"></a><a class="indexterm" name="idp520741120"></a><code class="computeroutput"><span class="keyword">rule</span> all-derived <span class="special">(</span> type <span class="special">)</span></code><p>
Returns the given type and all of its derived types in order
of their distance from type.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.is-derived"></a><a class="indexterm" name="idm45555006251504"></a><code class="computeroutput"><span class="keyword">rule</span> is-derived <span class="special">(</span> type base <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.is-derived"></a><a class="indexterm" name="idp520746544"></a><code class="computeroutput"><span class="keyword">rule</span> is-derived <span class="special">(</span> type base <span class="special">)</span></code><p>
Returns true if <code class="computeroutput">type</code> is equal to
<code class="computeroutput">base</code> or has <code class="computeroutput">base</code>
as its direct or indirect base.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.set-generated-target-suffix"></a><a class="indexterm" name="idm45555006243968"></a><code class="computeroutput"><span class="keyword">rule</span> set-generated-target-suffix <span class="special">(</span> type <span class="special">:</span> properties * <span class="special">:</span> suffix <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.set-generated-target-suffix"></a><a class="indexterm" name="idp520754080"></a><code class="computeroutput"><span class="keyword">rule</span> set-generated-target-suffix <span class="special">(</span> type <span class="special">:</span> properties * <span class="special">:</span> suffix <span class="special">)</span></code><p>
Sets a file suffix to be used when generating a target of <code class="computeroutput">type</code> with the
specified properties. Can be called with no properties if no suffix has
already been specified for the <code class="computeroutput">type</code>. The <code class="computeroutput">suffix</code> parameter can be an empty
@@ -2125,19 +2137,19 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.change-generated-target-suffix"></a><a class="indexterm" name="idm45555006231152"></a><code class="computeroutput"><span class="keyword">rule</span> change-generated-target-suffix <span class="special">(</span> type <span class="special">:</span> properties * <span class="special">:</span> suffix <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.change-generated-target-suffix"></a><a class="indexterm" name="idp520766960"></a><code class="computeroutput"><span class="keyword">rule</span> change-generated-target-suffix <span class="special">(</span> type <span class="special">:</span> properties * <span class="special">:</span> suffix <span class="special">)</span></code><p>
Change the suffix previously registered for this type/properties
combination. If suffix is not yet specified, sets it.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.generated-target-suffix"></a><a class="indexterm" name="idm45555006224128"></a><code class="computeroutput"><span class="keyword">rule</span> generated-target-suffix <span class="special">(</span> type <span class="special">:</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.generated-target-suffix"></a><a class="indexterm" name="idp520773920"></a><code class="computeroutput"><span class="keyword">rule</span> generated-target-suffix <span class="special">(</span> type <span class="special">:</span> property-set <span class="special">)</span></code><p>
Returns the suffix used when generating a file of
<code class="computeroutput">type</code> with the given properties.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.set-generated-target-prefix"></a><a class="indexterm" name="idm45555006217264"></a><code class="computeroutput"><span class="keyword">rule</span> set-generated-target-prefix <span class="special">(</span> type <span class="special">:</span> properties * <span class="special">:</span> prefix <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.set-generated-target-prefix"></a><a class="indexterm" name="idp520780784"></a><code class="computeroutput"><span class="keyword">rule</span> set-generated-target-prefix <span class="special">(</span> type <span class="special">:</span> properties * <span class="special">:</span> prefix <span class="special">)</span></code><p>
Sets a target prefix that should be used when generating targets of
<code class="computeroutput">type</code> with the specified properties. Can
be called with empty properties if no prefix for
@@ -2154,19 +2166,19 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.change-generated-target-prefix"></a><a class="indexterm" name="idm45555006205728"></a><code class="computeroutput"><span class="keyword">rule</span> change-generated-target-prefix <span class="special">(</span> type <span class="special">:</span> properties * <span class="special">:</span> prefix <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.change-generated-target-prefix"></a><a class="indexterm" name="idp520792384"></a><code class="computeroutput"><span class="keyword">rule</span> change-generated-target-prefix <span class="special">(</span> type <span class="special">:</span> properties * <span class="special">:</span> prefix <span class="special">)</span></code><p>
Change the prefix previously registered for this type/properties
combination. If prefix is not yet specified, sets it.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.generated-target-prefix"></a><a class="indexterm" name="idm45555006198640"></a><code class="computeroutput"><span class="keyword">rule</span> generated-target-prefix <span class="special">(</span> type <span class="special">:</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.generated-target-prefix"></a><a class="indexterm" name="idp520799472"></a><code class="computeroutput"><span class="keyword">rule</span> generated-target-prefix <span class="special">(</span> type <span class="special">:</span> property-set <span class="special">)</span></code><p>
Returns the prefix used when generating a file of
<code class="computeroutput">type</code> with the given properties.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.type"></a><a class="indexterm" name="idm45555006191824"></a><code class="computeroutput"><span class="keyword">rule</span> type <span class="special">(</span> filename <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.type"></a><a class="indexterm" name="idp520806288"></a><code class="computeroutput"><span class="keyword">rule</span> type <span class="special">(</span> filename <span class="special">)</span></code><p>
Returns file type given its name. If there are several
dots in filename, tries each suffix. E.g. for name of
"file.so.1.2" suffixes "2", "1", and "so" will be tried.
@@ -2178,7 +2190,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="bbv2.reference.class"></a>Builtin classes</h3></div></div></div>
-<div class="toc"><dl class="toc">
+<div class="toc"><dl>
<dt><span class="section"><a href="reference.html#bbv2.reference.class.abstract-target">Class abstract-target</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.class.project-target">Class project-target</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.class.main-target">Class main-target</a></span></dt>
@@ -2189,7 +2201,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.class.abstract-target"></a>Class abstract-target</h4></div></div></div>
-<a class="indexterm" name="idm45555006184016"></a><p>
+<a class="indexterm" name="idp520814224"></a><p>
Base class for all abstract targets.
</p>
<pre class="programlisting">
@@ -2205,7 +2217,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<p>
Classes derived from <a class="link" href="reference.html#bbv2.reference.class.abstract-target" title="Class abstract-target">abstract-target</a>:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem"><a class="link" href="reference.html#bbv2.reference.class.project-target" title="Class project-target">project-target</a></li>
<li class="listitem"><a class="link" href="reference.html#bbv2.reference.class.main-target" title="Class main-target">main-target</a></li>
<li class="listitem"><a class="link" href="reference.html#bbv2.reference.class.project-target" title="Class project-target">basic-target</a></li>
@@ -2216,7 +2228,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<li class="listitem">
<a name="bbv2.reference.class.abstract-target.__init__"></a><code class="computeroutput"><span class="keyword">rule</span> __init__ <span class="special">(</span> name <span class="special">:</span> project <span class="special">)</span></code><p>
</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">name</code></span></dt>
<dd><p>The name of the target in the Jamfile.</p></dd>
<dt><span class="term"><code class="literal">project</code></span></dt>
@@ -2226,19 +2238,19 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.abstract-target.name"></a><a class="indexterm" name="idm45555006144176"></a><code class="computeroutput"><span class="keyword">rule</span> name <span class="special">(</span> <span class="special">)</span></code><p>Returns the name of this target.</p>
+<a name="bbv2.reference.class.abstract-target.name"></a><a class="indexterm" name="idp520854128"></a><code class="computeroutput"><span class="keyword">rule</span> name <span class="special">(</span> <span class="special">)</span></code><p>Returns the name of this target.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.abstract-target.project"></a><a class="indexterm" name="idm45555006138496"></a><code class="computeroutput"><span class="keyword">rule</span> project <span class="special">(</span> <span class="special">)</span></code><p>Returns the <a class="link" href="reference.html#bbv2.reference.class.project-target" title="Class project-target">project</a> for this target.</p>
+<a name="bbv2.reference.class.abstract-target.project"></a><a class="indexterm" name="idp520859744"></a><code class="computeroutput"><span class="keyword">rule</span> project <span class="special">(</span> <span class="special">)</span></code><p>Returns the <a class="link" href="reference.html#bbv2.reference.class.project-target" title="Class project-target">project</a> for this target.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.abstract-target.location"></a><a class="indexterm" name="idm45555006131984"></a><code class="computeroutput"><span class="keyword">rule</span> location <span class="special">(</span> <span class="special">)</span></code><p>Returns the location where the target was declared.</p>
+<a name="bbv2.reference.class.abstract-target.location"></a><a class="indexterm" name="idp520866320"></a><code class="computeroutput"><span class="keyword">rule</span> location <span class="special">(</span> <span class="special">)</span></code><p>Returns the location where the target was declared.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.abstract-target.full-name"></a><a class="indexterm" name="idm45555006126400"></a><code class="computeroutput"><span class="keyword">rule</span> full-name <span class="special">(</span> <span class="special">)</span></code><p>Returns a user-readable name for this target.</p>
+<a name="bbv2.reference.class.abstract-target.full-name"></a><a class="indexterm" name="idp520871968"></a><code class="computeroutput"><span class="keyword">rule</span> full-name <span class="special">(</span> <span class="special">)</span></code><p>Returns a user-readable name for this target.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.abstract-target.generate"></a><a class="indexterm" name="idm45555006120656"></a><code class="computeroutput"><span class="keyword">rule</span> generate <span class="special">(</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.abstract-target.generate"></a><a class="indexterm" name="idp520877712"></a><code class="computeroutput"><span class="keyword">rule</span> generate <span class="special">(</span> property-set <span class="special">)</span></code><p>
Generates virtual targets for this abstract target using the specified
properties, unless a different value of some feature is required by the
target. This is an abstract method which must be overriden by derived
@@ -2247,7 +2259,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<p>
On success, returns:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">a property-set with the usage requirements to be applied to dependents</li>
<li class="listitem">a list of produced virtual targets, which may be empty.</li>
</ul></div>
@@ -2261,7 +2273,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.class.project-target"></a>Class project-target</h4></div></div></div>
-<a class="indexterm" name="idm45555006111456"></a><pre class="programlisting">
+<a class="indexterm" name="idp520886912"></a><pre class="programlisting">
<span class="keyword">class</span> project-target <span class="special">:</span> <a class="link" href="reference.html#bbv2.reference.class.abstract-target" title="Class abstract-target">abstract-target</a> <span class="special">{</span>
<span class="keyword">rule</span> <a class="link" href="reference.html#bbv2.reference.class.project-target.generate">generate</a> <span class="special">(</span> property-set <span class="special">)</span>
<span class="keyword">rule</span> <a class="link" href="reference.html#bbv2.reference.class.project-target.build-dir">build-dir</a> <span class="special">(</span> <span class="special">)</span>
@@ -2279,14 +2291,14 @@ import path <span class="special">:</span> native make <span class="special">:</
<p>
This class has the following responsibilities:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
Maintaining a list of main targets in this project and building them.
</p></li></ul></div>
<p>
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
-<a name="bbv2.reference.class.project-target.generate"></a><a class="indexterm" name="idm45555006074032"></a><code class="computeroutput"><span class="keyword">rule</span> generate <span class="special">(</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.project-target.generate"></a><a class="indexterm" name="idp520924336"></a><code class="computeroutput"><span class="keyword">rule</span> generate <span class="special">(</span> property-set <span class="special">)</span></code><p>
Overrides
<a class="link" href="reference.html#bbv2.reference.class.abstract-target.generate">abstract-target.generate</a>.
@@ -2295,7 +2307,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<p>
On success, returns:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">a property-set with the usage requirements to be applied to dependents</li>
<li class="listitem">a list of produced virtual targets, which may be empty.</li>
</ul></div>
@@ -2303,26 +2315,26 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.project-target.build-dir"></a><a class="indexterm" name="idm45555006065600"></a><code class="computeroutput"><span class="keyword">rule</span> build-dir <span class="special">(</span> <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.project-target.build-dir"></a><a class="indexterm" name="idp520932768"></a><code class="computeroutput"><span class="keyword">rule</span> build-dir <span class="special">(</span> <span class="special">)</span></code><p>
Returns the root build directory of the project.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.project-target.main-target"></a><a class="indexterm" name="idm45555006059888"></a><code class="computeroutput"><span class="keyword">rule</span> main-target <span class="special">(</span> name <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.project-target.main-target"></a><a class="indexterm" name="idp520938480"></a><code class="computeroutput"><span class="keyword">rule</span> main-target <span class="special">(</span> name <span class="special">)</span></code><p>
Returns a <a class="link" href="reference.html#bbv2.reference.class.main-target" title="Class main-target">main-target</a>
class instance corresponding to <code class="literal">name</code>.
Can only be called after the project has been fully loaded.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.project-target.has-main-target"></a><a class="indexterm" name="idm45555006052464"></a><code class="computeroutput"><span class="keyword">rule</span> has-main-target <span class="special">(</span> name <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.project-target.has-main-target"></a><a class="indexterm" name="idp520945904"></a><code class="computeroutput"><span class="keyword">rule</span> has-main-target <span class="special">(</span> name <span class="special">)</span></code><p>
Returns whether a <a class="link" href="reference.html#bbv2.reference.class.main-target" title="Class main-target">main-target</a>
with the specified name exists.
Can only be called after the project has been fully loaded.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.project-target.find"></a><a class="indexterm" name="idm45555006045792"></a><code class="computeroutput"><span class="keyword">rule</span> find <span class="special">(</span> id <span class="special">:</span> no-error ? <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.project-target.find"></a><a class="indexterm" name="idp520952576"></a><code class="computeroutput"><span class="keyword">rule</span> find <span class="special">(</span> id <span class="special">:</span> no-error ? <span class="special">)</span></code><p>
Find and return the target with the specified id, treated relative to
self. Id may specify either a target or a file name with the target taking
priority. May report an error or return nothing if the target is not found
@@ -2334,7 +2346,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.class.main-target"></a>Class main-target</h4></div></div></div>
-<a class="indexterm" name="idm45555006037808"></a><pre class="programlisting">
+<a class="indexterm" name="idp520960496"></a><pre class="programlisting">
<span class="keyword">class</span> main-target <span class="special">:</span> <a class="link" href="reference.html#bbv2.reference.class.abstract-target" title="Class abstract-target">abstract-target</a> <span class="special">{</span>
<span class="keyword">rule</span> <a class="link" href="reference.html#bbv2.reference.class.main-target.generate">generate</a> <span class="special">(</span> property-set <span class="special">)</span>
@@ -2350,7 +2362,7 @@ import path <span class="special">:</span> native make <span class="special">:</
represents a named top-level target in a Jamfile.
</p>
<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
-<a name="bbv2.reference.class.main-target.generate"></a><a class="indexterm" name="idm45555006013744"></a><code class="computeroutput"><span class="keyword">rule</span> generate <span class="special">(</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.main-target.generate"></a><a class="indexterm" name="idp520984560"></a><code class="computeroutput"><span class="keyword">rule</span> generate <span class="special">(</span> property-set <span class="special">)</span></code><p>
Overrides
<a class="link" href="reference.html#bbv2.reference.class.abstract-target.generate">abstract-target.generate</a>.
@@ -2363,7 +2375,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<p>
On success, returns:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">a property-set with the usage requirements to be applied to dependents</li>
<li class="listitem">a list of produced virtual targets, which may be empty.</li>
</ul></div>
@@ -2374,7 +2386,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.class.basic-target"></a>Class basic-target</h4></div></div></div>
-<a class="indexterm" name="idm45555006002832"></a><pre class="programlisting">
+<a class="indexterm" name="idp520995536"></a><pre class="programlisting">
<span class="keyword">class</span> basic-target <span class="special">:</span> <a class="link" href="reference.html#bbv2.reference.class.abstract-target" title="Class abstract-target">abstract-target</a> <span class="special">{</span>
<span class="keyword">rule</span> <a class="link" href="reference.html#bbv2.reference.class.basic-target.__init__">__init__</a> <span class="special">(</span> name <span class="special">:</span> project <span class="special">:</span> sources * <span class="special">:</span> requirements * <span class="special">:</span> default-build * <span class="special">:</span> usage-requirements * <span class="special">)</span>
<span class="keyword">rule</span> <a class="link" href="reference.html#bbv2.reference.class.basic-target.generate">generate</a> <span class="special">(</span> property-set <span class="special">)</span>
@@ -2397,7 +2409,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<li class="listitem">
<a name="bbv2.reference.class.basic-target.__init__"></a><code class="computeroutput"><span class="keyword">rule</span> __init__ <span class="special">(</span> name <span class="special">:</span> project <span class="special">:</span> sources * <span class="special">:</span> requirements * <span class="special">:</span> default-build * <span class="special">:</span> usage-requirements * <span class="special">)</span></code><p>
</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">name</code></span></dt>
<dd><p>The name of the target</p></dd>
<dt><span class="term"><code class="literal">project</code></span></dt>
@@ -2410,7 +2422,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.basic-target.generate"></a><a class="indexterm" name="idm45555005956464"></a><code class="computeroutput"><span class="keyword">rule</span> generate <span class="special">(</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.basic-target.generate"></a><a class="indexterm" name="idp521041952"></a><code class="computeroutput"><span class="keyword">rule</span> generate <span class="special">(</span> property-set <span class="special">)</span></code><p>
Overrides
<a class="link" href="reference.html#bbv2.reference.class.abstract-target.generate">abstract-target.generate</a>.
@@ -2421,7 +2433,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<p>
On success, returns:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">a property-set with the usage requirements to be applied to dependents</li>
<li class="listitem">a list of produced virtual targets, which may be empty.</li>
</ul></div>
@@ -2429,7 +2441,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.basic-target.construct"></a><a class="indexterm" name="idm45555005947168"></a><code class="computeroutput"><span class="keyword">rule</span> construct <span class="special">(</span> name <span class="special">:</span> source-targets * <span class="special">:</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.basic-target.construct"></a><a class="indexterm" name="idp521051184"></a><code class="computeroutput"><span class="keyword">rule</span> construct <span class="special">(</span> name <span class="special">:</span> source-targets * <span class="special">:</span> property-set <span class="special">)</span></code><p>
Constructs virtual targets for this abstract target. Returns a
usage-requirements property-set and a list of virtual
targets. Should be overriden in derived classes.
@@ -2440,7 +2452,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.class.typed-target"></a>Class typed-target</h4></div></div></div>
-<a class="indexterm" name="idm45555005939248"></a><pre class="programlisting">
+<a class="indexterm" name="idp521059104"></a><pre class="programlisting">
<span class="keyword">class</span> typed-target <span class="special">:</span> <a class="link" href="reference.html#bbv2.reference.class.basic-target" title="Class basic-target">basic-target</a> <span class="special">{</span>
<span class="keyword">rule</span> <a class="link" href="reference.html#bbv2.reference.class.typed-target.__init__">__init__</a> <span class="special">(</span> name <span class="special">:</span> project <span class="special">:</span> type <span class="special">:</span> sources * <span class="special">:</span> requirements * <span class="special">:</span> default-build * <span class="special">:</span> usage-requirements * <span class="special">)</span>
<span class="keyword">rule</span> <a class="link" href="reference.html#bbv2.reference.class.typed-target.type">type</a> <span class="special">(</span> <span class="special">)</span>
@@ -2465,7 +2477,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<li class="listitem">
<a name="bbv2.reference.class.typed-target.__init__"></a><code class="computeroutput"><span class="keyword">rule</span> __init__ <span class="special">(</span> name <span class="special">:</span> project <span class="special">:</span> type <span class="special">:</span> sources * <span class="special">:</span> requirements * <span class="special">:</span> default-build * <span class="special">:</span> usage-requirements * <span class="special">)</span></code><p>
</p>
-<div class="variablelist"><dl class="variablelist">
+<div class="variablelist"><dl>
<dt><span class="term"><code class="literal">name</code></span></dt>
<dd><p>The name of the target</p></dd>
<dt><span class="term"><code class="literal">project</code></span></dt>
@@ -2483,13 +2495,13 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.typed-target.type"></a><a class="indexterm" name="idm45555005883312"></a><code class="computeroutput"><span class="keyword">rule</span> type <span class="special">(</span> <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.typed-target.type"></a><a class="indexterm" name="idp521115120"></a><code class="computeroutput"><span class="keyword">rule</span> type <span class="special">(</span> <span class="special">)</span></code><p>
Returns the <a class="link" href="reference.html#bbv2.reference.modules.type" title="type">type</a>
of the target.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.typed-target.construct"></a><a class="indexterm" name="idm45555005876784"></a><code class="computeroutput"><span class="keyword">rule</span> construct <span class="special">(</span> name <span class="special">:</span> source-targets * <span class="special">:</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.typed-target.construct"></a><a class="indexterm" name="idp521121648"></a><code class="computeroutput"><span class="keyword">rule</span> construct <span class="special">(</span> name <span class="special">:</span> source-targets * <span class="special">:</span> property-set <span class="special">)</span></code><p>
Implements <a class="link" href="reference.html#bbv2.reference.class.basic-target.construct">
basic-target.construct</a>. Attempts to create a target of
the correct type using generators appropriate for the given
@@ -2518,7 +2530,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.class.property-set"></a>Class property-set</h4></div></div></div>
-<a class="indexterm" name="idm45555005864304"></a><p>Class for storing a set of properties.</p>
+<a class="indexterm" name="idp521134128"></a><p>Class for storing a set of properties.</p>
<pre class="programlisting">
<span class="keyword">class</span> property-set <span class="special">{</span>
<span class="keyword">rule</span> <a class="link" href="reference.html#bbv2.reference.class.property-set.raw">raw</a> <span class="special">(</span> <span class="special">)</span>
@@ -2537,20 +2549,20 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
-<a name="bbv2.reference.class.property-set.raw"></a><a class="indexterm" name="idm45555005836672"></a><code class="computeroutput"><span class="keyword">rule</span> raw <span class="special">(</span> <span class="special">)</span></code><p>Returns a Jam list of the stored properties.</p>
+<a name="bbv2.reference.class.property-set.raw"></a><a class="indexterm" name="idp521161632"></a><code class="computeroutput"><span class="keyword">rule</span> raw <span class="special">(</span> <span class="special">)</span></code><p>Returns a Jam list of the stored properties.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.property-set.str"></a><a class="indexterm" name="idm45555005831136"></a><code class="computeroutput"><span class="keyword">rule</span> str <span class="special">(</span> <span class="special">)</span></code><p>Returns the string repesentation of the stored properties.</p>
+<a name="bbv2.reference.class.property-set.str"></a><a class="indexterm" name="idp521167168"></a><code class="computeroutput"><span class="keyword">rule</span> str <span class="special">(</span> <span class="special">)</span></code><p>Returns the string repesentation of the stored properties.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.property-set.propagated"></a><a class="indexterm" name="idm45555005825424"></a><code class="computeroutput"><span class="keyword">rule</span> propagated <span class="special">(</span> <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.property-set.propagated"></a><a class="indexterm" name="idp521172880"></a><code class="computeroutput"><span class="keyword">rule</span> propagated <span class="special">(</span> <span class="special">)</span></code><p>
Returns a <a class="link" href="reference.html#bbv2.reference.class.property-set" title="Class property-set">property-set</a>
containing all the <a class="link" href="reference.html#bbv2.reference.features.attributes.propagated">propagated</a>
properties in this <a class="link" href="reference.html#bbv2.reference.class.property-set" title="Class property-set">property-set</a>.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.property-set.add"></a><a class="indexterm" name="idm45555005817264"></a><code class="computeroutput"><span class="keyword">rule</span> add <span class="special">(</span> ps <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.property-set.add"></a><a class="indexterm" name="idp521181104"></a><code class="computeroutput"><span class="keyword">rule</span> add <span class="special">(</span> ps <span class="special">)</span></code><p>
Returns a new <a class="link" href="reference.html#bbv2.reference.class.property-set" title="Class property-set">
property-set</a> containing the union of the properties
in this <a class="link" href="reference.html#bbv2.reference.class.property-set" title="Class property-set">
@@ -2572,7 +2584,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.property-set.add-raw"></a><a class="indexterm" name="idm45555005806672"></a><code class="computeroutput"><span class="keyword">rule</span> add-raw <span class="special">(</span> properties * <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.property-set.add-raw"></a><a class="indexterm" name="idp521191696"></a><code class="computeroutput"><span class="keyword">rule</span> add-raw <span class="special">(</span> properties * <span class="special">)</span></code><p>
Link <a class="link" href="reference.html#bbv2.reference.class.property-set.add">
add</a>, except that it takes a list of properties
instead of a <a class="link" href="reference.html#bbv2.reference.class.property-set" title="Class property-set">
@@ -2580,7 +2592,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.property-set.refine"></a><a class="indexterm" name="idm45555005799216"></a><code class="computeroutput"><span class="keyword">rule</span> refine <span class="special">(</span> ps <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.property-set.refine"></a><a class="indexterm" name="idp521199216"></a><code class="computeroutput"><span class="keyword">rule</span> refine <span class="special">(</span> ps <span class="special">)</span></code><p>
Refines properties by overriding any non-free and non-conditional
properties for which a different value is specified in
<code class="literal">ps</code>. Returns the resulting
@@ -2588,7 +2600,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.property-set.get"></a><a class="indexterm" name="idm45555005791984"></a><code class="computeroutput"><span class="keyword">rule</span> get <span class="special">(</span> feature <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.property-set.get"></a><a class="indexterm" name="idp521206512"></a><code class="computeroutput"><span class="keyword">rule</span> get <span class="special">(</span> feature <span class="special">)</span></code><p>
Returns all the values of <code class="literal">feature</code>.
</p>
</li>
@@ -2598,7 +2610,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="bbv2.reference.buildprocess"></a>Build process</h3></div></div></div>
-<div class="toc"><dl class="toc">
+<div class="toc"><dl>
<dt><span class="section"><a href="reference.html#bbv2.reference.buildprocess.alternatives">Alternative selection</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.buildprocess.common">Determining common properties</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.buildprocess.targetpath">Target Paths</a></span></dt>
@@ -2643,8 +2655,8 @@ import path <span class="special">:</span> native make <span class="special">:</
<li class="listitem">
If there's one viable alternative, it's choosen. Otherwise,
an attempt is made to find one best alternative. An alternative
- a is better than another alternative b, iff the set of properties
- in b's condition is a strict subset of the set of properities of
+ a is better than another alternative b, if the set of properties
+ in b's condition is a strict subset of the set of properties of
'a's condition. If there's one viable alternative, which is
better than all others, it's selected. Otherwise, an error is
reported.
@@ -2675,7 +2687,7 @@ import path <span class="special">:</span> native make <span class="special">:</
equivalent to explicitly adding all expanded properties to build
request or requirements.</p></li>
<li class="listitem"><p>If requirements include a conditional property, and
- condiiton of this property is true in context of common
+ condition of this property is true in context of common
properties, then the conditional property should be in common
properties as well.</p></li>
<li class="listitem"><p>If no value for a feature is given by other rules
@@ -2700,9 +2712,9 @@ exe a : a.cpp
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.buildprocess.targetpath"></a>Target Paths</h4></div></div></div>
-<a class="indexterm" name="idm45555005761248"></a><p>Several factors determine the location of a concrete
+<a class="indexterm" name="idp521237248"></a><p>Several factors determine the location of a concrete
file target. All files in a project are built under
- the directory bin unless this is overriden by the build-dir project
+ the directory bin unless this is overridden by the build-dir project
attribute. Under bin is a path that depends on the properties
used to build each target. This path is uniquely determined by
all non-free, non-incidental properties. For example,
@@ -2739,7 +2751,7 @@ exe a : a.cpp
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="bbv2.reference.definitions"></a>Definitions</h3></div></div></div>
-<div class="toc"><dl class="toc">
+<div class="toc"><dl>
<dt><span class="section"><a href="reference.html#bbv2.reference.features">Features and properties</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.variants.proprefine">Property refinement</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.variants.propcond">Conditional properties</a></span></dt>
@@ -2748,7 +2760,7 @@ exe a : a.cpp
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.features"></a>Features and properties</h4></div></div></div>
-<div class="toc"><dl class="toc">
+<div class="toc"><dl>
<dt><span class="section"><a href="reference.html#bbv2.reference.features.validity">Property Validity</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.features.attributes">Feature Attributes</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.features.declaration">Feature Declaration</a></span></dt>
@@ -2776,7 +2788,7 @@ exe a : a.cpp
<code class="literal">subvalue1</code>...<code class="literal">subvalueN</code> are legal values of some
of <span class="bold"><strong>F</strong></span>'s subfeatures. For example, the properties
<code class="literal">&lt;toolset&gt;gcc &lt;toolset-version&gt;3.0.1</code> can be
- expressed more conscisely using a value-string, as
+ expressed more concisely using a value-string, as
<code class="literal">&lt;toolset&gt;gcc-3.0.1</code>.</p>
<p>A <span class="emphasis"><em>property set</em></span> is a set of properties (i.e. a
collection without duplicates), for instance:
@@ -2813,7 +2825,7 @@ exe a : a.cpp
that an <span class="emphasis"><em>incidental</em></span> property, for example, is
one whose feature has the <span class="emphasis"><em>incidental</em></span>
attribute.</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<p><span class="emphasis"><em>incidental</em></span></p>
<p>Incidental features are assumed not to affect build
@@ -2838,7 +2850,7 @@ exe a : a.cpp
propagated
property, the build systems attempts to use the same property
when building any of its dependencies as part of that main
- target. For instance, when an optimized exectuable is
+ target. For instance, when an optimized executable is
requested, one usually wants it to be linked with optimized
libraries. Thus, the <code class="literal">&lt;optimization&gt;</code> feature is
propagated.</p>
@@ -2872,7 +2884,7 @@ exe a : a.cpp
<p><span class="emphasis"><em>symmetric</em></span></p>
<p>Normally a feature only generates a subvariant directory
when its value differs from its default value,
- leading to an assymmetric subvariant directory structure for
+ leading to an asymmetric subvariant directory structure for
certain values of the feature. A symmetric feature
always generates a corresponding
subvariant directory.</p>
@@ -3003,7 +3015,7 @@ directory-name -&gt; path
This grammar allows some elements to be recognized as either
</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
project id (at this point, all project ids start with slash).
</li>
@@ -3034,9 +3046,9 @@ lib/b.cpp -- regular file
</p>
<p><span class="bold"><strong>Rationale:</strong></span>Target is separated from project by special
separator (not just slash), because:</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
- It emphasises that projects and targets are different things.
+ It emphasis that projects and targets are different things.
</li>
<li class="listitem">
It allows to have main target names with slashes.