Commit 92f7c1bd48d2476a3acabb9a0594829d6c847761
1 parent
7af7e0b5
Set the MACOSX_DEPLOYMENT_TARGET on Mac OS X >= 10.9 in case that the MACOSX_DEP…
…LOYMENT_TARGET used to compile Python was for an earlier version. This is needed to take into account a change in the name mangling by the gcc compiler when switching from version 10.8 to 10.9 of Mac OS X. This fixes #1607.
Showing
1 changed file
with
40 additions
and
13 deletions
configure.ac
| @@ -101,17 +101,19 @@ AC_CANONICAL_HOST | @@ -101,17 +101,19 @@ AC_CANONICAL_HOST | ||
| 101 | # A special kluge was added for Mac OS X >=10.7. As Apple switched to clang # | 101 | # A special kluge was added for Mac OS X >=10.7. As Apple switched to clang # |
| 102 | # we search from this version on for the clang compiler. # | 102 | # we search from this version on for the clang compiler. # |
| 103 | # # | 103 | # # |
| 104 | -# We also signal whether Mac OS X >=10.11 (El Capitan). # | 104 | +# We also signal whether Mac OS X >=10.9 (Mavericks) and Mac OS X >=10.11 # |
| 105 | +# (El Capitan). # | ||
| 105 | ############################################################################# | 106 | ############################################################################# |
| 106 | # Set default Mac OS X version flags | 107 | # Set default Mac OS X version flags |
| 107 | osx_lion=no | 108 | osx_lion=no |
| 109 | +osx_mavericks=no | ||
| 108 | osx_el_capitan=no | 110 | osx_el_capitan=no |
| 109 | 111 | ||
| 110 | # Set default compiler lists | 112 | # Set default compiler lists |
| 111 | cxx_list="g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++" | 113 | cxx_list="g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++" |
| 112 | cc_list="gcc cc cl.exe clang" | 114 | cc_list="gcc cc cl.exe clang" |
| 113 | 115 | ||
| 114 | -# Check if we have Mac OS X >= 10.7 and >= 10.11 | 116 | +# Check if we have Mac OS X >= 10.7, >= 10.9 and >= 10.11 |
| 115 | if test `uname -s` = "Darwin"; then | 117 | if test `uname -s` = "Darwin"; then |
| 116 | version=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/' | sed -e 's/\.//g'` | 118 | version=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/' | sed -e 's/\.//g'` |
| 117 | if [ test $version -ge 107 ]; then | 119 | if [ test $version -ge 107 ]; then |
| @@ -119,6 +121,9 @@ if test `uname -s` = "Darwin"; then | @@ -119,6 +121,9 @@ if test `uname -s` = "Darwin"; then | ||
| 119 | cc_list="clang gcc cc cl.exe" | 121 | cc_list="clang gcc cc cl.exe" |
| 120 | osx_lion=yes | 122 | osx_lion=yes |
| 121 | fi | 123 | fi |
| 124 | + if [ test $version -ge 109 ]; then | ||
| 125 | + osx_mavericks=yes | ||
| 126 | + fi | ||
| 122 | if [ test $version -ge 1011 ]; then | 127 | if [ test $version -ge 1011 ]; then |
| 123 | osx_el_capitan=yes | 128 | osx_el_capitan=yes |
| 124 | fi | 129 | fi |
| @@ -129,6 +134,12 @@ if [test "x$osx_lion" = "xyes"]; then | @@ -129,6 +134,12 @@ if [test "x$osx_lion" = "xyes"]; then | ||
| 129 | else | 134 | else |
| 130 | AC_MSG_RESULT(no) | 135 | AC_MSG_RESULT(no) |
| 131 | fi | 136 | fi |
| 137 | +AC_MSG_CHECKING([for Mac OS X >= 10.9]) | ||
| 138 | +if [test "x$osx_mavericks" = "xyes"]; then | ||
| 139 | + AC_MSG_RESULT(yes) | ||
| 140 | +else | ||
| 141 | + AC_MSG_RESULT(no) | ||
| 142 | +fi | ||
| 132 | AC_MSG_CHECKING([for Mac OS X >= 10.11]) | 143 | AC_MSG_CHECKING([for Mac OS X >= 10.11]) |
| 133 | if [test "x$osx_el_capitan" = "xyes"]; then | 144 | if [test "x$osx_el_capitan" = "xyes"]; then |
| 134 | AC_MSG_RESULT(yes) | 145 | AC_MSG_RESULT(yes) |
| @@ -867,19 +878,15 @@ else | @@ -867,19 +878,15 @@ else | ||
| 867 | 878 | ||
| 868 | # If we have distutils then get python path from distutils ... | 879 | # If we have distutils then get python path from distutils ... |
| 869 | if test -z "$ac_distutils_result"; then | 880 | if test -z "$ac_distutils_result"; then |
| 870 | - if test ${PYTHON_VERSION} '<' 3; then | ||
| 871 | - python_path=`$PYTHON -c "import distutils.sysconfig; \ | ||
| 872 | - print distutils.sysconfig.get_python_inc();"` | ||
| 873 | - else | ||
| 874 | - python_path=`$PYTHON -c "import distutils.sysconfig; \ | ||
| 875 | - print(distutils.sysconfig.get_python_inc());"` | ||
| 876 | - fi | 881 | + |
| 882 | + # Get Python path | ||
| 883 | + python_path=`$PYTHON -c "import distutils.sysconfig; \ | ||
| 884 | + print(distutils.sysconfig.get_python_inc());"` | ||
| 877 | if test -n "${python_path}"; then | 885 | if test -n "${python_path}"; then |
| 878 | AC_CHECK_HEADERS($python_path/Python.h, [has_python_h="yes"], [has_python_h="no"]) | 886 | AC_CHECK_HEADERS($python_path/Python.h, [has_python_h="yes"], [has_python_h="no"]) |
| 879 | python_path="-I$python_path" | 887 | python_path="-I$python_path" |
| 880 | fi | 888 | fi |
| 881 | PYTHON_CPPFLAGS=$python_path | 889 | PYTHON_CPPFLAGS=$python_path |
| 882 | - #CPPFLAGS="${CPPFLAGS} ${python_path}" | ||
| 883 | AC_SUBST([PYTHON_CPPFLAGS]) | 890 | AC_SUBST([PYTHON_CPPFLAGS]) |
| 884 | 891 | ||
| 885 | # ... otherwise check for includes relative to exectuable (obsolete?) | 892 | # ... otherwise check for includes relative to exectuable (obsolete?) |
| @@ -895,9 +902,29 @@ else | @@ -895,9 +902,29 @@ else | ||
| 895 | 902 | ||
| 896 | fi | 903 | fi |
| 897 | 904 | ||
| 898 | - # Signal missing Python headers | ||
| 899 | - if test "x$has_python_h" = "xno"; then | ||
| 900 | - AC_MSG_WARN([No Python header file "Python.h" found. Please install appropriate Python development package.]) | 905 | + # If we have Mavericks then get the MACOSX_DEPLOYMENT_TARGET from Python |
| 906 | + # If the target is older then Mavericks then set the MACOSX_DEPLOYMENT_TARGET | ||
| 907 | + # to this value as otherwise we get trouble with name mangling (that changed) | ||
| 908 | + if [test "x$osx_mavericks" = "xyes"]; then | ||
| 909 | + AC_MSG_CHECKING([Python MACOSX_DEPLOYMENT_TARGET]) | ||
| 910 | + python_target=`$PYTHON -c "from distutils import sysconfig; \ | ||
| 911 | + print(sysconfig.get_config_vars()[['MACOSX_DEPLOYMENT_TARGET']]);" 2> /dev/null` | ||
| 912 | + python_compact_target=`echo $python_target | sed 's/\(10\.[[0-9]]*\).*/\1/' | sed -e 's/\.//g'` | ||
| 913 | + case $python_compact_target in | ||
| 914 | + (*[!0-9]*|'') | ||
| 915 | + AC_MSG_RESULT(unknown) | ||
| 916 | + ;; | ||
| 917 | + (*) | ||
| 918 | + AC_MSG_RESULT(${python_target}) | ||
| 919 | + if [ test $python_compact_target -le 108 ]; then | ||
| 920 | + CONFIGURE_MACOSX_DEPLOYMENT_TARGET="$python_target" | ||
| 921 | + MACOSX_DEPLOYMENT_TARGET="$python_target" | ||
| 922 | + export MACOSX_DEPLOYMENT_TARGET | ||
| 923 | + EXPORT_MACOSX_DEPLOYMENT_TARGET='' | ||
| 924 | + AC_MSG_NOTICE([set MACOSX_DEPLOYMENT_TARGET to ${python_target}]) | ||
| 925 | + fi | ||
| 926 | + ;; | ||
| 927 | + esac | ||
| 901 | fi | 928 | fi |
| 902 | 929 | ||
| 903 | fi | 930 | fi |