X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=ghc%2Faclocal.m4;h=3a4a6f734d41ab4485b806beaaf430cdc0d4478f;hb=28a464a75e14cece5db40f2765a29348273ff2d2;hp=aa3ebf95f49744fe415afdcb4893eee12b85fa04;hpb=054725a03aca2cbfc062985f201bb11d9eb8d632;p=ghc-hetmet.git diff --git a/ghc/aclocal.m4 b/ghc/aclocal.m4 index aa3ebf9..3a4a6f7 100644 --- a/ghc/aclocal.m4 +++ b/ghc/aclocal.m4 @@ -22,6 +22,10 @@ AC_SUBST([ProjectVersionInt]) # The project patchlevel is zero unless stated otherwise test -z "$ProjectPatchLevel" && ProjectPatchLevel=0 + +# Remove dots from the patch level; this allows us to have versions like 6.4.1.20050508 +ProjectPatchLevel=`echo $ProjectPatchLevel | sed 's/\.//'` + AC_SUBST([ProjectPatchLevel]) ])# FP_SETUP_PROJECT_INFO @@ -48,7 +52,7 @@ fi])# FP_PROG_GHC_PKG # FP_GHC_HAS_READLINE # ------------------- -AC_DEFUN(FP_GHC_HAS_READLINE, +AC_DEFUN([FP_GHC_HAS_READLINE], [AC_REQUIRE([FP_PROG_GHC_PKG]) AC_CACHE_CHECK([whether ghc has readline package], [fp_cv_ghc_has_readline], [if "${GhcPkgCmd-ghc-pkg}" --show-package readline >/dev/null 2>&1; then @@ -58,3 +62,70 @@ else fi]) AC_SUBST([GhcHasReadline], [`echo $fp_cv_ghc_has_readline | sed 'y/yesno/YESNO/'`]) ])# FP_GHC_HAS_READLINE + + +# FP_COMPARE_VERSIONS(VERSION1, TEST, VERSION2, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) +# ---------------------------------------------------------------------------------- +# Compare dotted version numbers VERSION1 and VERSION2 lexicographically according +# to TEST (one of -eq, -ne, -lt, -le, -gt, or -ge). +AC_DEFUN([FP_COMPARE_VERSIONS], +[fp_version1=$1; fp_version2=$3 +fp_save_IFS=$IFS; IFS='.' +while test x"$fp_version1" != x || test x"$fp_version2" != x +do + + set dummy $fp_version1; shift + fp_num1="" + test $[@%:@] = 0 || { fp_num1="[$]1"; shift; } + test x"$fp_num1" = x && fp_num1="0" + fp_version1="[$]*" + + set dummy $fp_version2; shift + fp_num2="" + test $[@%:@] = 0 || { fp_num2="[$]1"; shift; } + test x"$fp_num2" = x && fp_num2="0" + fp_version2="[$]*" + + test "$fp_num1" = "$fp_num2" || break; +done +IFS=$fp_save_IFS +AS_IF([test "$fp_num1" $2 "$fp_num2"], [$4], [$5])[]dnl +])# FP_COMPARE_VERSIONS + + +# FP_HAVE_GCC +# ----------- +# Extra testing of the result AC_PROG_CC, testing the gcc version no. Sets the +# output variables HaveGcc and GccVersion. +AC_DEFUN([FP_HAVE_GCC], +[AC_REQUIRE([AC_PROG_CC]) +AC_CACHE_CHECK([whether your gcc is OK], [fp_cv_have_gcc], +[if test -z "$GCC"; then + fp_cv_have_gcc='no' + AC_MSG_WARN([You would be better off with gcc, perhaps it is already installed, but not in your PATH?]) +else + fp_cv_have_gcc='yes' + gcc_version_str="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version [[^0-9]]*\([[0-9]][[0-9]]*\)\.\([[0-9]][[0-9]]*\).*/\1\.\2/g' `" + FP_COMPARE_VERSIONS([$gcc_version_str], [-lt], [2.0], + [AC_MSG_ERROR([Need at least gcc version 2.0 (2.95.3 recommend)])]) +fi]) +AC_SUBST([HaveGcc], [`echo $fp_cv_have_gcc | sed 'y/yesno/YESNO/'`]) +AC_SUBST([GccVersion], [`gcc --version | grep mingw | cut -f 3 -d ' '`]) +])# FP_HAVE_GCC + + +# FP_GCC_NEEDS_NO_OMIT_LFPTR +# -------------------------- +# Some OSs (Mandrake Linux, in particular) configure GCC with +# -momit-leaf-frame-pointer on by default. If this is the case, we need to turn +# it off for mangling to work. The test is currently a bit crude, using only the +# version number of gcc. Defines HAVE_GCC_MNO_OMIT_LFPTR. +AC_DEFUN([FP_GCC_NEEDS_NO_OMIT_LFPTR], +[AC_REQUIRE([FP_HAVE_GCC]) +AC_CACHE_CHECK([whether gcc needs -mno-omit-leaf-frame-pointer], [fp_cv_gcc_needs_no_omit_lfptr], +[FP_COMPARE_VERSIONS([$gcc_version_str], [-ge], [3.2], + [fp_cv_gcc_needs_no_omit_lfptr=yes], + [fp_cv_gcc_needs_no_omit_lfptr=no])]) +if test "$fp_cv_gcc_needs_no_omit_lfptr" = "yes"; then + AC_DEFINE([HAVE_GCC_MNO_OMIT_LFPTR], [1], [Define to 1 if gcc supports -mno-omit-leaf-frame-pointer.]) +fi])# FP_GCC_NEEDS_NO_OMIT_LFPTR