Commit c784745b0e118586be279ec0d73b855f3711739d
1 parent
1ae952bd
Add Mavericks check to set MACOSX_DEPLOYMENT_TARGET if Python has been compiled for an older target.
Showing
1 changed file
with
41 additions
and
10 deletions
configure.ac
| ... | ... | @@ -2,7 +2,7 @@ |
| 2 | 2 | # Configuration for ctools - a set of tools for science analysis of CTA # |
| 3 | 3 | # data # |
| 4 | 4 | # ------------------------------------------------------------------------- # |
| 5 | -# Copyright (C) 2011-2015 Juergen Knoedlseder # | |
| 5 | +# Copyright (C) 2011-2016 Juergen Knoedlseder # | |
| 6 | 6 | # ------------------------------------------------------------------------- # |
| 7 | 7 | # # |
| 8 | 8 | # This program is free software: you can redistribute it and/or modify # |
| ... | ... | @@ -93,10 +93,12 @@ AC_CANONICAL_HOST |
| 93 | 93 | # A special kluge was added for Mac OS X >=10.7. As Apple switched to clang # |
| 94 | 94 | # we search from this version on for the clang compiler. # |
| 95 | 95 | # # |
| 96 | -# We also signal whether Mac OS X >=10.11 (El Capitan). # | |
| 96 | +# We also signal whether Mac OS X >=10.9 (Mavericks) and Mac OS X >=10.11 # | |
| 97 | +# (El Capitan). # | |
| 97 | 98 | ############################################################################# |
| 98 | 99 | # Set default Mac OS X version flags |
| 99 | 100 | osx_lion=no |
| 101 | +osx_mavericks=no | |
| 100 | 102 | osx_el_capitan=no |
| 101 | 103 | |
| 102 | 104 | # Set default compiler lists |
| ... | ... | @@ -111,6 +113,9 @@ if test `uname -s` = "Darwin"; then |
| 111 | 113 | cc_list="clang gcc cc cl.exe" |
| 112 | 114 | osx_lion=yes |
| 113 | 115 | fi |
| 116 | + if [ test $version -ge 109 ]; then | |
| 117 | + osx_mavericks=yes | |
| 118 | + fi | |
| 114 | 119 | if [ test $version -ge 1011 ]; then |
| 115 | 120 | osx_el_capitan=yes |
| 116 | 121 | fi |
| ... | ... | @@ -121,6 +126,12 @@ if [test "x$osx_lion" = "xyes"]; then |
| 121 | 126 | else |
| 122 | 127 | AC_MSG_RESULT(no) |
| 123 | 128 | fi |
| 129 | +AC_MSG_CHECKING([for Mac OS X >= 10.9]) | |
| 130 | +if [test "x$osx_mavericks" = "xyes"]; then | |
| 131 | + AC_MSG_RESULT(yes) | |
| 132 | +else | |
| 133 | + AC_MSG_RESULT(no) | |
| 134 | +fi | |
| 124 | 135 | AC_MSG_CHECKING([for Mac OS X >= 10.11]) |
| 125 | 136 | if [test "x$osx_el_capitan" = "xyes"]; then |
| 126 | 137 | AC_MSG_RESULT(yes) |
| ... | ... | @@ -633,21 +644,41 @@ else |
| 633 | 644 | |
| 634 | 645 | # If we have distutils then get python path from distutils ... |
| 635 | 646 | if test -z "$ac_distutils_result"; then |
| 636 | - if test ${PYTHON_VERSION} '<' 3; then | |
| 637 | - python_path=`$PYTHON -c "import distutils.sysconfig; \ | |
| 638 | - print distutils.sysconfig.get_python_inc();"` | |
| 639 | - else | |
| 640 | - python_path=`$PYTHON -c "import distutils.sysconfig; \ | |
| 641 | - print(distutils.sysconfig.get_python_inc());"` | |
| 642 | - fi | |
| 647 | + python_path=`$PYTHON -c "import distutils.sysconfig; \ | |
| 648 | + print(distutils.sysconfig.get_python_inc());"` | |
| 643 | 649 | if test -n "${python_path}"; then |
| 644 | 650 | AC_CHECK_HEADERS($python_path/Python.h, [has_python_h="yes"], [has_python_h="no"]) |
| 645 | 651 | python_path="-I$python_path" |
| 646 | 652 | fi |
| 647 | 653 | PYTHON_CPPFLAGS=$python_path |
| 648 | - CPPFLAGS="${CPPFLAGS} ${python_path}" | |
| 649 | 654 | AC_SUBST([PYTHON_CPPFLAGS]) |
| 650 | 655 | |
| 656 | + # If we have Mavericks then get the MACOSX_DEPLOYMENT_TARGET from Python | |
| 657 | + # If the target is older then Mavericks then set the MACOSX_DEPLOYMENT_TARGET | |
| 658 | + # to this value as otherwise we get trouble with name mangling (that changed) | |
| 659 | + if [test "x$osx_mavericks" = "xyes"]; then | |
| 660 | + AC_MSG_CHECKING([Python MACOSX_DEPLOYMENT_TARGET]) | |
| 661 | + python_target=`$PYTHON -c "from distutils import sysconfig; \ | |
| 662 | + print(sysconfig.get_config_vars()[['MACOSX_DEPLOYMENT_TARGET']]);" 2> /dev/null` | |
| 663 | + python_compact_target=`echo $python_target | sed 's/\(10\.[[0-9]]*\).*/\1/' | sed -e 's/\.//g'` | |
| 664 | + case $python_compact_target in | |
| 665 | + (*[!0-9]*|'') | |
| 666 | + AC_MSG_RESULT(unknown) | |
| 667 | + ;; | |
| 668 | + (*) | |
| 669 | + AC_MSG_RESULT(${python_target}) | |
| 670 | + if [ test $python_compact_target -le 108 ]; then | |
| 671 | + CONFIGURE_MACOSX_DEPLOYMENT_TARGET="$python_target" | |
| 672 | + MACOSX_DEPLOYMENT_TARGET="$python_target" | |
| 673 | + export MACOSX_DEPLOYMENT_TARGET | |
| 674 | + EXPORT_MACOSX_DEPLOYMENT_TARGET='' | |
| 675 | + LIBS="${LIBS} -lstdc++" | |
| 676 | + AC_MSG_NOTICE([set MACOSX_DEPLOYMENT_TARGET to ${python_target}]) | |
| 677 | + fi | |
| 678 | + ;; | |
| 679 | + esac | |
| 680 | + fi | |
| 681 | + | |
| 651 | 682 | # ... otherwise check for includes relative to exectuable (obsolete?) |
| 652 | 683 | else |
| 653 | 684 | ... | ... |