summaryrefslogtreecommitdiff
path: root/doc/html/bbv2/reference.html
diff options
context:
space:
mode:
authorDouglas Gregor <doug.gregor@gmail.com>2005-07-31 16:48:16 +0000
committerDouglas Gregor <doug.gregor@gmail.com>2005-07-31 16:48:16 +0000
commit6c009ef3685caff213316319b827264c5c1489e5 (patch)
treec1305562bc74292e8daefff2313c18d081ba408a /doc/html/bbv2/reference.html
parented6bc8f4c0884495823b25c470838d8094b12446 (diff)
downloadboost-6c009ef3685caff213316319b827264c5c1489e5.tar.gz
Move 1.33.0 docs over to the branch
[SVN r30340]
Diffstat (limited to 'doc/html/bbv2/reference.html')
-rw-r--r--doc/html/bbv2/reference.html337
1 files changed, 337 insertions, 0 deletions
diff --git a/doc/html/bbv2/reference.html b/doc/html/bbv2/reference.html
new file mode 100644
index 0000000000..5905678b32
--- /dev/null
+++ b/doc/html/bbv2/reference.html
@@ -0,0 +1,337 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 26. Detailed reference</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<style type="text/css">
+body { background-image: url('http://docbook.sourceforge.net/release/images/draft.png');
+ background-repeat: no-repeat;
+ background-position: top left;
+ /* The following properties make the watermark "fixed" on the page. */
+ /* I think that's just a bit too distracting for the reader... */
+ /* background-attachment: fixed; */
+ /* background-position: center center; */
+ }</style>
+<link rel="start" href="../index.html" title="The Boost C++ Libraries">
+<link rel="up" href="../bbv2.html" title="Part III. Boost.Build v2 User Manual">
+<link rel="prev" href="extending/toolset_modules.html" title="Toolset modules">
+<link rel="next" href="reference/jamfiles.html" title="Writing Jamfiles">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%">
+<td valign="top"><img alt="boost.png (6897 bytes)" width="277" height="86" src="../../../boost.png"></td>
+<td align="center"><a href="../../../index.htm">Home</a></td>
+<td align="center"><a href="../../../libs/libraries.htm">Libraries</a></td>
+<td align="center"><a href="../../../people/people.htm">People</a></td>
+<td align="center"><a href="../../../more/faq.htm">FAQ</a></td>
+<td align="center"><a href="../../../more/index.htm">More</a></td>
+</table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="extending/toolset_modules.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="reference/jamfiles.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div><div><h2 class="title">
+<a name="bbv2.reference"></a>Chapter 26. Detailed reference</h2></div></div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"><a href="reference.html#bbv2.reference.general">General information</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference.html#bbv2.reference.init">Initialization</a></span></dt>
+<dt><span class="section"><a href="reference.html#bbv2.reference.commandline">Command line</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference/jamfiles.html">Writing Jamfiles</a></span></dt>
+<dd><dl><dt><span class="section"><a href="reference/jamfiles.html#bbv2.reference.headers">Generated headers</a></span></dt></dl></dd>
+<dt><span class="section"><a href="reference/buildprocess.html">Build process</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference/buildprocess.html#bbv2.reference.buildprocess.alternatives">Alternative selection</a></span></dt>
+<dt><span class="section"><a href="reference/buildprocess.html#bbv2.reference.buildprocess.common">Determining common properties</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference/definitions.html">Definitions</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference/definitions.html#bbv2.reference.features">Features and properties</a></span></dt>
+<dt><span class="section"><a href="reference/definitions.html#bbv2.reference.variants">Build Variants</a></span></dt>
+<dt><span class="section"><a href="reference/definitions.html#bbv2.reference.variants.proprefine">Property refinement</a></span></dt>
+<dt><span class="section"><a href="reference/definitions.html#bbv2.reference.variants.propcond">Conditional properties</a></span></dt>
+<dt><span class="section"><a href="reference/definitions.html#bbv2.reference.ids">Target identifiers and references</a></span></dt>
+</dl></dd>
+<dt><span class="section"><a href="reference/generators.html">Generators</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="reference/generators.html#id1708734">Selecting and ranking viable generators</a></span></dt>
+<dt><span class="section"><a href="reference/generators.html#id1708774">Running generators</a></span></dt>
+<dt><span class="section"><a href="reference/generators.html#id1708800">Selecting dependency graph</a></span></dt>
+<dt><span class="section"><a href="reference/generators.html#id1708811">Property adjustment</a></span></dt>
+<dt><span class="section"><a href="reference/generators.html#id1708854">Transformations cache</a></span></dt>
+</dl></dd>
+</dl>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="bbv2.reference.general"></a>General information</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#bbv2.reference.init">Initialization</a></span></dt>
+<dt><span class="section"><a href="reference.html#bbv2.reference.commandline">Command line</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.reference.init"></a>Initialization</h3></div></div></div>
+<p>bjam's first job upon startup is to load the Jam code that
+ implements the build system. To do this, it searches for a file
+ called <code class="filename">boost-build.jam</code>, first in the invocation directory, then
+ in its parent and so forth up to the filesystem root, and finally
+ in the directories specified by the environment variable
+ BOOST_BUILD_PATH. When found, the file is interpreted, and should
+ specify the build system location by calling the boost-build
+ rule:</p>
+<pre class="programlisting">
+rule boost-build ( location ? )
+</pre>
+<p>
+ If location is a relative path, it is treated as relative to
+ the directory of <code class="filename">boost-build.jam</code>. The directory specified by
+ that location and the directories in BOOST_BUILD_PATH are then searched for
+ a file called <code class="filename">bootstrap.jam</code>, which is expected to
+ bootstrap the build system. This arrangement allows the build
+ system to work without any command-line or environment variable
+ settings. For example, if the build system files were located in a
+ directory "build-system/" at your project root, you might place a
+ <code class="filename">boost-build.jam</code> at the project root containing:
+
+</p>
+<pre class="programlisting">
+boost-build build-system ;
+</pre>
+<p>
+
+ In this case, running bjam anywhere in the project tree will
+ automatically find the build system.</p>
+<p>The default <code class="filename">bootstrap.jam</code>, after loading some standard
+ definitions, loads two files, which can be provided/customised by
+ user: <code class="filename">site-config.jam</code> and <code class="filename">user-config.jam</code>.</p>
+<p>Locations where those files a search are summarized below:</p>
+<div class="table">
+<a name="bbv2.reference.init.config"></a><p class="title"><b>Table 26.1. Search paths for configuration files</b></p>
+<table class="table" summary="Search paths for configuration files">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th> </th>
+<th>site-config.jam</th>
+<th>user-config.jam</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>Linux</td>
+<td>
+<p><code class="computeroutput">/etc</code></p>
+<p><code class="computeroutput">$HOME</code></p>
+<p><code class="computeroutput">$BOOST_BUILD_PATH</code></p>
+</td>
+<td>
+<p><code class="computeroutput">$HOME</code></p>
+<p><code class="computeroutput">$BOOST_BUILD_PATH</code></p>
+</td>
+</tr>
+<tr>
+<td>Windows</td>
+<td>
+<p><code class="computeroutput">%SystemRoot%</code></p>
+<p><code class="computeroutput">%HOMEDRIVE%%HOMEPATH%</code></p>
+<p><code class="computeroutput">%HOME%</code></p>
+<p><code class="computeroutput">%BOOST_BUILD_PATH%</code></p>
+</td>
+<td>
+<p><code class="computeroutput">%HOMEDRIVE%%HOMEPATH%</code></p>
+<p><code class="computeroutput">%HOME%</code></p>
+<p><code class="computeroutput">%BOOST_BUILD_PATH%</code></p>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<p>
+ Boost.Build comes with default versions of those files,
+
+ which can serve as templates for customized versions.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="bbv2.reference.commandline"></a>Command line</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#bbv2.reference.init.args">Command line arguments</a></span></dt>
+<dt><span class="section"><a href="reference.html#bbv2.reference.init.options">Command line options</a></span></dt>
+</dl></div>
+<p>The command line may contain:</p>
+<div class="itemizedlist"><ul type="disc">
+<li>Jam options,</li>
+<li>Boost.Build <a href="reference.html#bbv2.reference.init.options" title="Command line options">options</a>,</li>
+<li>Command line arguments</li>
+</ul></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="bbv2.reference.init.args"></a>Command line arguments</h4></div></div></div>
+<p>
+ Command line arguments specify targets and build
+ request using the following rules.
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ An argument that does not contain slashes or the <code class="computeroutput">=</code>
+ symbol is either a value of an implicit feature or of a target to
+ be built. It is taken to be value of a feature if an appropriate
+ feature exists. Otherwise, it is considered a <a href="reference/definitions.html#bbv2.reference.ids" title="Target identifiers and references">target id</a>. Building the
+ special target name &#8220;clean&#8221; has the same effect as
+ using the <code class="computeroutput">--clean</code> option.
+ </li>
+<li>
+<p>
+ An argument containing either slashes or
+ the <code class="computeroutput">=</code> symbol specifies a number of build
+ request elements (see ???). In its simplest
+ form, it's just a set of properties, separated by
+ slashes, which become a single build request element,
+ for example:
+
+</p>
+<pre class="programlisting">
+borland/&lt;runtime-link&gt;static
+</pre>
+<p>
+
+ A more complex form can be used to save typing. For example,
+ instead of
+
+</p>
+<pre class="programlisting">
+borland/runtime-link=static borland/runtime-link=dynamic
+</pre>
+<p>
+
+ one can use
+
+</p>
+<pre class="programlisting">
+borland/runtime-link=static,dynamic
+</pre>
+<p>
+
+ Exactly, the conversion from argument to build request
+ elements is performed by (1) splitting the argument at each slash,
+ (2) converting each split part into a set of properties and (3)
+ taking all possible combinations
+
+ of the property sets. Each split
+ part should have the either the form
+
+</p>
+<pre class="programlisting"><span class="emphasis"><em>feature-name</em></span>=<span class="emphasis"><em>feature-value1</em></span>[","<span class="emphasis"><em>feature-valueN</em></span>]*
+</pre>
+<p>
+
+ or, in case of implicit features
+
+</p>
+<pre class="programlisting"><span class="emphasis"><em>feature-value1</em></span>[","<span class="emphasis"><em>feature-valueN</em></span>;]*
+</pre>
+<p>
+
+ will be converted into the property set
+
+</p>
+<pre class="programlisting">
+&lt;feature-name&gt;feature-value1 .... &lt;feature-name&gt;feature-valueN
+</pre>
+</li>
+</ul></div>
+<p>
+ For example, the command line
+
+</p>
+<pre class="programlisting">
+target1 debug gcc/runtime-link=dynamic,static
+</pre>
+<p>
+
+ would cause target called <code class="literal">target1</code> to be rebuilt in
+ debug mode, except that for gcc, both dynamically and statically
+ linked binaries would be created.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="bbv2.reference.init.options"></a>Command line options</h4></div></div></div>
+<p>All of the Boost.Build options start with the "--" prefix.
+ They are described in the following table.</p>
+<div class="table">
+<a name="id1707672"></a><p class="title"><b>Table 26.2. Command line options</b></p>
+<table class="table" summary="Command line options">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>Option</th>
+<th>Description</th>
+</tr></thead>
+<tbody>
+<tr>
+<td><code class="literal">--version</code></td>
+<td>Prints information on Boost.Build and Boost.Jam
+ versions.</td>
+</tr>
+<tr>
+<td>
+<a name="bbv2.reference.init.options.help"></a><code class="literal">--help</code>
+</td>
+<td>Access to the online help system. This prints general
+ information on how to use the help system with additional
+ --help* options.</td>
+</tr>
+<tr>
+<td><code class="literal">--clean</code></td>
+<td>Removes everything instead of building. Unlike
+ <code class="literal">clean</code> target in make, it is possible to clean only
+ some targets.</td>
+</tr>
+<tr>
+<td><code class="literal">--debug</code></td>
+<td>Enables internal checks.</td>
+</tr>
+<tr>
+<td><code class="literal">--dump-projects</code></td>
+<td>Cause the project structure to be output.</td>
+</tr>
+<tr>
+<td><code class="literal">--no-error-backtrace</code></td>
+<td>Don't print backtrace on errors. Primary useful for
+ testing.</td>
+</tr>
+<tr>
+<td><code class="literal">--ignore-config</code></td>
+<td>Do not load <code class="literal">site-config.jam</code> and
+ <code class="literal">user-config.jam</code>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</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"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="extending/toolset_modules.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../bbv2.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="reference/jamfiles.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>