[python][iostreams][configure script] build/install issues

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? 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? 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). Thanks, -- Dave Abrahams Boost Consulting www.boost-consulting.com

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 :) Cheers, Doug
participants (2)
-
David Abrahams
-
Douglas Gregor