Boost logo

Boost :

From: Daryle Walker (darylew_at_[hidden])
Date: 2008-08-24 14:46:33

I started out making a group Boost project for Xcode, so I can
compile Boost.Test and S11N just once and include them in my other
projects. Then I wondered how far can I take this.

1. I tried including all the sources in the libs/ directory.
2. It seems that there is source code in the detail, function-types,
and smart_ptr that we don't really need, so I've now excluded it.
(The function-types one needed the Wave _tool_ to be created, so I
really hope it's not needed.)
3. Just like Linux has various package installers (apt-get, etc.),
so does Mac OS X. I originally had Fink, but switched to MacPorts.
Dowloaded packages include: bzip2, docbook, doxygen, expat, fop,
ghostscript, graphviz, icu, libxml1, openmpi, subversion, texlive,
and zlib.
4. I generally have one static library file for each Boost library.
For libraries that need another, I made the corresponding targets
dependencies, but I didn't link the results together.
5. The test library gets three static libraries. They all include a
"main" or something like it, so I'll probably make a custom fourth
library for a grand Boost library file.
6. The graph library has extra support for Expat, which I included
from MacPorts. Should I leave that out for a publicly distributed
grand Boost library file, since I can't guarantee a general user
having it?
7. The iostreams library has extra support for bzip2 and zlib, which
I originally included from MacPorts. I realized that my system (Mac
OS X 10.4, PowerPC) includes copies of those libraries and headers,
so I switched to those. This means that I can safely include them in
a grand Boost library, right?
8. I left out the long-double versions of the math functions because
they're disabled on my system. Should I try (conditionally?)
including them on Intel-builds since I think they're supported
there? How do I do that?
9. I have the MPI library built because I have OpenMPI through
MacPorts. Should I leave that out of a grand Boost library?
10. For the Python library, I tried connecting to the OS's
11. Because of [9] and [10], I made the MPI-Python library too. I
guess its status for a grand Boost library depends on the answer for
12. Does anyone have any idea how to create a Python extension? I
did a very quick read of the docs and couldn't get it. So I just
made a shared library for the MPI extension for Python and included
the applicable static libraries and framework. (It seems you are
supposed to use a special Python script, and _never_ manually.)
Since I made a final product, I had to link in my static libraries
for MPI, Python, MPI-Python, and S11N, then link the OpenMPI
libraries from MacPorts, then the system's Python framework, then a
surprise need for some Open libraries also from MacPorts.
13. For the regex library, I defined having ICU, and included it from
MacPorts. Should I leave out ICU support in a grand Boost library?

Actually, I think the system has buried copies of Expat and ICU, but
I don't know how to reach them, or if it's even possible.

Maybe I should try making a framework of all of Boost, modulo the
answers on what I should include above. Should I somehow include
object-code for the parts of the Test library that bring a "main"?
Or do I have to tell the user to get the framework, then download
regular Boost to build what's needed for Testing (or MPI, MPI/Python,
Graph/Expat, or Regex/ICU)?

I think I would have to make a "boost/boost.hpp" overall header to be
the focal point of the framework, which may be a good idea to create
anyway. How would I test it? Hmm, would anyone here like to take a
challenge to create a program that uses ALL of Boost, so every symbol
gets exercised?

Daryle Walker
Mac, Internet, and Video Game Junkie
darylew AT hotmail DOT com

Boost list run by bdawes at, gregod at, cpdaniel at, john at