mirror of
https://github.com/boostorg/build.git
synced 2026-02-16 13:22:11 +00:00
327 lines
12 KiB
HTML
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 boost_1_28_0 </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 "-sTOOLS=gcc metrowerks"</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
|
|
"no-cygwin" 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 "<a
|
|
href="http://www.perforce.com/jam/jam.html">Classic Jam</a>", 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>© Copyright 2001 Beman Dawes</p>
|
|
<p> </p>
|
|
|
|
</body>
|
|
|
|
</html> |