summaryrefslogtreecommitdiff
path: root/doc/html/bbv2
diff options
context:
space:
mode:
Diffstat (limited to 'doc/html/bbv2')
-rw-r--r--doc/html/bbv2/extender.html18
-rw-r--r--doc/html/bbv2/faq.html6
-rw-r--r--doc/html/bbv2/overview.html48
-rw-r--r--doc/html/bbv2/reference.html234
-rw-r--r--doc/html/bbv2/tasks.html28
-rw-r--r--doc/html/bbv2/tutorial.html8
-rw-r--r--doc/html/bbv2/util.html157
7 files changed, 328 insertions, 171 deletions
diff --git a/doc/html/bbv2/extender.html b/doc/html/bbv2/extender.html
index ee7ec86724..23b7d38a0e 100644
--- a/doc/html/bbv2/extender.html
+++ b/doc/html/bbv2/extender.html
@@ -95,7 +95,7 @@
and can be called with specific properties to generate concrete
targets. At the code level it is represented by an instance of
class derived from <a class="link" href="reference.html#bbv2.reference.class.abstract-target" title="Class abstract-target">abstract-target</a>.
- <a href="#ftn.idp639100864" class="footnote" name="idp639100864"><sup class="footnote">[19]</sup></a>
+ <a href="#ftn.idp620044384" class="footnote" name="idp620044384"><sup class="footnote">[35]</sup></a>
</p>
<p>The <a class="link" href="reference.html#bbv2.reference.class.abstract-target.generate">generate</a>
method takes the build properties
@@ -187,7 +187,7 @@ local t = [ new file-target $(name) : CPP : $(project) : $(a) ] ;
returning targets you should pass them via the <code class="computeroutput">virtual-target.register</code>
function, besides allowing Boost.Build to track which virtual targets
got created for each metatarget, this will also replace targets with previously created identical
- ones, as necessary.<a href="#ftn.idp639141024" class="footnote" name="idp639141024"><sup class="footnote">[20]</sup></a>
+ ones, as necessary.<a href="#ftn.idp620084560" class="footnote" name="idp620084560"><sup class="footnote">[36]</sup></a>
Here are a couple of examples:
</p>
<pre class="programlisting">
@@ -209,7 +209,7 @@ return [ sequence.transform virtual-target.register : $(targets) ] ;
<p>In practice, most files have specific types, and most tools
consume and produce files of specific type. To take advantage of this
fact, Boost.Build defines concept of target type and
- <a class="indexterm" name="idp639147296"></a>
+ <a class="indexterm" name="idp620090768"></a>
<em class="firstterm">generators</em>, and has special metatarget class
<a class="link" href="reference.html#bbv2.reference.class.typed-target" title="Class typed-target">typed-target</a>. Target type is merely an
identifier. It is associated with a set of file extensions that
@@ -494,7 +494,7 @@ generators.register-composing mex.mex : CPP LIB : MEX ;
</p>
<p>(Need a note about UNIX)</p>
<h4>
-<a name="idp639220784"></a>Custom generator classes</h4>
+<a name="idp620164352"></a>Custom generator classes</h4>
<p>The standard generators allows you to specify source and target
types, an action, and a set of flags. If you need anything more complex,
@@ -702,7 +702,7 @@ actions inline-file
<p>
</p>
<h4>
-<a name="idp639253120"></a>Steps for adding a feauture</h4>
+<a name="idp620196032"></a>Steps for adding a feauture</h4>
<p>Adding a feature requires three steps:
</p>
@@ -743,7 +743,7 @@ actions inline-file
<p>
</p>
<h4>
-<a name="idp639264144"></a>Another example</h4>
+<a name="idp620207056"></a>Another example</h4>
<p>Here's another example.
Let's see how we can make a feature that refers to a target. For example,
when linking dynamic libraries on Windows, one sometimes needs to
@@ -824,7 +824,7 @@ rule link
</li>
</ol></div>
<h4>
-<a name="idp639276592"></a>Variants and composite features.</h4>
+<a name="idp620219504"></a>Variants and composite features.</h4>
<p>Sometimes you want to create a shortcut for some set of
features. For example, <code class="computeroutput">release</code> is a value of
<code class="computeroutput">&lt;variant&gt;</code> and is a shortcut for a set of features.
@@ -1022,9 +1022,9 @@ using yfc ;
</div>
<div class="footnotes">
<br><hr style="width:100; text-align:left;margin-left: 0">
-<div id="ftn.idp639100864" class="footnote"><p><a href="#idp639100864" class="para"><sup class="para">[19] </sup></a>This name is historic, and will be eventuall changed to
+<div id="ftn.idp620044384" class="footnote"><p><a href="#idp620044384" class="para"><sup class="para">[35] </sup></a>This name is historic, and will be eventuall changed to
<code class="computeroutput">metatarget</code></p></div>
-<div id="ftn.idp639141024" class="footnote"><p><a href="#idp639141024" class="para"><sup class="para">[20] </sup></a>This create-then-register pattern is caused by limitations
+<div id="ftn.idp620084560" class="footnote"><p><a href="#idp620084560" class="para"><sup class="para">[36] </sup></a>This create-then-register pattern is caused by limitations
of the Boost.Jam language. Python port is likely to never create duplicate targets.</p></div>
</div>
</div>
diff --git a/doc/html/bbv2/faq.html b/doc/html/bbv2/faq.html
index dae3051915..2818c9c4bb 100644
--- a/doc/html/bbv2/faq.html
+++ b/doc/html/bbv2/faq.html
@@ -8,7 +8,7 @@
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../bbv2.html" title="Chapter&#160;49.&#160;Boost.Build User Manual">
<link rel="prev" href="extender.html" title="Extender Manual">
-<link rel="next" href="../jam.html" title="Chapter&#160;50.&#160;Boost.Jam : 3.1.19">
+<link rel="next" href="../examples.html" title="Examples">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -21,7 +21,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="extender.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../jam.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="extender.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../examples.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -553,7 +553,7 @@ alias mylib ;
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="extender.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../jam.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="extender.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../examples.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
diff --git a/doc/html/bbv2/overview.html b/doc/html/bbv2/overview.html
index 76620f7d22..c096178023 100644
--- a/doc/html/bbv2/overview.html
+++ b/doc/html/bbv2/overview.html
@@ -130,8 +130,8 @@ add_program ("a", "a.c")
</p>
<p>
In order to support true multivariant builds, Boost.Build introduces the concept of a
- <a class="indexterm" name="idp636656384"></a>
- <a class="indexterm" name="idp636657744"></a>
+ <a class="indexterm" name="idp617564320"></a>
+ <a class="indexterm" name="idp617565680"></a>
<em class="firstterm">metatarget</em>&#8212;an object that is created when the build description
is parsed and can be called later with specific build properties to generate
actual targets.
@@ -158,7 +158,7 @@ b2 toolset=gcc toolset=msvc
</p>
<p>
Another key concept is
- <a class="indexterm" name="idp636664096"></a>
+ <a class="indexterm" name="idp617572032"></a>
<em class="firstterm">build property</em>. A build property is a variable
that affects the build process. It can be specified on the command line, and is
passed when calling a metatarget. While all build tools have a similar mechanism,
@@ -166,7 +166,7 @@ b2 toolset=gcc toolset=msvc
and providing a large set of properties with portable semantics.
</p>
<p>
- The final concept is <a class="indexterm" name="idp636666448"></a>
+ The final concept is <a class="indexterm" name="idp617574384"></a>
<em class="firstterm">property propagation</em>. Boost.Build does not require that every
metatarget is called with the same properties. Instead, the
"top-level" metatargets are called with the properties specified on the command line.
@@ -191,7 +191,7 @@ b2 toolset=gcc toolset=msvc
<p>
<a class="link" href="../">Boost.Jam</a> has an interpreted, procedural
language. On the lowest level, a <a class="link" href="../">Boost.Jam
- </a> program consists of variables and <a class="indexterm" name="idp636675776"></a> <em class="firstterm">rules</em> (the Jam term for
+ </a> program consists of variables and <a class="indexterm" name="idp617583712"></a> <em class="firstterm">rules</em> (the Jam term for
functions). They are grouped into modules&#8212;there is one global
module and a number of named modules. Besides that, a <a class="link" href="../">Boost.Jam</a> program contains classes and class
instances.
@@ -792,7 +792,7 @@ b2 toolset=gcc variant=debug optimization=space
The complete list of features can be found in <a class="xref" href="reference.html#bbv2.overview.builtins.features" title="Builtin features">the section called &#8220;Builtin features&#8221;</a>.
The most common features are summarized below.</p>
<div class="table">
-<a name="idp636859728"></a><p class="title"><b>Table&#160;49.2.&#160;</b></p>
+<a name="idp617767680"></a><p class="title"><b>Table&#160;49.2.&#160;</b></p>
<div class="table-contents"><table class="table">
<colgroup>
<col>
@@ -911,11 +911,11 @@ b2 include=static,shared
<div class="titlepage"><div><div><h3 class="title">
<a name="bbv2.overview.targets"></a>Declaring Targets</h3></div></div></div>
<div class="toc"><dl class="toc">
-<dt><span class="section"><a href="overview.html#idp636916720">Name</a></span></dt>
-<dt><span class="section"><a href="overview.html#idp636922448">Sources</a></span></dt>
+<dt><span class="section"><a href="overview.html#idp617824672">Name</a></span></dt>
+<dt><span class="section"><a href="overview.html#idp617830400">Sources</a></span></dt>
<dt><span class="section"><a href="overview.html#bbv2.overview.targets.requirements">Requirements</a></span></dt>
-<dt><span class="section"><a href="overview.html#idp636958768">Default Build</a></span></dt>
-<dt><span class="section"><a href="overview.html#idp636961584">Additional Information</a></span></dt>
+<dt><span class="section"><a href="overview.html#idp617866656">Default Build</a></span></dt>
+<dt><span class="section"><a href="overview.html#idp617869472">Additional Information</a></span></dt>
</dl></div>
<p><a name="bbv2.overview.targets.main"></a>
A <em class="firstterm">Main target</em> is a user-defined named
@@ -924,9 +924,9 @@ b2 include=static,shared
target rules described in <a class="xref" href="reference.html#bbv2.reference.rules" title="Builtin rules">the section called &#8220;Builtin rules&#8221;</a>. The user can also declare
custom main target rules as shown in <a class="xref" href="extender.html#bbv2.extending.rules" title="Main target rules">the section called &#8220;Main target rules&#8221;</a>.
</p>
-<a class="indexterm" name="idp636900048"></a><p>Most main target rules in Boost.Build have the same common
+<a class="indexterm" name="idp617808000"></a><p>Most main target rules in Boost.Build have the same common
signature:</p>
-<a class="indexterm" name="idp636901696"></a><a name="bbv2.main-target-rule-syntax"></a><pre class="programlisting">
+<a class="indexterm" name="idp617809648"></a><a name="bbv2.main-target-rule-syntax"></a><pre class="programlisting">
rule <em class="replaceable"><code>rule-name</code></em> (
main-target-name :
sources + :
@@ -974,7 +974,7 @@ rule <em class="replaceable"><code>rule-name</code></em> (
</p>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idp636916720"></a>Name</h4></div></div></div>
+<a name="idp617824672"></a>Name</h4></div></div></div>
<p>The name of main target has two purposes. First, it's used to refer to this target from
other targets and from command line. Second, it's used to compute the names of the generated files.
Typically, filenames are obtained from main target name by appending system-dependent suffixes and
@@ -994,7 +994,7 @@ obj test.debug : test.cpp : &lt;variant&gt;debug ;
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idp636922448"></a>Sources</h4></div></div></div>
+<a name="idp617830400"></a>Sources</h4></div></div></div>
<p>The list of sources specifies what should be processed to
get the resulting targets. Most of the time, it's just a list of
files. Sometimes, you'll want to automatically construct the
@@ -1041,7 +1041,7 @@ exe c : c.cpp /boost/program_options//program_options ;
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.overview.targets.requirements"></a>Requirements</h4></div></div></div>
-<a class="indexterm" name="idp636934160"></a><p>Requirements are the properties that should always be present when
+<a class="indexterm" name="idp617842112"></a><p>Requirements are the properties that should always be present when
building a target. Typically, they are includes and defines:
</p>
<pre class="programlisting">
@@ -1060,7 +1060,7 @@ obj main : main.cpp : &lt;optimization&gt;off ;
<p>
</p>
<p><a name="bbv2.overview.targets.requirements.conditional"></a>
- <a class="indexterm" name="idp636938896"></a>
+ <a class="indexterm" name="idp617846848"></a>
Sometimes, particular relationships need to be maintained
among a target's build properties. This can be achieved with
<em class="firstterm">conditional
@@ -1092,7 +1092,7 @@ lib network : network.cpp
<p>
</p>
<p><a name="bbv2.overview.targets.requirements.indirect"></a>
- <a class="indexterm" name="idp636948336"></a>
+ <a class="indexterm" name="idp617856224"></a>
A more powerful variant of conditional requirements
is <em class="firstterm">indirect conditional requirements</em>.
You can provide a rule that will be called with the current build properties and can compute additional properties
@@ -1149,7 +1149,7 @@ exe test3 : test3.cpp : -&lt;threading&gt;multi ;
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idp636958768"></a>Default Build</h4></div></div></div>
+<a name="idp617866656"></a>Default Build</h4></div></div></div>
<p>The <code class="varname">default-build</code> parameter
is a set of properties to be used if the build request does
not otherwise specify a value for features in the set. For example:
@@ -1166,7 +1166,7 @@ exe hello : hello.cpp : : &lt;threading&gt;multi ;
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idp636961584"></a>Additional Information</h4></div></div></div>
+<a name="idp617869472"></a>Additional Information</h4></div></div></div>
<p>
The ways a target is built can be so different that
describing them using conditional requirements would be
@@ -1259,7 +1259,7 @@ project tennis
</p>
<div class="table">
-<a name="idp636984208"></a><p class="title"><b>Table&#160;49.3.&#160;</b></p>
+<a name="idp617892032"></a><p class="title"><b>Table&#160;49.3.&#160;</b></p>
<div class="table-contents"><table class="table" summary="">
<colgroup>
<col>
@@ -1360,8 +1360,8 @@ project tennis
<a name="bbv2.overview.build_process"></a>The Build Process</h3></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="overview.html#bbv2.overview.build_request">Build Request</a></span></dt>
-<dt><span class="section"><a href="overview.html#idp637020176">Building a main target</a></span></dt>
-<dt><span class="section"><a href="overview.html#idp637032256">Building a Project</a></span></dt>
+<dt><span class="section"><a href="overview.html#idp617928000">Building a main target</a></span></dt>
+<dt><span class="section"><a href="overview.html#idp617940016">Building a Project</a></span></dt>
</dl></div>
<p>When you've described your targets, you want Boost.Build to run the
right tools and create the needed targets.
@@ -1418,7 +1418,7 @@ b2 app1 lib1//lib1 gcc debug optimization=full
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idp637020176"></a>Building a main target</h4></div></div></div>
+<a name="idp617928000"></a>Building a main target</h4></div></div></div>
<p>When you request, directly or indirectly, a build of a main target
with specific requirements, the following steps are done. Some brief
explanation is provided, and more details are given in <a class="xref" href="reference.html#bbv2.reference.buildprocess" title="Build process">the section called &#8220;Build process&#8221;</a>.
@@ -1478,7 +1478,7 @@ b2 app1 lib1//lib1 gcc debug optimization=full
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idp637032256"></a>Building a Project</h4></div></div></div>
+<a name="idp617940016"></a>Building a Project</h4></div></div></div>
<p>Often, a user builds a complete project, not just one main
target. In fact, invoking <span class="command"><strong>b2</strong></span> without
arguments
diff --git a/doc/html/bbv2/reference.html b/doc/html/bbv2/reference.html
index ceb9eb271f..8807c60090 100644
--- a/doc/html/bbv2/reference.html
+++ b/doc/html/bbv2/reference.html
@@ -7,7 +7,7 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../bbv2.html" title="Chapter&#160;49.&#160;Boost.Build User Manual">
-<link rel="prev" href="tasks.html" title="Common tasks">
+<link rel="prev" href="util.html" title="Utilities">
<link rel="next" href="extender.html" title="Extender Manual">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,7 +21,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="tasks.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="extender.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="util.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="extender.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -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="idp637358352"></a><div class="variablelist"><dl class="variablelist">
+<a class="indexterm" name="idp618300944"></a><div class="variablelist"><dl class="variablelist">
<dt><span class="term"><code class="literal">variant</code></span></dt>
<dd>
<p>
@@ -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="idp637516864"></a><a class="indexterm" name="idp637517968"></a><p>
+<a class="indexterm" name="idp618460112"></a><a class="indexterm" name="idp618461216"></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="idp637526144"></a><a class="indexterm" name="idp637527248"></a><p>This feature is specific to the msvc toolset (see
+<a class="indexterm" name="idp618469440"></a><a class="indexterm" name="idp618470544"></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
@@ -633,8 +633,8 @@ path-constant DATA : data/a.txt ;
<a name="bbv2.reference.tools"></a>Builtin tools</h3></div></div></div>
<div class="toc"><dl class="toc">
<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#idp637854480">Third-party libraries</a></span></dt>
-<dt><span class="section"><a href="reference.html#idp637914176">Documentation tools</a></span></dt>
+<dt><span class="section"><a href="reference.html#idp618798016">Third-party libraries</a></span></dt>
+<dt><span class="section"><a href="reference.html#idp618857712">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>
@@ -735,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="idp637579344"></a>
+<a class="indexterm" name="idp618522624"></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>
@@ -752,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="idp637587872"></a>
+ <a class="indexterm" name="idp618531152"></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
@@ -875,7 +875,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.64"></a>64-bit support</h6></div></div></div>
-<a class="indexterm" name="idp637647152"></a><p>Starting with version 8.0, Microsoft Visual Studio can
+<a class="indexterm" name="idp618590496"></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
@@ -922,7 +922,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="idp637663280"></a><p>
+<a class="indexterm" name="idp618606560"></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
@@ -1251,7 +1251,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="idp637845264"></a>
+<a class="indexterm" name="idp618788800"></a>
Starting with Sun Studio 12, you can create 64-bit applications
by using the <code class="computeroutput">address-model=64</code> property.
@@ -1276,7 +1276,7 @@ using vacpp ;</pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idp637854480"></a>Third-party libraries</h4></div></div></div>
+<a name="idp618798016"></a>Third-party libraries</h4></div></div></div>
<div class="toc"><dl class="toc">
<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>
@@ -1287,7 +1287,7 @@ 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="idp637856816"></a><p>The <a href="http://stlport.org" target="_top">STLport</a> library
+<a class="indexterm" name="idp618800416"></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 platform. Linux is
hampered by different naming of libraries in each STLport
@@ -1316,7 +1316,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="idp637867840"></a><p>Provides support for the
+<a class="indexterm" name="idp618811440"></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>
@@ -1366,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.libraries.bzip2"></a>bzip2</h5></div></div></div>
-<a class="indexterm" name="idp637891600"></a><p>Provides support for the
+<a class="indexterm" name="idp618835136"></a><p>Provides support for the
<a href="http://www.bzip.org" target="_top">bzip2</a> library. bzip2
can be configured either to use precompiled binaries or to
build the library from source.</p>
@@ -1416,7 +1416,7 @@ using bzip2 : 1.0.6 : : &lt;toolset&gt;gcc ;
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idp637914176"></a>Documentation tools</h4></div></div></div>
+<a name="idp618857712"></a>Documentation tools</h4></div></div></div>
<div class="toc"><dl class="toc">
<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>
@@ -1430,7 +1430,7 @@ using bzip2 : 1.0.6 : : &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="idp637916528"></a><p>To use xsltproc, you first need to configure it using the following syntax:</p>
+<a class="indexterm" name="idp618860064"></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>
@@ -1478,7 +1478,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="idp637942480"></a><p>To use boostbook, you first need to configure it using the following syntax:</p>
+<a class="indexterm" name="idp618886000"></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>
@@ -1532,7 +1532,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="idp637977952"></a><p>To use doxygen, you first need to configure it using the following syntax:</p>
+<a class="indexterm" name="idp618921456"></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>
@@ -1591,7 +1591,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="idp638003456"></a><p>The quickbook module provides a generator to convert from
+<a class="indexterm" name="idp618946960"></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">
@@ -1607,7 +1607,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="idp638008736"></a><p>The fop module provides generators to convert from
+<a class="indexterm" name="idp618952304"></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">
@@ -1644,7 +1644,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="idp638018464"></a><p>
+<a class="indexterm" name="idp618962032"></a><p>
The <code class="computeroutput">modules</code> module defines basic functionality
for handling modules.
</p>
@@ -1694,7 +1694,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="idp638028224"></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="idp618971792"></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>
@@ -1702,7 +1702,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="idp638037104"></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="idp618980672"></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>
@@ -1710,7 +1710,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="idp638046640"></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="idp618990272"></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>
@@ -1719,7 +1719,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="idp638057376"></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="idp619001024"></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
@@ -1754,7 +1754,7 @@ 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="idp638083984"></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>
+<a name="bbv2.reference.modules.modules.load"></a><a class="indexterm" name="idp619027760"></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">
<dt><span class="term"><code class="literal">module-name</code></span></dt>
<dd><p>Name of module to load.</p></dd>
@@ -1770,7 +1770,7 @@ using fop : [<span class="optional"><em class="replaceable"><code>fop-command</c
</dl></div>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.modules.import"></a><a class="indexterm" name="idp638098240"></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="idp619041952"></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
@@ -1799,7 +1799,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="idp638116640"></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="idp619060224"></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
@@ -1810,7 +1810,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.path"></a>path</h4></div></div></div>
-<a class="indexterm" name="idp638124656"></a><p>
+<a class="indexterm" name="idp619068304"></a><p>
Performs various path manipulations. Paths are always in a 'normalized'
representation. In it, a path may be either:
@@ -1829,25 +1829,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="idp638132016"></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="idp619075728"></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="idp638137856"></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="idp619081504"></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="idp638143216"></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="idp619086928"></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="idp638148496"></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="idp619092336"></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="idp638153904"></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="idp619097744"></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="idp638159328"></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="idp619103168"></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="idp638164720"></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="idp619108624"></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>
@@ -1855,23 +1855,23 @@ 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="idp638174176"></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="idp619118080"></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="idp638179744"></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="idp619123584"></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="idp638186544"></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="idp619130384"></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="idp638191936"></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="idp619135648"></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.
@@ -1896,7 +1896,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="idp638206000"></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="idp619149712"></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
@@ -1906,10 +1906,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="idp638214000"></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="idp619157648"></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="idp638219376"></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="idp619163072"></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
@@ -1917,7 +1917,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="idp638227120"></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="idp619170752"></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
@@ -1925,23 +1925,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="idp638236128"></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="idp619179760"></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="idp638245136"></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="idp619188768"></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="idp638250560"></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="idp619194192"></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="idp638256032"></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="idp619199600"></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>
@@ -1951,7 +1951,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.regex"></a>regex</h4></div></div></div>
-<a class="indexterm" name="idp638262176"></a><p>
+<a class="indexterm" name="idp619205616"></a><p>
Contains rules for string processing using regular expressions.
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -2000,7 +2000,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="idp638289168"></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="idp619232608"></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
@@ -2018,34 +2018,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="idp638299920"></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="idp619243360"></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="idp638307360"></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="idp619250736"></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="idp638316608"></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="idp619260048"></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="idp638326816"></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="idp619270208"></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="idp638335520"></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="idp619278848"></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="idp638341504"></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="idp619284832"></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>
@@ -2056,7 +2056,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="idp638350848"></a><p>
+<a class="indexterm" name="idp619294048"></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
@@ -2066,50 +2066,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="idp638354704"></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="idp619297888"></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="idp638364384"></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="idp619307568"></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="idp638374128"></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="idp619317248"></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="idp638380640"></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="idp619323824"></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="idp638388544"></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="idp619331728"></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="idp638396464"></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="idp619339648"></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="idp638404416"></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="idp619347472"></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="idp638410240"></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="idp619353232"></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="idp638418224"></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="idp619361216"></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="idp638427120"></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="idp619370240"></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>
@@ -2119,13 +2119,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="idp638436512"></a><p>
+<a class="indexterm" name="idp619379632"></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="idp638440064"></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="idp619383184"></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
@@ -2136,7 +2136,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="idp638450128"></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="idp619393376"></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
@@ -2144,47 +2144,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="idp638457696"></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="idp619400880"></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="idp638463056"></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="idp619406304"></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="idp638469104"></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="idp619412288"></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="idp638475216"></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="idp619418336"></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="idp638482768"></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="idp619425824"></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="idp638488256"></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="idp619431312"></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="idp638493744"></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="idp619436800"></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="idp638499232"></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="idp619442288"></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="idp638506832"></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="idp619449888"></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
@@ -2201,19 +2201,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="idp638519712"></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="idp619462768"></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="idp638526800"></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="idp619469792"></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="idp638533536"></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="idp619476656"></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
@@ -2230,19 +2230,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="idp638545136"></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="idp619488256"></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="idp638552160"></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="idp619495344"></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="idp638558912"></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="idp619502096"></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.
@@ -2265,7 +2265,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="idp638566848"></a><p>
+<a class="indexterm" name="idp619509968"></a><p>
Base class for all abstract targets.
</p>
<pre class="programlisting">
@@ -2302,19 +2302,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="idp638606496"></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="idp619549936"></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="idp638612176"></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="idp619555616"></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="idp638618752"></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="idp619562192"></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="idp638624432"></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="idp619567840"></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="idp638630144"></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="idp619573584"></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
@@ -2337,7 +2337,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="idp638639408"></a><pre class="programlisting">
+<a class="indexterm" name="idp619582720"></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>
@@ -2362,7 +2362,7 @@ 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.project-target.generate"></a><a class="indexterm" name="idp638676768"></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="idp619620016"></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>.
@@ -2379,26 +2379,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="idp638685200"></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="idp619628448"></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="idp638690912"></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="idp619634160"></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="idp638698272"></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="idp619641584"></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="idp638704944"></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="idp619648256"></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
@@ -2410,7 +2410,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="idp638712928"></a><pre class="programlisting">
+<a class="indexterm" name="idp619656240"></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>
@@ -2426,7 +2426,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="idp638737056"></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="idp619680368"></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>.
@@ -2450,7 +2450,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="idp638748032"></a><pre class="programlisting">
+<a class="indexterm" name="idp619691344"></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>
@@ -2486,7 +2486,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="idp638794384"></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="idp619737696"></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>.
@@ -2505,7 +2505,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="idp638803616"></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="idp619746992"></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.
@@ -2516,7 +2516,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="idp638811536"></a><pre class="programlisting">
+<a class="indexterm" name="idp619754912"></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>
@@ -2559,13 +2559,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="idp638867536"></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="idp619810944"></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="idp638874064"></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="idp619817472"></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
@@ -2594,7 +2594,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="idp638886480"></a><p>Class for storing a set of properties.</p>
+<a class="indexterm" name="idp619829952"></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>
@@ -2613,20 +2613,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="idp638914176"></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="idp619857584"></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="idp638919776"></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="idp619863184"></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="idp638925488"></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="idp619868896"></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="idp638933712"></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="idp619877056"></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">
@@ -2648,7 +2648,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="idp638944304"></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="idp619887648"></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">
@@ -2656,7 +2656,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="idp638951824"></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="idp619895168"></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
@@ -2664,7 +2664,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="idp638959120"></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="idp619902464"></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>
@@ -2776,7 +2776,7 @@ 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="idp638989792"></a><p>Several factors determine the location of a concrete
+<a class="indexterm" name="idp619933072"></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 overridden by the build-dir project
attribute. Under bin is a path that depends on the properties
@@ -3155,7 +3155,7 @@ requested-properties -&gt; property-path
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="tasks.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="extender.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="util.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="extender.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
diff --git a/doc/html/bbv2/tasks.html b/doc/html/bbv2/tasks.html
index e5f82160e7..3428498737 100644
--- a/doc/html/bbv2/tasks.html
+++ b/doc/html/bbv2/tasks.html
@@ -8,7 +8,7 @@
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../bbv2.html" title="Chapter&#160;49.&#160;Boost.Build User Manual">
<link rel="prev" href="overview.html" title="Overview">
-<link rel="next" href="reference.html" title="Reference">
+<link rel="next" href="util.html" title="Utilities">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -21,7 +21,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="overview.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="overview.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="util.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -45,7 +45,7 @@
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="bbv2.tasks.programs"></a>Programs</h3></div></div></div>
-<a class="indexterm" name="idp637041952"></a><p>
+<a class="indexterm" name="idp617949776"></a><p>
Programs are created using the <code class="computeroutput">exe</code> rule, which follows the
<a class="link" href="overview.html#bbv2.main-target-rule-syntax">common syntax</a>. For
example:
@@ -81,7 +81,7 @@ exe hello : hello.cpp some_library.lib /some_project//library
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="bbv2.tasks.libraries"></a>Libraries</h3></div></div></div>
-<a class="indexterm" name="idp637050368"></a><p>
+<a class="indexterm" name="idp617958256"></a><p>
Library targets are created using the <code class="computeroutput">lib</code> rule, which
follows the <a class="link" href="overview.html#bbv2.main-target-rule-syntax">common syntax
</a>. For example:
@@ -308,7 +308,7 @@ exe main : main.cpp static_libraries ;
files.
</p>
<h4>
-<a name="idp637109104"></a>Basic install</h4>
+<a name="idp618016992"></a>Basic install</h4>
<p>
For installing a built target you should use the <code class="computeroutput">install</code>
rule, which follows the <a class="link" href="overview.html#bbv2.main-target-rule-syntax">
@@ -347,7 +347,7 @@ install dist2 : hello helpers : &lt;location&gt;$(DIST) ;
variables</a>
</p>
<h4>
-<a name="idp637121808"></a>Installing with all dependencies</h4>
+<a name="idp618029632"></a>Installing with all dependencies</h4>
<p>
Specifying the names of all libraries to install can be boring. The
<code class="computeroutput">install</code> allows you to specify only the top-level executable
@@ -371,8 +371,8 @@ install dist : hello
otherwise, all found target will be installed.
</p>
<h4>
-<a name="idp637127200"></a>Preserving Directory Hierarchy</h4>
-<a class="indexterm" name="idp637127584"></a><p>
+<a name="idp618034960"></a>Preserving Directory Hierarchy</h4>
+<a class="indexterm" name="idp618035344"></a><p>
By default, the <code class="computeroutput">install</code> rule will strip paths from its
sources. So, if sources include <code class="filename">a/b/c.hpp</code>, the
<code class="filename">a/b</code> part will be ignored. To make the
@@ -396,7 +396,7 @@ install headers
an entire directory tree.
</p>
<h4>
-<a name="idp637135936"></a>Installing into Several Directories</h4>
+<a name="idp618043728"></a>Installing into Several Directories</h4>
<p>
The <a class="link" href="tasks.html#bbv2.tasks.alias" title="Alias"><code class="computeroutput">alias</code></a> rule can be
used when targets need to be installed into several directories:
@@ -410,7 +410,7 @@ install install-lib : helper : /usr/lib ;
</p>
<p>
Because the <code class="computeroutput">install</code> rule just copies targets, most free
- features <a href="#ftn.idp637139920" class="footnote" name="idp637139920"><sup class="footnote">[18]</sup></a> have no
+ features <a href="#ftn.idp618047664" class="footnote" name="idp618047664"><sup class="footnote">[34]</sup></a> have no
effect when used in requirements of the <code class="computeroutput">install</code> rule. The
only two that matter are <a class="link" href="reference.html#bbv2.builtin.features.dependency">
<code class="varname">dependency</code></a> and, on Unix, <a class="link" href="reference.html#bbv2.reference.features.dll-path"><code class="varname">dll-path</code>
@@ -499,7 +499,7 @@ rule run ( sources + : args * : input-files * : requirements * : target-name ?
target-name</code></em>.output</code>.
</p>
<p>
- <a class="indexterm" name="idp637171056"></a>
+ <a class="indexterm" name="idp618078800"></a>
If the <code class="literal">preserve-test-targets</code> feature has the value
<code class="literal">off</code>, then <code class="computeroutput">run</code> and the <code class="computeroutput">run-fail</code>
rules will remove the executable after running it. This somewhat decreases
@@ -783,7 +783,7 @@ exe app : app.cpp : &lt;implicit-dependency&gt;parser ;
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="bbv2.tasks.crosscompile"></a>Cross-compilation</h3></div></div></div>
-<a class="indexterm" name="idp637253296"></a><p>Boost.Build supports cross compilation with the gcc and msvc
+<a class="indexterm" name="idp618160912"></a><p>Boost.Build supports cross compilation with the gcc and msvc
toolsets.</p>
<p>
When using gcc, you first need to specify your cross compiler
@@ -822,7 +822,7 @@ b2 toolset=gcc-mingw <span class="bold"><strong>target-os=windows</strong></span
</div>
<div class="footnotes">
<br><hr style="width:100; text-align:left;margin-left: 0">
-<div id="ftn.idp637139920" class="footnote"><p><a href="#idp637139920" class="para"><sup class="para">[18] </sup></a>see the definition of "free" in <a class="xref" href="reference.html#bbv2.reference.features.attributes" title="Feature Attributes">the section called &#8220;Feature Attributes&#8221;</a>.</p></div>
+<div id="ftn.idp618047664" class="footnote"><p><a href="#idp618047664" class="para"><sup class="para">[34] </sup></a>see the definition of "free" in <a class="xref" href="reference.html#bbv2.reference.features.attributes" title="Feature Attributes">the section called &#8220;Feature Attributes&#8221;</a>.</p></div>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
@@ -831,7 +831,7 @@ b2 toolset=gcc-mingw <span class="bold"><strong>target-os=windows</strong></span
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="overview.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+<a accesskey="p" href="overview.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="util.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
diff --git a/doc/html/bbv2/tutorial.html b/doc/html/bbv2/tutorial.html
index 57b978afb4..c8652ccca1 100644
--- a/doc/html/bbv2/tutorial.html
+++ b/doc/html/bbv2/tutorial.html
@@ -204,7 +204,7 @@ exe hello
requirements, the target requirements usually override (or, in the case
of &#8220;free&#8221;&#8221; features like
<code class="varname">&lt;include&gt;</code>,
- <a href="#ftn.idp636449168" class="footnote" name="idp636449168"><sup class="footnote">[16]</sup></a>
+ <a href="#ftn.idp617356784" class="footnote" name="idp617356784"><sup class="footnote">[32]</sup></a>
augment) the build request.
</p>
<div class="tip"><table border="0" summary="Tip">
@@ -316,7 +316,7 @@ top/
in its requirements, then all of its subprojects will have it
in their requirements, too. Of course, any project can add
- include paths to those specified by its parents. <a href="#ftn.idp636477376" class="footnote" name="idp636477376"><sup class="footnote">[17]</sup></a>
+ include paths to those specified by its parents. <a href="#ftn.idp617384992" class="footnote" name="idp617384992"><sup class="footnote">[33]</sup></a>
More details can be found in
<a class="xref" href="overview.html#bbv2.overview.projects" title="Projects">the section called &#8220;Projects&#8221;</a>.
</p>
@@ -713,10 +713,10 @@ lib pythonlib <span class="special">:</span> <span class="special">:</span> &lt;
</div>
<div class="footnotes">
<br><hr style="width:100; text-align:left;margin-left: 0">
-<div id="ftn.idp636449168" class="footnote"><p><a href="#idp636449168" class="para"><sup class="para">[16] </sup></a>
+<div id="ftn.idp617356784" class="footnote"><p><a href="#idp617356784" class="para"><sup class="para">[32] </sup></a>
See <a class="xref" href="reference.html#bbv2.reference.features.attributes" title="Feature Attributes">the section called &#8220;Feature Attributes&#8221;</a>
</p></div>
-<div id="ftn.idp636477376" class="footnote"><p><a href="#idp636477376" class="para"><sup class="para">[17] </sup></a>Many
+<div id="ftn.idp617384992" class="footnote"><p><a href="#idp617384992" class="para"><sup class="para">[33] </sup></a>Many
features will be overridden,
rather than added-to, in subprojects. See <a class="xref" href="reference.html#bbv2.reference.features.attributes" title="Feature Attributes">the section called &#8220;Feature Attributes&#8221;</a> for more
information</p></div>
diff --git a/doc/html/bbv2/util.html b/doc/html/bbv2/util.html
new file mode 100644
index 0000000000..8cc2630c24
--- /dev/null
+++ b/doc/html/bbv2/util.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Utilities</title>
+<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
+<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
+<link rel="up" href="../bbv2.html" title="Chapter&#160;49.&#160;Boost.Build User Manual">
+<link rel="prev" href="tasks.html" title="Common tasks">
+<link rel="next" href="reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.html">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
+<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tasks.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.util"></a>Utilities</h2></div></div></div>
+<div class="toc"><dl class="toc"><dt><span class="section"><a href="util.html#bbv2.util.debugger">Debugger</a></span></dt></dl></div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.util.debugger"></a>Debugger</h3></div></div></div>
+<div class="toc"><dl class="toc">
+<dt><span class="section"><a href="util.html#bbv2.util.debugger.overview">Overview</a></span></dt>
+<dt><span class="section"><a href="util.html#bbv2.util.debugger.running">Running the Program</a></span></dt>
+<dt><span class="section"><a href="util.html#bbv2.util.debugger.break">Breakpoints</a></span></dt>
+<dt><span class="section"><a href="util.html#bbv2.util.debugger.stack">Examining the Stack</a></span></dt>
+<dt><span class="section"><a href="util.html#bbv2.util.debugger.misc">Miscellaneous Commands</a></span></dt>
+</dl></div>
+<a class="indexterm" name="idp618174896"></a><div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="bbv2.util.debugger.overview"></a>Overview</h4></div></div></div>
+<p>
+ Boost.Build comes with a debugger for Jamfiles. To run the
+ debugger, start Boost.Build with <span class="command"><strong>b2 -dconsole</strong></span>.
+ </p>
+<pre class="programlisting">
+$ b2 -dconsole
+(b2db) break gcc.init
+Breakpoint 1 set at gcc.init
+(b2db) run
+Starting program: /usr/bin/b2
+Breakpoint 1, gcc.init ( ) at /usr/share/boost-build/tools/gcc.jam:74
+74 local tool-command = ;
+(b2db) quit
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="bbv2.util.debugger.running"></a>Running the Program</h4></div></div></div>
+<p>
+ The <code class="computeroutput">run</code> command is used to start a new <code class="computeroutput">b2</code>
+ subprocess for debugging. The arguments to <code class="computeroutput">run</code> are
+ passed on the command line. If a child process is already running,
+ it will be terminated before the new child is launched.
+ </p>
+<p>
+ When the program is paused <code class="computeroutput">continue</code> will resume execution.
+ The <code class="computeroutput">step</code> command will advance the program by a single
+ statement, stopping on entry to another function or return
+ from the current function. <code class="computeroutput">next</code> is like <code class="computeroutput">step</code>
+ except that it skips over function calls. <code class="computeroutput">finish</code> executes
+ until the current function returns.
+ </p>
+<p>
+ The <code class="computeroutput">kill</code> command terminates the current child
+ immediately.
+ </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="bbv2.util.debugger.break"></a>Breakpoints</h4></div></div></div>
+<p>
+ Breakpoints are set using the <code class="computeroutput">break</code> command.
+ The location of the breakpoint can be specified as either
+ the name of a function (including the module name) or
+ or a file name and line number of the form <code class="computeroutput">file:line</code>.
+ When a breakpoint is created it is given a unique id which is
+ used to identify it for other commands.
+ </p>
+<pre class="programlisting">
+(b2db) break Jamfile:10
+Breakpoint 1 set at Jamfile:10
+(b2db) break msvc.init
+Breakpoint 2 set at msvc.init
+</pre>
+<p>
+ A breakpoint can be temporarily disabled using the <code class="computeroutput">disable</code>
+ command. While a breakpoint is disabled, the child will not
+ stop when it is hit. A disabled breakpoint can be activated
+ again with <code class="computeroutput">enable</code>.
+ </p>
+<pre class="programlisting">
+(b2db) disable 1
+(b2db) enable 1
+</pre>
+<p>
+ Breakpoints can be removed permanently with <code class="computeroutput">delete</code>
+ or <code class="computeroutput">clear</code>. The difference between them is that
+ <code class="computeroutput">delete</code> takes the breakpoint id while
+ <code class="computeroutput">clear</code> takes the location of the breakpoint as
+ originally specified to break.
+ </p>
+<pre class="programlisting">
+(b2db) clear Jamfile:10
+Deleted breakpoint 1
+(b2db) delete 2
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="bbv2.util.debugger.stack"></a>Examining the Stack</h4></div></div></div>
+<p>
+ The <code class="computeroutput">backtrace</code> command will print a summary of
+ every frame on the stack.
+ </p>
+<p>
+ The <code class="computeroutput">print</code> command can be used to show the value
+ of an expression.
+ </p>
+<pre class="programlisting">
+(b2db) print [ modules.peek : ARGV ]
+/usr/bin/b2 toolset=msvc install
+(b2db) print $(__file__)
+Jamfile.jam
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="bbv2.util.debugger.misc"></a>Miscellaneous Commands</h4></div></div></div>
+<p>
+ <code class="computeroutput">quit</code> exits the debugger.
+ <code class="computeroutput">help</code> describes the available commands.
+ </p>
+</div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer"></div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tasks.html"><img src="../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.html"><img src="../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>