rm -f conftest
])])
-dnl
-dnl Extra testing of the result AC_PROG_CC, testing the gcc version no.
-dnl *Must* be called after AC_PROG_CC
-dnl
-AC_DEFUN(FPTOOLS_HAVE_GCC,
-[AC_CACHE_CHECK([whether you have an ok gcc], fptools_cv_have_gcc,
+
+# 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
- echo ''
- echo "You would be better off with gcc"
- echo "Perhaps it is already installed, but not in your PATH?"
- fptools_cv_have_gcc='no'
+ 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
-changequote(, )dnl
- 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' `"
-changequote([, ])dnl
- fptools_cv_have_gcc='yes'
- FP_COMPARE_VERSIONS([$gcc_version_str], [-lt], [2.0],
- [fptools_cv_have_gcc='no'
- echo ""
- echo "your gcc version appears to be ..."
- $CC --version
- echo "gcc prior to 2.0 and have never worked with ghc."
- echo "we recommend 2.95.3, although versions back to 2.7.2 should be ok."
- AC_MSG_ERROR([gcc 1.X has never been supported])])
-fi
-])
-HaveGcc=`echo $fptools_cv_have_gcc | sed 'y/yesno/YESNO/'`
-AC_SUBST(HaveGcc)
-GccVersion=`gcc --version | grep mingw | cut -f 3 -d ' '`
-AC_SUBST(GccVersion)
-])
-
-dnl
-dnl Some OSs (Mandrake Linux, in particular) configure GCC with
-dnl -momit-leaf-frame-pointer on by default. If this is the case, we
-dnl need to turn it off for mangling to work. The test is currently a bit
-dnl crude, using only the version number of gcc.
-dnl
-AC_DEFUN([FPTOOLS_GCC_NEEDS_NO_OMIT_LFPTR],
-[AC_CACHE_CHECK([whether gcc needs -mno-omit-leaf-frame-pointer], [fptools_cv_gcc_needs_no_omit_lfptr],
-[FP_COMPARE_VERSIONS([$gcc_version_str], [-ge], [3.2],
- [fptools_cv_gcc_needs_no_omit_lfptr=yes],
- [fptools_cv_gcc_needs_no_omit_lfptr=no])])
-if test "$fptools_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])# FPTOOLS_GCC_NEEDS_NO_OMIT_LFPTR
+ 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
dnl Small feature test for perl version. Assumes PerlCmd
dnl ** What command to use to compile compiler sources ?
dnl --------------------------------------------------------------
-AC_ARG_WITH(ghc,
+AC_ARG_WITH([ghc],
[AC_HELP_STRING([--with-ghc=ARG],
- [Use ARG as the path to GHC [default=autodetect]])],
-[ WithGhc="$withval" ],
-[
- if test "$GHC" = ""; then
- AC_PATH_PROG(GHC,ghc)
+ [Use ARG as the path to GHC [default=autodetect]])],
+ [WithGhc="$withval"],
+ [if test "$GHC" = ""; then
+ AC_PATH_PROG([GHC], [ghc])
fi
- WithGhc=$GHC
-])
-AC_SUBST(WithGhc)
+ WithGhc="$GHC"])
+AC_SUBST([WithGhc])
AC_ARG_WITH(hc,
[AC_HELP_STRING([--with-hc=ARG],
dnl Figure out which C compiler to use. Gcc is preferred.
dnl If gcc, make sure it's at least 2.1
dnl
-AC_PROG_CC
-FPTOOLS_HAVE_GCC
-FPTOOLS_GCC_NEEDS_NO_OMIT_LFPTR
+FP_HAVE_GCC
dnl ** figure out how to invoke cpp directly (gcc -E is no good)
AC_PROG_CPP
#
dnl ** How to invoke cpp directly **
#
-AC_PROG_CC
-FPTOOLS_HAVE_GCC
+FP_HAVE_GCC
AC_PROG_CPP
#
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
AC_INIT([The Glorious Glasgow Haskell Compilation System], [6.3], [glasgow-haskell-bugs@haskell.org], [ghc])
AC_CONFIG_SRCDIR([ghc.spec.in])
+# duplicate from ../configure.ac
+AC_ARG_WITH([ghc],
+[AC_HELP_STRING([--with-ghc=ARG],
+ [Use ARG as the path to GHC [default=autodetect]])],
+ [WithGhc="$withval"],
+ [if test "$GHC" = ""; then
+ AC_PATH_PROG([GHC], [ghc])
+ fi
+ WithGhc="$GHC"])
+AC_SUBST([WithGhc])
+
FP_SETUP_PROJECT_INFO
# Hmmm, we fix the RPM release number to 1 here... Is this convenient?
AC_SUBST([release], [1])
+FP_GCC_NEEDS_NO_OMIT_LFPTR
+
# Check whether this GHC has readline installed
FP_GHC_HAS_READLINE