From: Douglas Gregor (doug.gregor_at_[hidden])
Date: 2006-12-12 12:07:16
On Dec 8, 2006, at 5:55 PM, David Abrahams wrote:
> Issue 0:
> The configure script seems to not have been updated for BBv2. It is
> working OK by chance because the -sXXXX options it passes are just not
> relevant under BBv2. Doug, can you update it?
I've taken a preliminary stab at updating it. It will now generate an
appropriate user-config.jam, setting options in there.
> Issue 1:
> My system didn't have bzlib.h and compilation was unceremoniously
> failing. Should the configure script detect this condition (and the
> lack of zlib) and set NO_BZIP2 and NO_ZLIB appropriately?
Hmmm, yes. There are quite a few configuration options for these
features, which complicates the configure script a bit... I'll take a
stab at getting the right settings.
Both Regex (ICU) and iostreams (zlib, bzip2) are using environment
variables to configure optional features. Shouldn't these be moved
over to "proper" BBv2 modules (icu.jam, zlib.jam, bzip2.jam), so the
user can configure them from user-config.jam?
> Issue 2 (or maybe this is issue 0 again):
> I notice the configure script is detecting my PYTHON_ROOT and
> PYTHON_VERSION, but Boost.Build now handles that job itself (see the
> logic in tools/build/v2/tools/python.jam).
Ah, yet another reason I wish we had gone with a real configuration
step in the first place. Now we just try to auto-configure every time
we run bjam, probing compilers, paths, and interpreters to figure out
what "configure" should have done for us *once*.
Anyway, we can go either way with Python, and we're going to have
duplicate logic regardless. I've just committed an updated configure
script that will insert the appropriate "using python :
PYTHON_VERSION : PYTHON_ROOT ;" line into user-config.jam, bypassing
python.jam's auto-configuration. I could make the script smarter, so
that it only puts in the root or version if the user specified it on
the command line to "configure". However, then we're relying on
configure's auto-detection logic exactly matching python.jam's auto-
detection logic, which is unlikely to last more than a few minutes :)