--- boost_1_67_0-orig/libs/mpi/build/Jamfile.v2 2018-04-11 23:49:05.000000000 +1000 +++ boost_1_67_0/libs/mpi/build/Jamfile.v2 2018-05-28 21:57:52.404120919 +1000 @@ -60,81 +60,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 - boost_mpi - /mpi//mpi [ mpi.extra-requirements ] - /boost/python//$(lib_boost_python($(py$(N)-version))) - shared:BOOST_MPI_DYN_LINK=1 - shared:BOOST_MPI_PYTHON_DYN_LINK=1 - shared:BOOST_PYTHON_DYN_LINK=1 - BOOST_MPI_PYTHON_SOURCE=1 - -@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag - @$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag - on:BOOST_DEBUG_PYTHON - $(py$(N)-version) - : # Default build - shared - : # Usage requirements - /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 - /boost/python//$(lib_boost_python($(py$(N)-version))) - $(lib_boost_mpi_python($(py$(N)-version))) - boost_mpi - /mpi//mpi [ mpi.extra-requirements ] - shared:BOOST_MPI_DYN_LINK=1 - shared:BOOST_MPI_PYTHON_DYN_LINK=1 - shared:BOOST_PYTHON_DYN_LINK=1 - shared shared - on:BOOST_DEBUG_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 + boost_mpi + /mpi//mpi [ mpi.extra-requirements ] + /boost/python//boost_python + shared:BOOST_MPI_DYN_LINK=1 + shared:BOOST_MPI_PYTHON_DYN_LINK=1 + shared:BOOST_PYTHON_DYN_LINK=1 + BOOST_MPI_PYTHON_SOURCE=1 + -@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag + @$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag + : # Default build + shared + : # Usage requirements + /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 + /boost/python//boost_python + boost_mpi_python + boost_mpi + /mpi//mpi [ mpi.extra-requirements ] + shared:BOOST_MPI_DYN_LINK=1 + shared:BOOST_MPI_PYTHON_DYN_LINK=1 + shared:BOOST_PYTHON_DYN_LINK=1 + shared shared + ; } } else if ! ( --without-mpi in [ modules.peek : ARGV ] ) --- boost_1_67_0-orig/libs/python/Jamfile 2018-04-11 23:49:06.000000000 +1000 +++ boost_1_67_0/libs/python/Jamfile 2018-05-29 10:08:42.682171244 +1000 @@ -46,7 +46,7 @@ python-id = [ option.get "python-buildid" ] ; if $(python-id) { - PYTHON_ID = [ regex.replace $(python-id) "[*\\/:.\"\']" _ ] ; + PYTHON_ID = [ regex.replace $(python-id) "[*\\/:\"\']" _ ] ; } rule python-tag ( name : type ? : property-set ) @@ -58,10 +58,10 @@ local lib-suffix = [ version-suffix $(version) ] ; result = $(result)$(lib-suffix) ; } - if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB && $(PYTHON_ID) - { - result = $(result)-$(PYTHON_ID) ; - } + # /usr/share/cmake/Modules/FindBoost.cmake for >=dev-util/cmake-3.11.2 + # looks for /usr/lib64/libboost_python36.so or for Gentoo convention + # prior to boost 1.67.0 of /usr/lib64/libboost_python-3_6.so but not + # for /usr/lib64/libboost_python36-3_6.so # forward to the boost tagging rule return [ tag $(result) : $(type) : $(property-set) ] ; --- boost_1_67_0-orig/libs/python/build/Jamfile 2018-04-11 23:49:06.000000000 +1000 +++ boost_1_67_0/libs/python/build/Jamfile 2018-05-29 08:26:10.388810662 +1000 @@ -36,7 +36,13 @@ 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 ; } } + +local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ; +local python2 ; +if $(python_major_version) = 2 +{ + python2 = true ; +} lib boost_python : # sources @@ -84,7 +90,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 ] : /python//python_for_extensions ] + [ cond $(python2) : -fno-strict-aliasing ] + [ cond [ python.configured ] : /python//python ] # we prevent building when there is no python available # as it's not possible anyway, and to cause dependents to @@ -94,7 +101,6 @@ on:BOOST_DEBUG_PYTHON -@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag @$(__name__).python-tag - @python.require-py : # default build shared