| --- a/boostcpp.jam |
| +++ b/boostcpp.jam |
| @@ -104,7 +104,7 @@ |
| python-id = [ option.get "python-buildid" ] ; |
| if $(python-id) |
| { |
| - PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ; |
| + PYTHON_ID = [ regex.replace $(python-id) [*\\/:\"\'] _ ] ; |
| } |
| |
| |
| --- a/libs/mpi/build/Jamfile.v2 |
| +++ b/libs/mpi/build/Jamfile.v2 |
| @@ -58,81 +58,50 @@ |
| |
| if [ python.configured ] |
| { |
| - 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))) ; |
| - } |
| - } |
| + 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 |
| + ; |
| } |
| } |
| else if ! ( --without-mpi in [ modules.peek : ARGV ] ) |
| --- a/libs/python/build/Jamfile |
| +++ b/libs/python/build/Jamfile |
| @@ -31,26 +31,23 @@ |
| ; |
| } |
| |
| -py2-version = [ py-version 2 ] ; |
| -py3-version = [ py-version 3 ] ; |
| - |
| project boost/python |
| : 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) ; } } |
| -local rule eq ( a : b ) { if $(a) = $(b) { return 1 ; } } |
| - |
| -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)) ; |
| |
| -rule lib_boost_python ( version ) |
| +rule lib_boost_python |
| { |
| - lib $(lib_boost_python($(version))) |
| + local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ; |
| + local python2 ; |
| + if $(python_major_version) = 2 |
| + { |
| + python2 = true ; |
| + } |
| + |
| + lib boost_python |
| : # sources |
| list.cpp |
| long.cpp |
| @@ -96,7 +93,8 @@ |
| # 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 ] |
| + [ cond $(python2) : <cxxflags>-fno-strict-aliasing ] |
| + [ cond [ python.configured ] : <library>/python//python ] |
| |
| # we prevent building when there is no python available |
| # as it's not possible anyway, and to cause dependents to |
| @@ -105,13 +103,10 @@ |
| <dependency>config-warning |
| |
| <python-debugging>on:<define>BOOST_DEBUG_PYTHON |
| - <python>$(version) |
| |
| -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag |
| <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag |
| |
| - <conditional>@python.require-py |
| - |
| : # default build |
| <link>shared |
| : # usage requirements |
| @@ -120,68 +115,8 @@ |
| ; |
| } |
| |
| -lib_boost_numpy(2) = boost_numpy ; |
| -lib_boost_numpy(3) = boost_numpy3 ; |
| - |
| -lib_boost_numpy($(py2-version)) = $(lib_boost_numpy(2)) ; |
| -lib_boost_numpy($(py3-version)) = $(lib_boost_numpy(3)) ; |
| - |
| -rule lib_boost_numpy ( version ) |
| -{ |
| - numpy-include = [ python.numpy-include ] ; |
| - lib $(lib_boost_numpy($(version))) |
| - : # sources |
| - numpy/dtype.cpp |
| - numpy/matrix.cpp |
| - numpy/ndarray.cpp |
| - numpy/numpy.cpp |
| - numpy/scalars.cpp |
| - numpy/ufunc.cpp |
| - : # requirements |
| - <link>static:<define>BOOST_NUMPY_STATIC_LIB |
| - <define>BOOST_NUMPY_SOURCE |
| - [ cond [ python.numpy ] : <library>/python//python_for_extensions ] |
| - [ unless [ python.numpy ] : <build>no ] |
| - <include>$(numpy-include) |
| - <library>$(lib_boost_python($(version))) |
| - <python-debugging>on:<define>BOOST_DEBUG_PYTHON |
| - <python>$(version) |
| +libraries = boost_python ; |
| |
| - -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag |
| - <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag |
| - |
| - <conditional>@python.require-py |
| - |
| - : # default build |
| - <link>shared |
| - : # usage requirements |
| - <link>static:<define>BOOST_NUMPY_STATIC_LIB |
| - <python-debugging>on:<define>BOOST_DEBUG_PYTHON |
| - ; |
| -} |
| - |
| -libraries = ; |
| - |
| -for local N in 2 3 |
| -{ |
| - if $(py$(N)-version) |
| - { |
| - lib_boost_python $(py$(N)-version) ; |
| - libraries += $(lib_boost_python($(py$(N)-version))) ; |
| - } |
| - else |
| - { |
| - alias $(lib_boost_python($(N))) ; |
| - } |
| - if $(py$(N)-version) && [ python.numpy ] |
| - { |
| - lib_boost_numpy $(py$(N)-version) ; |
| - libraries += $(lib_boost_numpy($(py$(N)-version))) ; |
| - } |
| - else |
| - { |
| - alias $(lib_boost_numpy($(N))) ; |
| - } |
| -} |
| +lib_boost_python ; |
| |
| boost-install $(libraries) ; |