Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2003-01-28 16:41:59

[John, please read to the bottom; ./configure issues arise]

Florian Stöhr <florian.stoehr_at_[hidden]> writes:

> Hi,
> I wrote a tutorial on compiling boost under NetBSD.
> This describes various "dirty" patches to gcc-tools.jam.
> Could someone please have a look at this and tell me what can be
> done in a "cleaner" way ... or can someone edit the gcc-tools.jam
> for upcoming releases to support NetBSD by default?
> Thank you
> Flo

Sorry it's taken so long. Things have been piling up...

> ------------------------------------------------------------------------------------------
> This document descripes the installation of boost-1.29 under
> NetBSD-i386 1.6 (should work in a similar way for other ports).
> Note that this refers to NON-STLPORT with GCC 2.95.3, which comes by
> default with NetBSD 1.6!
> If you want to build the THREADS library, you need to enable
> threading support for NetBSD.
> Get the GNU PTHREADS package (pth-1.4.1nb2.tgz for NetBSD 1.6) and
> install it.
> This will install several files under /usr/pkg/include and /usr/pkg/lib.

Are these standard NetBSD installation locations for many "system"
libraries such as pthreads?

> Now edit /etc/profile (e.g.) and add the include/lib paths:
> # Add these lines (bash only)
> CPPFLAGS=-I/usr/pkg/include; export CPPFLAGS
> LDFLAGS=-L/usr/pkg/lib; export LDFLAGS
> CLOSE THE TERMINAL and log in again (to reread the /etc/profile).
> This will enable the configure script of boost to find your pthread files.
> Now get the boost-1.29.0.tar.gz from und unpack it, e.g.
> root_at_flo [/usr] # tar -xvzf /home/flo/downloads/boost-1.29.0.tar.gz
> I will refer to (boost) as the root directory of boost, e.g. /usr/boost_1_29_0.
> First of all, you need the build the make-replacement "bjam" of boost. Note that
> this is NOT the traditional bjam! It's in the tools/build/jam_src directory. Invoke
> make on it.
> root_at_flo [/usr/boost_1_29_0/tools/build/jam_src] # make

With the current CVS that will be:


could you check that it works?

> The bjam executable now resides in ./bin.netbsdx86. If you don't
> have traditional bjam installed on your system

What is "traditional bjam"?

> (hope so!), just copy the bjam into a directory in the path
> root_at_flo [/usr/boost_1_29_0/tools/build/jam_src/bin.netbsdx86] # cp bjam /usr/bin
> Now BEFORE you try to build boost, you have to edit the jamfile
> (boost)/tools/build/gcc-tools.jam due to a bug in the gcc (?) that
> comes with NetBSD 1.6
> Open the file and replace every occurrence of
> -isystem
> by
> -I

That's already done in the current Boost CVS.

> Now replace every occurence of
> -pthread
> by
> -lpthread

We can fix that; please do the following and post the output:

prompt$ bjam -f-

> Unfortunately, this is not yet enough, since the build process itself doesn't seem to
> use the CPPFLAGS and LDFLAGS environment variables.

As well it should not.

> So search for "actions gcc-Cc-action" in the file. Insert "-I/usr/pkg/include" and
> "-L/usr/pkg/lib" into the gcc-call, perhaps just before the "-I$(SPACE)".
> Then do the same once again for the "actions gcc-C++-action" block, insert our
> dirs before the '-I"$(HDRS)"'.

I think we can make the appropriate adjustments here as well, though
it will be ugly :(.

> Before making boost, be sure to invoke the configure script.
> root_at_flo [/usr/boost_1_29_0/libs/config] # ./configure

Hmm, I have my doubts. Boost comes nicely preconfigured for
gcc-2.95.3. Does this really change very much?

> Now open the file USER.HPP and add the line

Threads are probably not detected by the configure script because
pthreads get installed in a nonstandard place. John, can you help to
diagnose this?

> Your final step will now be to copy this file USER.HPP from libs config dir
> to the boost config dir:
> root_at_flo [/usr/boost_1_29_0/libs/config] # cp user.hpp ../../boost/config
> Then, you can change to the boost root directory and simple invoke make with the
> gcc-option:

Invoke _make_?

> root_at_flo [/usr/boost_1_29_0] # bjam "-sTOOLS=gcc"
> Enjoy boost!

David Abrahams
dave_at_[hidden] *
Boost support, enhancements, training, and commercial distribution

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