Boost logo

Boost-Build :

Subject: [Boost-build] Boost.Build woes
From: Stefan Seefeld (stefan_at_[hidden])
Date: 2015-12-21 10:26:55


trying to help a student get started with Boost.Python, I'm running
again into a couple of Boost.Build issues, and it isn't quite clear what
the problem is, and whose responsibility it is to fix (note: it could
very well turn out to be my own !).

(Strangely reminds me of C++ template error messages - equally hard to
understand, and even harder to locate the proper place for a fix...)

Installing the various Boost packages on my Fedora machines, I get a
"boost-examples" package containing, well, examples.
However, the build files aren't properly adjusted to the separate
install location, so I get this error:

> Unable to load Boost.Build: could not find build system.
> ---------------------------------------------------------
> /usr/share/doc/boost-examples/libs/python/example/boost-build.jam
> attempted to load the build system by invoking
> 'boost-build ../../../tools/build/v2 ;'
> but we were unable to find "bootstrap.jam" in the specified directory

However, it isn't immediately clear what the correct path is. Searching
for bootstrap.jam I find
/usr/share/boost-build/src/kernel/bootstrap.jam (part of the
"boost-build" package). However, replacing the above faulty line by

   `boost-build /usr/share/boost-build/src/kernel ;`

still doesn't work. I get this error instead:
> /usr/share/boost-build/src/build/project.jam:262: in find-jamfile from
> module project
> error: Unable to load Jamfile.
> error: Could not find a Jamfile in directory '../../../..'.
> error: Attempted to find it with pattern '[Bb]uild.jam [Jj]amfile.v2
> [Jj]amfile [Jj]amfile.jam'.
> error: Please consult the documentation at ''.
> /usr/share/boost-build/src/build/project.jam:280: in load-jamfile from
> module project
> ...
> /usr/share/doc/boost-examples/libs/python/example/boost-build.jam:8:
> in module scope from module

(What is the '../../../..' in the error above ? It doesn't come from my
modified boost-build.jam file.)

Note that I'm reporting the issue with respect to Boost.Python, but I
strongly suspect that similar issues are present with most of the other
projects, whose examples are part of the same separate package

Now you might argue that I ought to report this to the Fedora package
maintainer(s). However, I strongly suspect that they aren't in a
position to fix this, as they don't know enough about the Boost
internals (even understanding the issues requires knowledge in
Boost.Build and Boost.Python !), which brings me to the general point: I
still find it surprisingly hard to work with and contribute to Boost. As
a volunteer I have limited time, which I'd like to use to focus on a
particular project of interest (Boost.Python in my current case), but
all the issues I keep running into require insight knowledge about parts
of Boost I'd rather not have to learn, at least not in detail. (And
while I obviously can only speak for myself here, I strongly suspect the
same is true for many other people and projects. Boost.Python adoption
isn't as broad as I would hope, and the number one complaint I get is it
being so hard to set up.)

This is one of the driving forces for me to want to separate
Boost.Python into a stand-alone project, so it's easier to maintain and
support. You may remember my inquiring on this list about the
possibility to build Boost projects both in-tree as well as in
stand-alone mode. Unfortunately I haven't been able to make progress on
that front either.

So, to summarize: I would like to find out how to modify the
Boost.Python build logic to support these different use-cases:

    - build everything within a full (monolithic) Boost source tree
    - build the examples within the separation used by Fedora / Redhat
packages (which splits among others boost-python, boost-build,
    - build the library and the examples within a stand-alone
Boost.Python source tree


      ...ich hab' noch einen Koffer in Berlin...

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at