• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.. Copyright David Abrahams 2006. Distributed under the Boost
2.. Software License, Version 1.0. (See accompanying
3.. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
4
5The Boost Distribution
6======================
7
8This is a sketch of the resulting directory structure:
9
10.. parsed-literal::
11
12 |boost_ver-bold|\ |//| .................\ *The “boost root directory”*
13    **index.htm** .........\ *A copy of www.boost.org starts here*
14    **boost**\ |//| .........................\ *All Boost Header files*
15    |precompiled-dir|
16    **libs**\ |//| ............\ *Tests, .cpp*\ s\ *, docs, etc., by library*
17      **index.html** ........\ *Library documentation starts here*
18      **algorithm**\ |//|
19      **any**\ |//|
20      **array**\ |//|
21                      *…more libraries…*
22    **status**\ |//| .........................\ *Boost-wide test suite*
23    **tools**\ |//| ...........\ *Utilities, e.g. Boost.Build, quickbook, bcp*
24    **more**\ |//| ..........................\ *Policy documents, etc.*
25    **doc**\ |//| ...............\ *A subset of all Boost library docs*
26
27.. sidebar:: Header Organization
28
29   .. class:: pre-wrap
30
31     The organization of Boost library headers isn't entirely uniform,
32     but most libraries follow a few patterns:
33
34     * Some older libraries and most very small libraries place all
35       public headers directly into ``boost``\ |/|.
36
37     * Most libraries' public headers live in a subdirectory of
38       ``boost``\ |/|, named after the library.  For example, you'll find
39       the Python library's ``def.hpp`` header in
40
41       .. parsed-literal::
42
43         ``boost``\ |/|\ ``python``\ |/|\ ``def.hpp``.
44
45     * Some libraries have an “aggregate header” in ``boost``\ |/| that
46       ``#include``\ s all of the library's other headers.  For
47       example, Boost.Python_'s aggregate header is
48
49       .. parsed-literal::
50
51         ``boost``\ |/|\ ``python.hpp``.
52
53     * Most libraries place private headers in a subdirectory called
54       ``detail``\ |/|, or ``aux_``\ |/|.  Don't expect to find
55       anything you can use in these directories.
56
57It's important to note the following:
58
59.. _Boost root directory:
60
611. The path to the **boost root directory** (often |default-root|) is
62   sometimes referred to as ``$BOOST_ROOT`` in documentation and
63   mailing lists .
64
652. To compile anything in Boost, you need a directory containing
66   the ``boost``\ |/| subdirectory in your ``#include`` path.  |include-paths|
67
683. Since all of Boost's header files have the ``.hpp`` extension,
69   and live in the ``boost``\ |/| subdirectory of the boost root, your
70   Boost ``#include`` directives will look like:
71
72   .. parsed-literal::
73
74     #include <boost/\ *whatever*\ .hpp>
75
76   or
77
78   .. parsed-literal::
79
80     #include "boost/\ *whatever*\ .hpp"
81
82   depending on your preference regarding the use of angle bracket
83   includes.  |forward-slashes|
84
854. Don't be distracted by the ``doc``\ |/| subdirectory; it only
86   contains a subset of the Boost documentation.  Start with
87   ``libs``\ |/|\ ``index.html`` if you're looking for the whole enchilada.
88
89