Jonathan Wakely a919cd
--- boost_1_63_0/libs/mpi/build/Jamfile.v2	2016-12-22 06:33:17.000000000 -0600
Jonathan Wakely a919cd
+++ boost_1_63_0/libs/mpi/build/Jamfile.v2	2017-05-19 01:45:05.485563800 -0500
Jonathan Wakely a919cd
@@ -11,6 +11,7 @@
Jonathan Wakely a919cd
 import mpi ;
Jonathan Wakely a919cd
 import indirect ;
Jonathan Wakely a919cd
 import python ;
Jonathan Wakely a919cd
+import feature ;
Jonathan Wakely a919cd
 
Jonathan Wakely a919cd
 libraries = ;
Jonathan Wakely a919cd
 
Jonathan Wakely a919cd
@@ -53,18 +54,38 @@ lib boost_mpi
Jonathan Wakely a919cd
     <library>../../serialization/build//boost_serialization
Jonathan Wakely a919cd
     <library>/mpi//mpi [ mpi.extra-requirements ]
Jonathan Wakely a919cd
   ;
Jonathan Wakely a919cd
+
Jonathan Wakely a919cd
+rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
Jonathan Wakely a919cd
   
Jonathan Wakely a919cd
 libraries += boost_mpi ;  
Jonathan Wakely a919cd
+rule find-py3-version
Jonathan Wakely a919cd
+{
Jonathan Wakely a919cd
+    local versions = [ feature.values python ] ;
Jonathan Wakely a919cd
+    local py3ver ;
Jonathan Wakely a919cd
+    for local v in $(versions)
Jonathan Wakely a919cd
+    {
Jonathan Wakely a919cd
+        if $(v) >= 3.0
Jonathan Wakely a919cd
+        {
Jonathan Wakely a919cd
+            py3ver = $(v) ;
Jonathan Wakely a919cd
+        }
Jonathan Wakely a919cd
+    }
Jonathan Wakely a919cd
+    return $(py3ver) ;
Jonathan Wakely a919cd
+}
Jonathan Wakely a919cd
+
Jonathan Wakely a919cd
+py3-version = [ find-py3-version ] ;
Jonathan Wakely a919cd
 
Jonathan Wakely a919cd
   if [ python.configured ]
Jonathan Wakely a919cd
   {
Jonathan Wakely a919cd
-    lib boost_mpi_python
Jonathan Wakely a919cd
+
Jonathan Wakely a919cd
+    rule lib_boost_mpi_python ( is-py3 ? ) {
Jonathan Wakely a919cd
+
Jonathan Wakely a919cd
+    lib [ cond $(is-py3) : boost_mpi_python3 : boost_mpi_python ]
Jonathan Wakely a919cd
       : # Sources
Jonathan Wakely a919cd
         python/serialize.cpp
Jonathan Wakely a919cd
       : # Requirements
Jonathan Wakely a919cd
         <library>boost_mpi
Jonathan Wakely a919cd
         <library>/mpi//mpi [ mpi.extra-requirements ]
Jonathan Wakely a919cd
-      	<library>/boost/python//boost_python
Jonathan Wakely a919cd
+      	[ cond $(is-py3) : <library>/boost/python//boost_python3 : <library>/boost/python//boost_python ]
Jonathan Wakely a919cd
         <link>shared:<define>BOOST_MPI_DYN_LINK=1
Jonathan Wakely a919cd
         <link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1
Jonathan Wakely a919cd
         <link>shared:<define>BOOST_PYTHON_DYN_LINK=1        
Jonathan Wakely a919cd
@@ -76,7 +97,6 @@ libraries += boost_mpi ;
Jonathan Wakely a919cd
       : # Usage requirements
Jonathan Wakely a919cd
         <library>/mpi//mpi [ mpi.extra-requirements ]
Jonathan Wakely a919cd
       ;
Jonathan Wakely a919cd
-    libraries += boost_mpi_python ;   
Jonathan Wakely a919cd
 
Jonathan Wakely a919cd
     python-extension mpi 
Jonathan Wakely a919cd
       : # Sources
Jonathan Wakely a919cd
@@ -93,8 +113,8 @@ libraries += boost_mpi ;
Jonathan Wakely a919cd
         python/status.cpp
Jonathan Wakely a919cd
         python/py_timer.cpp
Jonathan Wakely a919cd
       : # Requirements
Jonathan Wakely a919cd
-      	<library>/boost/python//boost_python      
Jonathan Wakely a919cd
-        <library>boost_mpi_python
Jonathan Wakely a919cd
+      	[ cond $(is-py3) : <library>/boost/python//boost_python3 : <library>/boost/python//boost_python ]
Jonathan Wakely a919cd
+        [ cond $(is-py3) : <library>boost_mpi_python3 : <library>boost_mpi_python ]
Jonathan Wakely a919cd
         <library>boost_mpi
Jonathan Wakely a919cd
         <library>/mpi//mpi [ mpi.extra-requirements ]
Jonathan Wakely a919cd
         <link>shared:<define>BOOST_MPI_DYN_LINK=1    
Jonathan Wakely a919cd
@@ -102,6 +122,16 @@ libraries += boost_mpi ;
Jonathan Wakely a919cd
         <link>shared:<define>BOOST_PYTHON_DYN_LINK=1    
Jonathan Wakely a919cd
         <link>shared <runtime-link>shared
Jonathan Wakely a919cd
       ;
Jonathan Wakely a919cd
+    }
Jonathan Wakely a919cd
+
Jonathan Wakely a919cd
+    if $(py3-version) {
Jonathan Wakely a919cd
+      lib_boost_mpi_python yes ;
Jonathan Wakely a919cd
+      libraries += boost_mpi_python3 ;
Jonathan Wakely a919cd
+    } else {
Jonathan Wakely a919cd
+      lib_boost_mpi_python ;
Jonathan Wakely a919cd
+      libraries += boost_mpi_python ;
Jonathan Wakely a919cd
+    }
Jonathan Wakely a919cd
+
Jonathan Wakely a919cd
   }
Jonathan Wakely a919cd
 }
Jonathan Wakely a919cd
 else if ! ( --without-mpi in  [ modules.peek : ARGV ] )