Simplify the GHC version logic a bit.

This just flattens the version number into an integer (e.g. 6.8.2 ->
6008002), which makes comparisons much simpler. (Previously it would
have broken for GHC 7.x.)

Also remove duplicate "Checking" from messages.
This commit is contained in:
Adam Sampson 2010-04-10 21:37:51 +00:00
parent b5fd2707e2
commit b006500274

View File

@ -79,24 +79,15 @@ AC_NEED_HASKELL_LIB([regex-base],LIB_regexbase)
AC_NEED_HASKELL_LIB([regex-compat],LIB_regexcompat)
AC_NEED_HASKELL_LIB([regex-posix],LIB_regexposix)
AC_MSG_CHECKING([Checking GHC version])
ghc_version=`ghc --numeric-version | awk -F . '{printf "%d%03d%03d\n", $1, $2, $3}'`
ghc_version=`ghc --numeric-version`
ghc_version_major=`echo $ghc_version | awk -F . '{print $1}'`
ghc_version_mid=`echo $ghc_version | awk -F . '{print $2}'`
ghc_version_minor=`echo $ghc_version | awk -F . '{print $3}'`
AC_MSG_RESULT($ghc_version_major.$ghc_version_mid.$ghc_version_minor)
AC_MSG_CHECKING([Checking that GHC version is at least 6.6.x])
if test $ghc_version_major -lt 6 -o $ghc_version_mid -lt 6; then
AC_MSG_ERROR([GHC of at least version 6.6.x is required])
else
AC_MSG_RESULT([ok])
AC_MSG_CHECKING([whether GHC version is reasonable])
if test $ghc_version -lt 6006000; then
AC_MSG_ERROR([GHC 6.6 or later is required])
fi
AC_MSG_RESULT([OK])
AM_CONDITIONAL([GHC68],[test $ghc_version_major -ge 6 -a $ghc_version_mid -ge 8])
AM_CONDITIONAL([GHC68],[test $ghc_version -ge 6008000])
AC_DEFUN([AC_PICK_HASKELL_LIB_VER],
[
@ -112,7 +103,7 @@ AC_DEFUN([AC_PICK_HASKELL_LIB_VER],
#GHC 6.10 and later have base-3 and base-4. For now, we're sticking with
#base-3, but we need to know the exact version to tell GHC. We filter
#for base-3, and take the last one (since ghc-pkg lists them in ascending order)
if test $ghc_version_major -ge 6 -a $ghc_version_mid -le 8; then
if test $ghc_version -lt 6010000; then
AC_PICK_HASKELL_LIB_VER([base],[3],[LIB_VER_base])
LIB_VER_syb="$LIB_VER_base"
else