$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: RaoulGough_at_[hidden]
Date: 2008-05-18 10:20:35
Author: raoulgough
Date: 2008-05-18 10:20:34 EDT (Sun, 18 May 2008)
New Revision: 45485
URL: http://svn.boost.org/trac/boost/changeset/45485
Log:
Merged head r19968:40714 to sandbox python_indexing_2 branch
Text files modified: 
   sandbox/python_indexing_v2/libs/python/build/Jamfile.v2 |   114 +++++++++++++++++++++------------------ 
   1 files changed, 60 insertions(+), 54 deletions(-)
Modified: sandbox/python_indexing_v2/libs/python/build/Jamfile.v2
==============================================================================
--- sandbox/python_indexing_v2/libs/python/build/Jamfile.v2	(original)
+++ sandbox/python_indexing_v2/libs/python/build/Jamfile.v2	2008-05-18 10:20:34 EDT (Sun, 18 May 2008)
@@ -1,70 +1,44 @@
+# Copyright David Abrahams 2001-2006. Distributed under the Boost
+# Software License, Version 1.0. (See accompanying
+# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
 import os ;
 import modules ;
 
-# Use a very crude way to sense there python is locatted
-
-
-local PYTHON_PATH = [ modules.peek : PYTHON_PATH ] ;
-ECHO "XXX" $(PYTHON_PATH) ;
-
-if [ GLOB /usr/local/include/python2.2 : * ]
-{
-    PYTHON_PATH = /usr/local ;
-}
-else if [ GLOB /usr/include/python2.2 : * ] 
-{
-    PYTHON_PATH = /usr ;
-}
+import python ;
 
-if [ os.name ] in CYGWIN NT
+if ! [ python.configured ] && ! ( --without-python in  [ modules.peek : ARGV ] )
 {
-    lib_condition = <link>shared: ;
-    defines = USE_DL_IMPORT ;
-   
-    # Declare a target for the python interpreter library
-    lib python : : <name>python22 <search>$(PYTHON_PATH)/libs ;
-    PYTHON_LIB = python ;    
-} 
-else 
-{
-   lib python : : <name>python2.2 ;
-   PYTHON_LIB = python ;    
-}
-
-
-
-if $(PYTHON_PATH) {
+    # Attempt default configuration of python
+    import toolset : using ;
+    using python ;
     
+    if ! [ python.configured ]
+    {
+        ECHO "WARNING: No python installation configured and autoconfiguration" ; 
+        ECHO "         failed.  See http://www.boost.org/libs/python/doc/building.html" ;
+        ECHO "         for configuration instructions or pass --without-python to" ;
+        ECHO "         suppress this message and silently skip all Boost.Python targets" ;
+    }
+}
 
 project boost/python
-    : source-location ../src
-        : requirements <include>$(PYTHON_PATH)/include
-          $(lib_condition)<library-path>$(PYTHON_PATH)/libs
-            <link>shared:<library>$(PYTHON_LIB)
-            <define>$(defines)
-        : usage-requirements # requirement that will be propageted to *users* of this library
-          <include>$(PYTHON_PATH)/include
-
-# We have a bug which causes us to conclude that conditionalized
-# properties in this section are not free.
-#          $(lib_condition)<library-path>$(PYTHON_PATH)/lib/python2.2/config
-#            <shared>true:<find-library>$(PYTHON_LIB)
-            
-          <library-path>$(PYTHON_PATH)/lib/python2.2/config
-            <library>$(PYTHON_LIB)
-    ;
+  : source-location ../src
+  ;
+
+rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
+rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } }
 
 lib boost_python
-    : 
+    : # sources
     numeric.cpp
-
     list.cpp
     long.cpp
     dict.cpp
     tuple.cpp
     str.cpp
+    slice.cpp
 
-    aix_init_module.cpp
     converter/from_python.cpp
     converter/registry.cpp
     converter/type_id.cpp
@@ -79,10 +53,42 @@
     converter/builtin_converters.cpp
     converter/arg_to_python_base.cpp
     object/iterator.cpp
+    object/stl_iterator.cpp
     object_protocol.cpp
     object_operators.cpp
-    :   <link>static:<define>BOOST_PYTHON_STATIC_LIB 
+    wrapper.cpp
+    import.cpp
+    exec.cpp
+    object/function_doc_signature.cpp
+    :   # requirements
+        <link>static:<define>BOOST_PYTHON_STATIC_LIB 
         <define>BOOST_PYTHON_SOURCE
-    : <link>shared
-      ;
-}
+      
+        # On Windows, all code using Python has to link to the Python
+        # import library.
+        #
+        # On *nix we never link libboost_python to libpython.  When
+        # extending Python, all Python symbols are provided by the
+        # Python interpreter executable.  When embedding Python, the
+        # client executable is expected to explicitly link to
+        # /python//python (the target representing libpython) itself.
+        #
+        # python_for_extensions is a target defined by Boost.Build to
+        # provide the Python include paths, and on Windows, the Python
+        # import library, as usage requirements.
+        [ cond [ python.configured ] : <library>/python//python_for_extensions ]
+        
+        # we prevent building when there is no python available
+        # as it's not possible anyway, and to cause dependents to
+        # fail to build
+        [ unless [ python.configured ] : <build>no ]
+
+        <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+    :   # default build
+        <link>shared
+    :   # usage requirements
+        <link>static:<define>BOOST_PYTHON_STATIC_LIB
+        <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+    ;
+
+boost-install boost_python ;