Boost logo

Boost :

Subject: [boost] Boost.Build changes for 1.38
From: Vladimir Prus (ghost_at_[hidden])
Date: 2008-11-01 09:56:43


As we're nearing 1.37, and the time for big changes that follows after,
I wanted to discuss one Boost.Build change I want to make.

Right now, we have two ways to build Boost -- using bjam directly, and using
configure and make (which are wrappers over boost.build). The first approach
may be a bit hard, and the second is very nice when it works, but it leads to
other problems:

        - users start to assume it's "real" configure, and get upset when various
        variables that CXXFLAGS have no effect
        - if users want to do anything custom, like mingw cross compilation,
        they have to go back to direct use of bjam anyway.

So, I'd like to suggest a solution where building of boost involves three steps:

1. ./bootstrap.sh or ./bootstrap.bat
This step just builds bjam and puts it into boost root

2. ./bjam [--build-type=complete] [--layout=xxx] [properties] configure
This step:
        - Tries to detect what compilers you have
        - Figures which optional libraries you have, and which you don't (e.g. ICU)
        - Writes a file project-config.jam with all the discovered information.

3. ./bjam
This step can be usually invoked with no parameters, reads the configuration information
from project-config.jam, and builds everything.

For new users, this solution is only marginally more complex that configure/make, and
does not create the false impression it's autoconf. For power users, the file produced
in (2) can be tweaked and extra options can be specified in (3). For all users,
this means that various properties can be specified only once in (2) and need not be
repeated on every build, which is clearly a convenient thing.

Anybody has comments about this plan?

- Volodya

-- 
Vladimir Prus
http://vladimir_prus.blogspot.com
Boost.Build V2: http://boost.org/boost-build2

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk