Boost logo

Boost :

Subject: Re: [boost] Boost.Build changes for 1.38
From: David Abrahams (dave_at_[hidden])
Date: 2008-11-02 08:22:47


on Sat Nov 01 2008, Vladimir Prus <ghost-AT-cs.msu.su> wrote:

> 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?

Yeah. For a surprisingly large number of *nix users, if the
process doesn't look like ./configure && make && make install, they will
get upset. That's the reason the configure script was created. Only a
small subset of those users may try to set CXXFLAGS et. al, and even a
smaller subset needs to do cross-compilation, so I believe we're making
more people happy than angry. I would be very, very cautious about
removing the configure script.

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

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