Commit c784745b0e118586be279ec0d73b855f3711739d

Authored by Jürgen Knödlseder
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  
... ...