# 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 ;

import python ;

if ! [ python.configured ] && ! ( --without-python in  [ modules.peek : ARGV ] )
{
    # 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" ;
    }
}

if [ python.configured ] {

project boost/python
    : source-location ../src
    ;

lib boost_python
    : # sources
    numeric.cpp
    list.cpp
    long.cpp
    dict.cpp
    tuple.cpp
    str.cpp
    slice.cpp

    converter/from_python.cpp
    converter/registry.cpp
    converter/type_id.cpp
    object/enum.cpp
    object/class.cpp
    object/function.cpp
    object/inheritance.cpp
    object/life_support.cpp
    object/pickle_support.cpp
    errors.cpp
    module.cpp
    converter/builtin_converters.cpp
    converter/arg_to_python_base.cpp
    object/iterator.cpp
    object/stl_iterator.cpp
    object_protocol.cpp
    object_operators.cpp
    wrapper.cpp
    import.cpp
    exec.cpp
    :   # requirements
        <link>static:<define>BOOST_PYTHON_STATIC_LIB 
        <define>BOOST_PYTHON_SOURCE
      
        # 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.
        <library>/python//python_for_extensions
      
        <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
    ;
}
else
{
    ECHO "warning: Python location is not configured" ;
    ECHO "warning: the Boost.Python library won't be built" ;
}