]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/math/doc/overview/building.qbk
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / math / doc / overview / building.qbk
CommitLineData
7c673cae
FG
1[section:building If and How to Build a Boost.Math Library, and its Examples and Tests]
2
3[h4 Building a Library (shared, dynamic .dll or static .lib)]
4
5The first thing you need to ask yourself is "Do I need to build anything at all?"
6as the bulk of this library is header only: meaning you can use it just by
7#including the necessary header(s).
8
9For most simple uses,
10including a header (or few) is best for compile time and program size.
11
12Refer to
13[link extern_c C99 and C++ TR1 C-style Functions]
14for pros and cons of using
15the TR1 components as opposed to the header only ones.
16
17The ['only] time you ['need] to build the library is if you want to use the
18`extern "C"` functions declared in `<boost/math/tr1.hpp>`. To build this
19using Boost.Build, from a commandline boost-root directory issue a command like:
20
21 bjam toolset=gcc --with-math install
22
23that will do the job on Linux, while:
24
25 bjam toolset=msvc --with-math --build-type=complete stage
26
27will work better on Windows (leaving libraries built
28in sub-folder `/stage` below your Boost root directory).
29Either way you should consult the
30[@http://www.boost.org/doc/libs/release/more/getting_started/index.html
31getting started guide] for more information.
32
33You can also build the libraries from your favourite IDE or command line tool:
34each `extern "C"` function declared in `<boost/math/tr1.hpp>` has its own
35source file with the same name in `libs/math/src/tr1`. Just select the
36sources corresponding to the functions you are using and build them into
37a library, or else add them directly to your project. Note that the
38directory `libs/math/src/tr1` will need to be in your compiler's
39#include path as well as the boost-root directory
40(MSVC Tools, Options, Projects and Solutions, VC++ Directories, Include files).
41
42[note If you are using
43a Windows compiler that supports auto-linking and you have built the sources
44yourself (or added them directly to your project) then you will need to
45prevent `<boost/math/tr1.hpp>` from trying to auto-link to the binaries
46that Boost.Build generates. You can do this by defining either
47BOOST_MATH_NO_LIB or BOOST_ALL_NO_LIB at project level
48(so the defines get passed to each compiler invocation).
49]
50
51Optionally the sources in `libs/math/src/tr1` have support for using
52`libs/math/src/tr1/pch.hpp` as a precompiled header
53['if your compiler supports precompiled headers.] Note that normally
54this header is a do-nothing include: to activate the header so that
55it #includes everything required by all the sources you will need to
56define BOOST_BUILD_PCH_ENABLED on the command line, both when building
57the pre-compiled header and when building the sources. Boost.Build
58will do this automatically when appropriate.
59
60[h4 Building the Examples]
61
62The examples are all located in `libs/math/example`, they can all
63be built without reference to any external libraries, either with
64Boost.Build using the supplied Jamfile, or from your compiler's
65command line. The only requirement is that the Boost headers are
66in your compilers #include search path.
67
68[h4 Building the Tests]
69
70The tests are located in `libs/math/test` and are best built
71using Boost.Build and the supplied Jamfile. If you plan to
72build them separately from your favourite IDE then you will
73need to add `libs/math/test` to the list of your compiler's
74search paths.
75
76You will also need to build and link to
77the Boost.Regex library for many of the tests: this can built
78from the command line by following the
79[@http://www.boost.org/doc/libs/release/more/getting_started/index.html
80getting started guide], using a command such as:
81
82 bjam toolset=gcc --with-regex install
83
84or
85
86 bjam toolset=msvc --with-regex --build-type=complete stage
87
88depending on whether you are on Linux or Windows.
89
90Many of the tests have optional precompiled header support
91using the header `libs/math/test/pch.hpp`.
92Note that normally
93this header is a do-nothing include: to activate the header so that
94it #includes everything required by all the sources you will need to
95define BOOST_BUILD_PCH_ENABLED on the command line, both when building
96the pre-compiled header and when building the sources. Boost.Build
97will do this automatically when appropriate.
98
99[endsect]
100
101[/ building.qbk
102 Copyright 2006, 2007, 2008, 2010 John Maddock and Paul A. Bristow.
103 Distributed under the Boost Software License, Version 1.0.
104 (See accompanying file LICENSE_1_0.txt or copy at
105 http://www.boost.org/LICENSE_1_0.txt).
106]