From 01a0c6864f7bfc1786babb1f2956b4cd2d7b3496 Mon Sep 17 00:00:00 2001 From: Dave Abrahams Date: Wed, 28 Mar 2007 12:44:08 +0000 Subject: [PATCH] Fix the use of system library dependencies [SVN r37310] --- v2/tools/python.jam | 39 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/v2/tools/python.jam b/v2/tools/python.jam index d2daa9dbe..de46d31de 100644 --- a/v2/tools/python.jam +++ b/v2/tools/python.jam @@ -583,9 +583,8 @@ local rule candidate-interpreters ( version ? : prefix ? : target-os ) # in both the single- and multi-threaded cases, and that system # libraries don't change their ABIs either. # -# Returns a list consisting of ungristed library names to be used as -# direct dependencies and conditional library names to be added to -# target conditions. +# Returns a list of usage-requirements that link to the necessary +# system libraries. local rule system-library-dependencies ( target-os ) { switch $(target-os) @@ -595,18 +594,18 @@ local rule system-library-dependencies ( target-os ) # sun toolset adds -lrt unconditionally). While this # appears to duplicate the logic already in gcc.jam, it # doesn't as long as we're not forcing multi. - return pthread dl gcc:rt ; + return pthread dl gcc:rt ; - case osf : return pthread gcc:rt ; + case osf : return pthread gcc:rt ; case qnx* : return ; case darwin : return ; case windows : return ; - case hpux : return rt ; + case hpux : return rt ; - case * : return pthread dl gcc:util ; + case * : return pthread dl gcc:util ; } } @@ -780,33 +779,21 @@ local rule configure ( # # End autoconfiguration sequence # + local target-requirements = $(condition) ; - # Add the version, if any, to the condition + # Add the version, if any, to the target requirements if $(version) { if ! $(version) in [ feature.values python ] { feature.extend python : $(version) ; } - condition += $(version:E=default) ; + target-requirements += $(version:E=default) ; } - condition += $(target-os) ; + target-requirements += $(target-os) ; - # Set up the PYTHON variable to point at the interpreter. - local target-requirements = $(condition) ; - local system-libs ; - for local x in [ system-library-dependencies $(target-os) ] - { - if $(x:G) - { - target-requirements += $(x) ; - } - else - { - system-libs += $(x) ; - } - } + local usage-requirements = [ system-library-dependencies $(target-os) ] ; # See if we can find a framework directory on darwin local framework-directory ; @@ -837,7 +824,7 @@ local rule configure ( dll-path += $(exec-prefix) ; } - local usage-requirements = $(includes) $(interpreter-cmd) ; + usage-requirements += $(includes) $(interpreter-cmd) ; # # Declare the "python" target. This should really be called @@ -857,7 +844,7 @@ local rule configure ( { declare-libpython-target $(version) : $(target-requirements) ; alias python - : $(system-libs) + : : $(target-requirements) : # why python.lib must be listed here instead of along with