summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel M T Chakravarty <chak@cse.unsw.edu.au>2011-08-01 11:57:43 +1000
committerIan Lynagh <igloo@earth.li>2011-08-03 14:40:23 +0100
commit3b4747f996c0078f94a0053f09d3c5024ca40e8a (patch)
treec64b0eff1ae1abf8788f93eeb9ef146d8a446f26
parent4edb76cb4460d85cde507d596ea02ab4a5b1abf5 (diff)
downloadhaskell-3b4747f996c0078f94a0053f09d3c5024ca40e8a.tar.gz
Os X: With Xcode 4, check for gcc-4.2 also in the setup for binary distributions
-rw-r--r--distrib/configure.ac.in31
1 files changed, 30 insertions, 1 deletions
diff --git a/distrib/configure.ac.in b/distrib/configure.ac.in
index facba914c2..a37800458b 100644
--- a/distrib/configure.ac.in
+++ b/distrib/configure.ac.in
@@ -50,7 +50,36 @@ AC_PATH_PROG(SedCmd,gsed sed,sed)
#
dnl ** How to invoke gcc/cpp **
#
-FP_ARG_WITH_PATH_GNU_PROG([CC], [gcc])
+if test "$TargetOS_CPP" = "darwin"
+then
+ AC_MSG_CHECKING(XCode version)
+ XCodeVersion=`xcodebuild -version | grep Xcode | sed "s/Xcode //"`
+ # Old XCode versions don't actually give the XCode version
+ if test "$XCodeVersion" = ""
+ then
+ AC_MSG_RESULT(not found (too old?))
+ else
+ AC_MSG_RESULT($XCodeVersion)
+ XCodeVersion1=`echo "$XCodeVersion" | sed 's/\..*//'`
+changequote(, )dnl
+ XCodeVersion2=`echo "$XCodeVersion" | sed 's/[^.]*\.\([^.]*\).*/\1/'`
+changequote([, ])dnl
+ AC_MSG_NOTICE(XCode version component 1: $XCodeVersion1)
+ AC_MSG_NOTICE(XCode version component 2: $XCodeVersion2)
+ fi
+fi
+
+dnl ** Which gcc to use?
+dnl --------------------------------------------------------------
+if test "$TargetOS_CPP" = "darwin" &&
+ test "$XCodeVersion1" -ge 4
+then
+ # From Xcode 4, use 'gcc-4.2' to force the use of the gcc legacy backend (instead of the LLVM
+ # backend)
+ FP_ARG_WITH_PATH_GNU_PROG([CC], [gcc-4.2])
+else
+ FP_ARG_WITH_PATH_GNU_PROG([CC], [gcc])
+fi
export CC
WhatGccIsCalled="$CC"
AC_SUBST(WhatGccIsCalled)