summaryrefslogtreecommitdiff
blob: 18ca2f56671136f483b3b7d001b2f32ab6ba0847 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
--- 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/python/build/Jamfile
+++ b/libs/python/build/Jamfile
@@ -30,22 +30,6 @@
         ;
 }
 
-rule find-py3-version
-{
-    local versions = [ feature.values python ] ;
-    local py3ver ;
-    for local v in $(versions)
-    {
-        if $(v) >= 3.0
-        {
-            py3ver = $(v) ;
-        }
-    }
-    return $(py3ver) ;
-}
-
-py3-version = [ find-py3-version ] ;
-
 project boost/python
   : source-location ../src
   ;
@@ -53,10 +37,16 @@
 rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
 rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } }
 
-rule lib_boost_python ( is-py3 ? )
+rule lib_boost_python
 {
+    local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ;
+    local python2 ;
+    if $(python_major_version) = 2
+    {
+        python2 = true ;
+    }
 
-    lib [ cond $(is-py3) : boost_python3 : boost_python ]
+    lib boost_python
         : # sources
         numeric.cpp
         list.cpp
@@ -90,20 +80,9 @@
         :   # requirements
             <link>static:<define>BOOST_PYTHON_STATIC_LIB 
             <define>BOOST_PYTHON_SOURCE
+            [ cond $(python2) : <cxxflags>-fno-strict-aliasing ]
           
-            # 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.
-            [ cond [ python.configured ] : <library>/python//python_for_extensions ]
+            [ 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
@@ -112,7 +91,6 @@
             <dependency>config-warning
 
             <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-            [ cond $(is-py3) : <python>$(py3-version) ]
 
             -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
             <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
@@ -125,51 +103,8 @@
         ;
 }
 
-rule lib_boost_numpy ( is-py3 ? )
-{
-    numpy-include = [ python.numpy-include ] ;
-    lib [ cond $(is-py3) : boost_numpy3 : boost_numpy ]
-        : # sources
-        numpy/dtype.cpp
-        numpy/matrix.cpp
-        numpy/ndarray.cpp
-	numpy/numpy.cpp
-	numpy/scalars.cpp
-	numpy/ufunc.cpp
-        :   # requirements
-            [ cond [ python.numpy ] : <library>/python//python_for_extensions ]
-            [ unless [ python.numpy ] : <build>no ]
-	    <include>$(numpy-include)
-	    <library>boost_python
-            <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-            [ cond $(is-py3) : <python>$(py3-version) ]
-
-            -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
-            <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
-
-        :   # default build
-            <link>shared
-        :   # usage requirements
-            <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-        ;
-}
-
 libraries = boost_python ;
-libraries3 = boost_python3 ;
-if [ python.numpy ]
-{
-    libraries += boost_numpy ;
-    libraries3 += boost_numpy3 ;
-}
 
 lib_boost_python ;
-lib_boost_numpy ;
-
-if $(py3-version)
-{
-    lib_boost_python yes ;
-    lib_boost_numpy yes ;
-    libraries += $(libraries3) ;
-}
 
 boost-install $(libraries) ;