Subject: Re: [boost] Packaging in cross-compiling environment
From: Vladimir Prus (vladimir_at_[hidden])
Date: 2010-12-27 15:13:29
Ben Gamari wrote:
> On Sat, 25 Dec 2010 10:42:15 +0300, Vladimir Prus <vladimir_at_[hidden]> wrote:
>> Ben Gamari wrote:
>> > but this does not appear to change bjam's
>> > behavior at all. When the build process begins, bjam produces this cryptic hint,
>> > error: No best alternative for /python_for_extensions
>> > next alternative: required properties: <python>2.6 <target-os>linux
>> > matched
>> Please run with --debug-configuration. This should print absolute paths to user-config.jam,
>> site-config.jam and project-config.jam that are being loaded. Examine them to make sure
>> only your user-config.jam configures Python. Let me know if this hlps.
> As I mentioned in later messages, --debug-configuration shows that the
> python include path is correctly determined but unfortunately is not
> included in the include paths given to the compiler?
> Where exactly is are the python include paths incorporated into the
> compiler command line? The only reference I can find is in
> tools/build/v2/tools/python.jam around line 900 but it's really not at
> all clear what happens to usage-requirements after this. Is there any
> document describing the inner workings of this build system that someone
> only familiar with more traditional build systems (autotools, make)
> might understand?
The includes are supposed to be added by this code in libs/python/build/Jamfile.v2:
[ cond [ python.configured ] : <library>/python//python_for_extensions ]
where 'cond' is basically C's ?: operator. From your log, I suspect that python.configured
is not set, because python.jam is unable to run python to check it's version.
Could you try the below patch?
diff --git a/tools/python.jam b/tools/python.jam
index 66f2aab..0c41221 100644
@@ -816,6 +816,10 @@ local rule configure ( version ? : cmd-or-prefix ? : includes * : libraries ? :
version ?= 2.5 ;
exec-prefix ?= $(prefix) ;
compute-default-paths $(target-os) : $(version) : $(prefix:E=) ;
+ if $(includes) && $(libraries)
+ .configured = true ;
if ! $(interpreter-cmd)
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk