|
Boost-Commit : |
From: jurko.gospodnetic_at_[hidden]
Date: 2008-05-01 06:03:15
Author: jurko
Date: 2008-05-01 06:03:15 EDT (Thu, 01 May 2008)
New Revision: 44971
URL: http://svn.boost.org/trac/boost/changeset/44971
Log:
Boost Build documentation typo correction. Removed trailing spaces. Minor stylistic changes.
Text files modified:
trunk/tools/build/v2/doc/src/tutorial.xml | 119 +++++++++++++++++++--------------------
1 files changed, 58 insertions(+), 61 deletions(-)
Modified: trunk/tools/build/v2/doc/src/tutorial.xml
==============================================================================
--- trunk/tools/build/v2/doc/src/tutorial.xml (original)
+++ trunk/tools/build/v2/doc/src/tutorial.xml 2008-05-01 06:03:15 EDT (Thu, 01 May 2008)
@@ -18,7 +18,7 @@
<para>This section will guide you though the most basic features of
Boost.Build V2. We will start with the “Hello, world” example,
- learn how to use libraries, and finish with testing and installing features.
+ learn how to use libraries, and finish with testing and installing features.
</para>
<section id="bbv2.tutorial.hello">
@@ -37,9 +37,9 @@
things. First of all, just invoking <command>bjam</command> will
build the <filename>hello</filename>
executable by compiling and
- linking <filename>hello.cpp</filename>. By default, debug variant
+ linking <filename>hello.cpp</filename>. By default, debug variant
is built. Now, to build the
- release variant of <filename>hello</filename>, invoke
+ release variant of <filename>hello</filename>, invoke
<screen>
bjam release
@@ -66,7 +66,7 @@
Since we have already built both variants
of <filename>hello</filename>, hello.cpp won't be recompiled;
instead the existing object files will just be linked into the
- corresponding variants of <filename>hello2</filename>. Now
+ corresponding variants of <filename>hello2</filename>. Now
let's remove all the built products:
<screen>
@@ -140,7 +140,7 @@
<section id="bbv2.tutorial.properties.requirements">
<title>Build Requests and Target Requirements</title>
- <para>
+ <para>
The set of properties specified on the command line constitute
a <firstterm>build request</firstterm>—a description of
the desired properties for building the requested targets (or,
@@ -162,15 +162,15 @@
</para>
<programlisting>
-exe hello
+exe hello
: hello.cpp
: <include>boost <threading>multi
;
</programlisting>
- <para>
+ <para>
When <filename>hello</filename> is built, the two
- requirements specified above will always be present.
+ requirements specified above will always be present.
If the build request given on the <command>bjam</command>
command-line explictly contradicts a target's requirements,
the target requirements usually override (or, in the case of
@@ -187,7 +187,7 @@
<tip>
<para>The value of the <varname><include></varname> feature is
relative to the location of <filename>Jamroot</filename> where it's
- used.
+ used.
</para>
</tip>
@@ -200,14 +200,14 @@
target, <filename>hello2</filename>, we could simply duplicate
them. However, as projects grow, that approach leads to a great
deal of repeated boilerplate in Jamfiles.
-
+
Fortunately, there's a better way. Each project can specify a
set of <firstterm>attributes</firstterm>, including
requirements:
<programlisting>
-project
- : requirements <include>/home/ghost/Work/boost <threading>multi
+project
+ : requirements <include>/home/ghost/Work/boost <threading>multi
;
exe hello : hello.cpp ;
@@ -236,7 +236,7 @@
example, in the following directory layout:
<screen>
-top/
+top/
|
+-- Jamroot
|
@@ -244,7 +244,7 @@
| |
| +-- Jamfile
| `-- app.cpp
- |
+ |
`-- util/
|
+-- foo/
@@ -274,7 +274,7 @@
<para>
Projects inherit all attributes (such as requirements)
from their parents. Inherited requirements are combined with
- any requirements specified by the subproject.
+ any requirements specified by the subproject.
For example, if <filename>top/Jamroot</filename> has
<programlisting>
@@ -289,8 +289,8 @@
rather than added-to, in subprojects. See <xref
linkend="bbv2.reference.features.attributes"/> for more
information</para>
- </footnote>
- More details can be found in
+ </footnote>
+ More details can be found in
<xref linkend= "bbv2.advanced.projects"/>.
</para>
@@ -346,7 +346,7 @@
While <code>app.cpp</code> refers to a regular source file,
<code>../util/foo//bar</code> is a reference to another target:
a library <filename>bar</filename> declared in the Jamfile at
- <filename>../util/foo</filename>.
+ <filename>../util/foo</filename>.
</para>
<tip>
@@ -378,13 +378,13 @@
<filename>app.cpp</filename>. We could manually add the necessary
<code>#include</code> paths to <filename>app</filename>'s
requirements as values of the
- <varname><include></varname> feature, but then this work will
+ <varname><include></varname> feature, but then this work will
be repeated for all programs
that use <filename>foo</filename>. A better solution is to modify
<filename>util/foo/Jamfile</filename> in this way:
<programlisting>
-project
+project
: usage-requirements <include>.
;
@@ -399,7 +399,7 @@
<para>Another improvement is using symbolic identifiers to refer to
the library, as opposed to <filename>Jamfile</filename> location.
- In a large project, a library can be used by many targets, and if
+ In a large project, a library can be used by many targets, and if
they all use <filename>Jamfile</filename> location,
a change in directory organization entails much work.
The solution is to use project ids—symbolic names
@@ -415,14 +415,14 @@
<programlisting>
exe app : app.cpp /library-example/foo//bar ;
</programlisting>
-The <filename>/library-example/foo//bar</filename> syntax is used
+The <filename>/library-example/foo//bar</filename> syntax is used
to refer to the target <filename>bar</filename> in
the project with id <filename>/library-example/foo</filename>.
We've achieved our goal—if the library is moved to a different
directory, only <filename>Jamroot</filename> must be modified.
Note that project ids are global—two Jamfiles are not
allowed to assign the same project id to different directories.
-
+
</para>
<tip>
@@ -434,12 +434,12 @@
<code><library>/boost/filesystem//fs</code> to the project's requirements, like this:</para>
<programlisting>
-project
+project
: requirements <source>/boost/filesystem//fs
- ;
+ ;
</programlisting>
</tip>
-
+
</section>
<section id="bbv2.tutorial.testing">
@@ -457,38 +457,35 @@
<emphasis>dynamic</emphasis>), which are only referred to from executables,
and must be available at run time. Boost.Build can create and use both kinds.
</para>
-
+
<para>The kind of library produced from a <code>lib</code> target is
determined by the value of the <varname>link</varname> feature. Default
- value is <literal>shared</literal>, and to build static library, the value
- should be <literal>static</literal>. You can either requiest static build
+ value is <literal>shared</literal>, and to build a static library, the value
+ should be <literal>static</literal>. You can request a static build either
on the command line:
<screen>
bjam link=static
</screen>
- or in the library's requirements:
+ or in the library's requirements:
<programlisting>
lib l : l.cpp : <link>static ;
</programlisting>
</para>
<para>
- We can also use the <varname><link></varname> property
- to express linking requirements on a per-target basis.
- For example, if a particular executable can be correctly built
- only with the static version of a library, we can qualify the
- executable's <link
- linkend="bbv2.reference.targets.references">target
- reference</link> to the library as follows:
-
-<!-- There has been no earlier indication that target references can
- contain properties. You can't assume that the reader will
- recognize that strange incantation as a target reference, or that
- she'll know what it means. You also can't assume that hyperlinks
- will help the reader, because she may be working from a printout,
- as I was.
- VP: to be addressed when this section is moved. See comment
- below.
+ We can also use the <varname><link></varname> property to express
+ linking requirements on a per-target basis. For example, if a particular
+ executable can be correctly built only with the static version of a
+ library, we can qualify the executable's <link
+ linkend="bbv2.reference.targets.references">target reference</link> to the
+ library as follows:
+
+<!-- There has been no earlier indication that target references can contain
+ properties. You can't assume that the reader will recognize that strange
+ incantation as a target reference, or that she'll know what it means. You
+ also can't assume that hyperlinks will help the reader, because she may be
+ working from a printout, as I was.
+ VP: to be addressed when this section is moved. See comment below.
-->
<programlisting>
@@ -521,14 +518,14 @@
exe e1 : e1.cpp foo ;
exe e10 : e10.cpp foo ;</programlisting>
- The <link linkend="bbv2.tasks.alias"><functionname>alias</functionname></link>
+ The <link linkend="bbv2.tasks.alias"><functionname>alias</functionname></link>
rule is specifically used to rename a reference to a target and possibly
change the properties.
-
+
<!-- You should introduce the alias rule in an earlier
section, before describing how it applies to this
specific use-case, and the foregoing sentence should
- go there.
+ go there.
VP: we've agreed that this section should be moved further
in the docs, since it's more like advanced reading. When
I'll move it, I'll make sure 'alias' is already mentioned.
@@ -540,10 +537,10 @@
When one library uses another, you put the second library in
the source list of the first. For example:
<programlisting>
-lib utils : utils.cpp /boost/filesystem//fs ;
+lib utils : utils.cpp /boost/filesystem//fs ;
lib core : core.cpp utils ;
exe app : app.cpp core ;</programlisting>
- This works no matter what kind of linking is used. When
+ This works no matter what kind of linking is used. When
<filename>core</filename> is built as a shared library, it is linked
directly into <filename>utils</filename>. Static libraries can't
link to other libraries, so when <filename>core</filename> is built
@@ -575,11 +572,11 @@
<para>Sometimes, particular relationships need to be maintained
among a target's build properties. For example, you might want to set
specific <code>#define</code> when a library is built as shared,
- or when a target's <code>release</code> variant is built.
- This can be achieved with <firstterm>conditional requirements</firstterm>.
+ or when a target's <code>release</code> variant is built.
+ This can be achieved with <firstterm>conditional requirements</firstterm>.
<programlisting>
-lib network : network.cpp
+lib network : network.cpp
: <emphasis role="bold"><link>shared:<define>NEWORK_LIB_SHARED</emphasis>
<variant>release:<define>EXTRA_FAST
;
@@ -588,7 +585,7 @@
In the example above, whenever <filename>network</filename> is
built with <code><link>shared</code>,
<code><define>NEWORK_LIB_SHARED</code> will be in its
- properties, too. Also, whenever its release variant is built,
+ properties, too. Also, whenever its release variant is built,
<code><define>EXTRA_FAST</code> will appear in its properties.
</para>
@@ -606,7 +603,7 @@
</programlisting>
When building <filename>demangler</filename>, Boost.Build will compare
requirements for each alternative with build properties to find the best
- match. For example, when building with <code><toolset>gcc</code>
+ match. For example, when building with <code><toolset>gcc</code>
alternative 2, will be selected, and when building with
<code><toolset>msvc</code> alternative 3 will be selected. In all
other cases, the most generic alternative 1 will be built.
@@ -625,12 +622,12 @@
<programlisting>
# util/lib2/Jamfile
lib lib2
- :
+ :
: <file>lib2_release.a <variant>release
;
lib lib2
- :
+ :
: <file>lib2_debug.a <variant>debug
;
</programlisting>
@@ -650,7 +647,7 @@
As with any target, the alternative selected depends on the
properties propagated from <filename>lib2</filename>'s dependents.
If we build the the release and debug versions of <filename>app</filename> will be linked
- with <filename>lib2_release.a</filename> and <filename>lib2_debug.a</filename>, respectively.
+ with <filename>lib2_release.a</filename> and <filename>lib2_debug.a</filename>, respectively.
</para>
@@ -668,7 +665,7 @@
compiler. If the gcc toolset were used to link an executable
target to <filename>pythonlib</filename>, <option>-lpython22</option>
would appear in the command line (other compilers may use
- different options).
+ different options).
</para>
<para>
@@ -688,7 +685,7 @@
</para>
<para>A more advanced use of prebuilt targets is described in <xref
- linkend="bbv2.recipies.site-config"/>.
+ linkend="bbv2.recipies.site-config"/>.
</para>
</section>
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk