summaryrefslogtreecommitdiff
path: root/distrib
diff options
context:
space:
mode:
authorManuel M T Chakravarty <chak@cse.unsw.edu.au>2011-08-01 11:57:43 +1000
committerManuel M T Chakravarty <chak@cse.unsw.edu.au>2011-08-01 11:57:43 +1000
commit353c15e16dbb98e5efcdb10558837c4303df9344 (patch)
tree9d19165cc1333e6537bce028d8338732205fa31c /distrib
parent96ebe2fa43b9ee98cd82d31760c57db0fea18495 (diff)
downloadhaskell-353c15e16dbb98e5efcdb10558837c4303df9344.tar.gz
Os X: With Xcode 4, check for gcc-4.2 also in the setup for binary distributions
Diffstat (limited to 'distrib')
-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)