2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-16 01:12:13 +00:00
Files
build/index.html
Dave Abrahams 56a7244dd3 Merged from RC_1_28_0
[SVN r13944]
2002-05-16 00:56:42 +00:00

327 lines
12 KiB
HTML

<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Building Boost Libraries</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<h1>
<img src="../../c++boost.gif" alt="c++boost.gif (8819 bytes)" align= "center" width="277" height="86">Building
Boost Libraries</h1>
<p><a href="#Introduction">Introduction</a><br>
<a href="#Preliminaries">Preliminaries</a><br>
<a href="#Building">Building Boost Libraries</a><br>
<a href="#Configuring">Configuring the tools</a><br>
<a href="#Tools">Supported Toolsets</a><br>
<a href="#Jam">Boost.Jam executable</a></p>
<h2><a name="Introduction">Introduction</a></h2>
<p>These instructions explain how to accomplish common tasks using
<b>Boost.Build</b>, the Boost Build System. The build system uses <a
href="build_system.htm"> Boost.Jam</a>, an extension of the
<a href="http://www.perforce.com/jam/jam.html">Perforce Jam</a>
portable <i>make</i> replacement.</p>
<p>For tasks not covered here, see the full <a
href="build_system.htm">build system documentation</a>.</p>
<p>Note that many Boost libraries are implemented entirely within
their headers, and so can be used without building object
libraries. Libraries that do require building object libraries first
include the <a href="../../libs/python/doc/index.html">Python</a>, <a
href="../../libs/regex/index.htm">Regex</a>, and <a
href="../../libs/thread/doc/index.html">Threads</a> libraries.
<h2><a name="Preliminaries">Preliminaries</a></h2>
<ul>
<li><a href="../../more/download.html">Download Boost</a>, and unpack the full
directory structure into some root directory.</li>
<li>Install the <a href="#Jam">Boost.Jam executable</a> if needed. <a href="#Jam">
Pre-builts</a> are available. Make sure it's in your path. (Note: Boost
requires an enhanced version of Jam; the basic version won't work.)</li>
<li><a href="#Configuring">Configure</a> the command-line toolset(s)
you intend to use. It might be a good idea to verify your command
line compiler is working if you don't use it regularly.
<li>Optional: if you intend to build the <a
href="../../libs/python/doc/index.html">Boost.Python</a> library, set
environment variables to configure Boost.Build for your Python
installation. For more information, see these <a
href="../../libs/python/doc/building.html">instructions</a>. If you
leave this step out, Boost.Build will print a message about how to
do it, and will skip the build for Boost.Python.
</ul>
<h2><a name="Building">Building</a> Boost Libraries</h2>
<p>Using your operating system's command line interpreter, execute the following
steps. The sample commands given will work for both UNIX and Windows.</p>
<ul>
<li>Change to the Boost root directory. (The directory you unpacked the
distribution into; unless you changed it, the name will be boost_n_n_n where
n_n_n is the release number. Among others files, it contains c++boost.gif,
and subdirectories boost, libs, more, etc.)
<blockquote>
<p><code>chdir&nbsp;boost_1_28_0&nbsp;&nbsp;</code> <i>(or whatever release you downloaded)</i>
</blockquote>
<li>Invoke the build system, specifying the <a
href="#Tools">toolset</a>(s) you wish to use. The example is for
the GNU and Metrowerks compilers. For more sophisticated jam
invocation options, see this <a
href="build_system.htm#initiating">documentation</a>.
<blockquote>
<p><code>bjam&nbsp;&quot;-sTOOLS=gcc&nbsp;metrowerks&quot;</code></p>
</blockquote>
</ul>
<h2><a name="Configuring">Configuring the tools</a></h2>
<p>The build system's toolsets are designed to work in either of two ways:</p>
<ol>
<li>The user sets up all of the environment for each toolset he
wants to use in the normal way. For example, for Microsoft VC++,
...vc98/bin is in the path, vcvars32.bat or equivalent has been
invoked, etc. For Metrowerks CodeWarrior, cwenv.bat or equivalent
has been called and ...Other Metrowerks Tools/Command Line Tools
is in the path. Many Unix operating systems come preconfigured
this way and require no user intervention.<br>
<br>
<li>The user doesn't want his environment cluttered with settings or
has non-standard installations for some of his tools. Instead, he
or she sets variables which point to the toolset installation
directories, either in the command shell environment or on the
<code>bjam</code> command-line. These variables are used by the
build system to locate the tools and invoke the necessary
setup.
</ol>
<h2><a name="Tools">Supported Toolsets</a></h2>
The following toolsets are supported by Boost.Build. For information
about <a href="#Configuring">configuring</a> each toolset, click its name in the leftmost
column.
<table border="1" cellpadding="5">
<tr>
<td><b>TOOLS Name</b></td>
<td><b>Description</b></td>
</tr>
<tr>
<td><code><a href="borland-tools.html">borland</a></code></td>
<td><a href="http://www.borland.com/bcppbuilder/freecompiler">Borland</a> C++</td>
</tr>
<tr>
<td><code><a href="como-tools.html">como</a></code></td>
<td><a href="http://www.comeaucomputing.com">Comeau C++</a> compiler front-end for Windows,
using Microsoft <a href="http://msdn.microsoft.com/visualc/">Visual C++</a>as a back-end.</td>
</tr>
<tr>
<td><code><a href="gcc-tools.html">gcc</a></code></td>
<td><a href="http://gcc.gnu.org">GNU GCC</a> on Unix and <a href="http://www.cygwin.com">Cygwin</a>.</td>
</tr>
<tr>
<td><code><a href="gcc-stlport-tools.html">gcc-stlport</a></code></td>
<td><a href="http://gcc.gnu.org">GNU GCC</a> on Unix and <a
href="http://www.cygwin.com">Cygwin</a>, using the <a
href="http://www.stlport.org">STLport</a> standard library
implementation</td>
</tr>
<tr>
<td><code><a href="gcc-nocygwin-tools.html">gcc-nocygwin</a></code></td>
<td>GNU GCC Cygwin command line compiler tools running in
&quot;no-cygwin&quot; mode, using the <a href="http://www.stlport.org">STLport</a>
standard library implementation (produces commercially redistributable
objects)</td>
</tr>
<tr>
<td><code><a href="intel-win32-tools.html">intel-win32</a></code></td>
<td><a
href="http://www.intel.com/software/products/compilers/c60/">Intel
C++ for Windows</a> using the Dinkumware standard library in the Intel-required Microsoft
<a href="http://msdn.microsoft.com/visualc/">Visual C++</a> 6 or 7
installation</td>
</tr>
<tr>
<td><code><a href="intel-linux-tools.html">intel-linux</a></code></td>
<td><a href="http://www.intel.com/software/products/compilers/c60l/">Intel C++ for Linux</a></td>
</tr>
<tr>
<td><code><a href="kcc-tools.html">kcc</a></code></td>
<td><a href="http://developer.intel.com/software/products/kcc/">KAI C++</a></td>
</tr>
<tr>
<td><code><a href="metrowerks-tools.html">metrowerks</a></code></td>
<td><a href="http://www.metrowerks.com">Metrowerks CodeWarrior</a> command-line tools</td>
</tr>
<tr>
<td><code><a href="mingw-tools.html">mingw</a></code></td>
<td>GNU GCC and associated tools in <a
href="http://www.mingw.org">MinGW</a> configuration (produces
commercially redistributable objects)</td>
</tr>
<tr>
<td><code><a href="mipspro-tools.html">mipspro</a></code></td>
<td>SGI <a href="http://www.sgi.com/developers/devtools/languages/mipspro.html">
MIPSpro C and C++</a></td>
</tr>
<tr>
<td><code><a href="mipspro-tools.html">mipspro</a></code></td>
<td>SGI <a href="http://www.sgi.com/developers/devtools/languages/mipspro.html">
MIPSpro C and C++</a></td>
</tr>
<tr>
<td><code><a href="msvc-tools.html">msvc</a></code></td>
<td>Microsoft <a href="http://msdn.microsoft.com/visualc/">Visual
C++</a> command-line tools.</td>
</tr>
<tr>
<td><code><a href="msvc-stlport-tools.html">msvc-stlport</a></code></td>
<td>Microsoft <a href="http://msdn.microsoft.com/visualc/">Visual
C++</a> command-line tools, using the <a
href="http://www.stlport.org">STLport</a> standard library
implementation</td>
</tr>
<tr>
<td><code><a href="tru64cxx-tools.html">tru64cxx</a></code></td>
<td><a href="http://www.tru64unix.compaq.com/cplus/">Compaq C++</a>
for Tru64 UNIX (versions prior to 6.5)</td>
</tr>
<tr>
<td><code><a href="tru64cxx-tools.html">tru64cxx65</a></code></td>
<td><a href="http://www.tru64unix.compaq.com/cplus/">Compaq C++</a>
Version 6.5 for Tru64 UNIX</td>
</tr>
<tr>
<td><code><a href="vacpp-tools.html">vacpp</a></code></td>
<td><a href="http://www-3.ibm.com/software/ad/vacpp/">IBM Visual
Age C++</a> command-line tools</td>
</tr>
<tr>
<td><code><a href="vc7-tools.html">vc7</a></code></td>
<td>Microsoft <a href="http://msdn.microsoft.com/visualc/">Visual
C++</a> command-line tools, in case you are using the <a
href="msvc-tools.html"><code>msvc</code></a> toolset for a <a
href="http://msdn.microsoft.com/visualc/productinfo/previous/default.asp">Visual
C++ 6.x</a>.</td>
</tr>
</table>
<p>Unless otherwise specified, the library is assumed to be the one shipped with
the compiler.</p>
<p>Additional tools can be supplied by adding an appropriate xxxx-tools.jam file
to the tools/build subdirectory, where xxxx is the name of the tool being
added. If you write an additional toolset file, please submit it to Boost
so others may benefit from your work.</p>
<h2>Boost.<a name="Jam">Jam</a> executable</h2>
<p>Pre-built Boost.Jam executables are available for the following platforms:</p>
<ul>
<li><a href="http://boost.sourceforge.net/jam-executables/bin.hpux/bjam.gz">
HPUX</a> </li>
<li><a href="http://boost.sourceforge.net/jam-executables/bin.aix/bjam.gz">
IBM Aix</a> </li>
<li>
<a href="http://boost.sourceforge.net/jam-executables/bin.linuxx86/bjam.gz">
Linux-x86</a> </li>
<li>
<a href="http://boost.sourceforge.net/jam-executables/bin.ntx86/bjam.zip">
Microsoft Windows</a>
<li><a href="http://boost.sourceforge.net/jam-executables/bin.irix/bjam.gz">
SGI Irix</a> </li>
<li>
<a href="http://boost.sourceforge.net/jam-executables/bin.solaris/bjam.gz">
SUN Solaris</a> </li>
<li>
<a href="http://boost.sourceforge.net/jam-executables/bin.osf/bjam.gz">
Compaq Tru64</a> </li>
<li>
<a href="http://boost.sourceforge.net/jam-executables/bin.linuxppc/bjam.gz">
Linux-PPC</a> </li>
</ul>
<p>RedHat Linux RPM packages are available:</p>
<ul>
<li>
<a href="http://boost.sourceforge.net/jam-executables/boost-jam-3.1-1.i386.rpm">
Boost.Jam rpm</a> </li>
<li>
<a href="http://boost.sourceforge.net/jam-executables/boost-jam-3.1-1.src.rpm">
Boost.Jam source rpm </a></li>
</ul>
<p>The Boost.Jam source files are included in the Boost distribution, so you can build
the Boost.Jam executable yourself:</p>
<ul>
<li>For most Unix variants, you can build Boost.Jam by simply invoking
<tt>make</tt> in the <tt>tools/build/jam_src</tt> subdirectory of your
boost installation.
<li><a href="http://public.perforce.com/public/jam/src/README">Build
Instructions</a> are the same as for &quot;<a
href="http://www.perforce.com/jam/jam.html">Classic Jam</a>&quot;, if
you need them.
<li>Your new Boost.Jam executable will be located in a newly-created
<tt>tools/build/jam_src/bin.</tt><i>platform</i> subdirectory.
<li>There will be two executables generated: <tt>"jam"</tt>, and
<tt>"bjam"</tt>. They are in fact a copy of the same binary.
The <tt>"bjam"</tt> invocation uses the
newer simpler build behaviour. But if you need the traditional Jam/MR
behaviour you can use the <tt>"jam"</tt> invocation.
<li>If you build Boost.Jam for a new platform using the same boost
installation, be sure to first remove all object files, executables, and
libraries created by the initial make in the <tt>jam_src</tt> directory.
</ul>
<hr>
<p>Revised <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->15 May, 2002<!--webbot bot="Timestamp" i-checksum="13973" endspan -->
</p>
<p>&copy; Copyright 2001 Beman Dawes</p>
<p>&nbsp;</p>
</body>
</html>