: source-location ../src
;
-lib boost_mpi
- :
+lib boost_mpi
+ :
broadcast.cpp
communicator.cpp
computation_tree.cpp
<library>../../serialization/build//boost_serialization
<library>/mpi//mpi [ mpi.extra-requirements ]
;
-
-libraries += boost_mpi ;
+
+libraries += boost_mpi ;
if [ python.configured ]
{
- lib boost_mpi_python
- : # Sources
- python/serialize.cpp
- : # Requirements
- <library>boost_mpi
- <library>/mpi//mpi [ mpi.extra-requirements ]
- <library>/boost/python//boost_python
- <link>shared:<define>BOOST_MPI_DYN_LINK=1
- <link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1
- <link>shared:<define>BOOST_PYTHON_DYN_LINK=1
- <define>BOOST_MPI_PYTHON_SOURCE=1
- -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
- <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
- : # Default build
- <link>shared
- : # Usage requirements
- <library>/mpi//mpi [ mpi.extra-requirements ]
- ;
- libraries += boost_mpi_python ;
-
- python-extension mpi
- : # Sources
- python/collectives.cpp
- python/py_communicator.cpp
- python/datatypes.cpp
- python/documentation.cpp
- python/py_environment.cpp
- python/py_nonblocking.cpp
- python/py_exception.cpp
- python/module.cpp
- python/py_request.cpp
- python/skeleton_and_content.cpp
- python/status.cpp
- python/py_timer.cpp
- : # Requirements
- <library>/boost/python//boost_python
- <library>boost_mpi_python
- <library>boost_mpi
- <library>/mpi//mpi [ mpi.extra-requirements ]
- <link>shared:<define>BOOST_MPI_DYN_LINK=1
- <link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1
- <link>shared:<define>BOOST_PYTHON_DYN_LINK=1
- <link>shared <runtime-link>shared
- ;
+ py2-version = [ py-version 2 ] ;
+ py3-version = [ py-version 3 ] ;
+
+ # These library names are synchronized with those defined by Boost.Python, see libs/python/build/Jamfile.
+ lib_boost_python(2) = boost_python ;
+ lib_boost_python(3) = boost_python3 ;
+
+ lib_boost_python($(py2-version)) = $(lib_boost_python(2)) ;
+ lib_boost_python($(py3-version)) = $(lib_boost_python(3)) ;
+
+ lib_boost_mpi_python(2) = boost_mpi_python ;
+ lib_boost_mpi_python(3) = boost_mpi_python3 ;
+
+ lib_boost_mpi_python($(py2-version)) = $(lib_boost_mpi_python(2)) ;
+ lib_boost_mpi_python($(py3-version)) = $(lib_boost_mpi_python(3)) ;
+
+ for local N in 2 3
+ {
+ if $(py$(N)-version)
+ {
+ lib $(lib_boost_mpi_python($(py$(N)-version)))
+ : # Sources
+ python/serialize.cpp
+ : # Requirements
+ <library>boost_mpi
+ <library>/mpi//mpi [ mpi.extra-requirements ]
+ <library>/boost/python//$(lib_boost_python($(py$(N)-version)))
+ <link>shared:<define>BOOST_MPI_DYN_LINK=1
+ <link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1
+ <link>shared:<define>BOOST_PYTHON_DYN_LINK=1
+ <define>BOOST_MPI_PYTHON_SOURCE=1
+ -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
+ <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
+ <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+ <python>$(py$(N)-version)
+ : # Default build
+ <link>shared
+ : # Usage requirements
+ <library>/mpi//mpi [ mpi.extra-requirements ]
+ ;
+
+ python-extension mpi
+ : # Sources
+ python/collectives.cpp
+ python/py_communicator.cpp
+ python/datatypes.cpp
+ python/documentation.cpp
+ python/py_environment.cpp
+ python/py_nonblocking.cpp
+ python/py_exception.cpp
+ python/module.cpp
+ python/py_request.cpp
+ python/skeleton_and_content.cpp
+ python/status.cpp
+ python/py_timer.cpp
+ : # Requirements
+ <library>/boost/python//$(lib_boost_python($(py$(N)-version)))
+ <library>$(lib_boost_mpi_python($(py$(N)-version)))
+ <library>boost_mpi
+ <library>/mpi//mpi [ mpi.extra-requirements ]
+ <link>shared:<define>BOOST_MPI_DYN_LINK=1
+ <link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1
+ <link>shared:<define>BOOST_PYTHON_DYN_LINK=1
+ <link>shared <runtime-link>shared
+ <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+ <python>$(py$(N)-version)
+ ;
+
+ libraries += $(lib_boost_mpi_python($(py$(N)-version))) ;
+ }
+ else
+ {
+ alias $(lib_boost_mpi_python($(N))) ;
+ }
+ }
}
}
else if ! ( --without-mpi in [ modules.peek : ARGV ] )