X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=aclocal.m4;h=bfd91fc5ca76513ea8d2d7537cc610b904b81e7b;hb=33642e6578d9c5fe83005f75fbbfd713222b8196;hp=42c136157b342879baf474880e3d05e345a9312d;hpb=c55791e1381cfc1a3bddd6c182d32719d48471ce;p=ghc-hetmet.git
diff --git a/aclocal.m4 b/aclocal.m4
index 42c1361..bfd91fc 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -44,6 +44,40 @@ AC_DEFUN([FP_EVAL_STDERR],
])# FP_EVAL_STDERR
+# FP_ARG_WITH_PATH_GNU_PROG
+# --------------------
+# XXX
+#
+# $1 = the command to look for
+# $2 = the variable to set
+#
+AC_DEFUN([FP_ARG_WITH_PATH_GNU_PROG],
+[
+AC_ARG_WITH($2,
+[AC_HELP_STRING([--with-$2=ARG],
+ [Use ARG as the path to $2 [default=autodetect]])],
+[
+ if test "$HostOS" = "mingw32"
+ then
+ AC_MSG_WARN([Request to use $withval will be ignored])
+ else
+ $1=$withval
+ fi
+],
+[
+ if test "$HostOS" != "mingw32"
+ then
+ AC_PATH_PROG([$1], [$2])
+ if test -z "$$1"
+ then
+ AC_MSG_ERROR([cannot find $2 in your PATH, no idea how to link])
+ fi
+ fi
+]
+)
+]) # FP_ARG_WITH_PATH_GNU_PROG
+
+
# FP_PROG_CONTEXT_DIFF
# --------------------
# Figure out how to do context diffs. Sets the output variable ContextDiffCmd.
@@ -237,17 +271,17 @@ fi
AC_CACHE_CHECK([for version of happy], fptools_cv_happy_version,
changequote(, )dnl
[if test x"$HappyCmd" != x; then
- fptools_cv_happy_version="`$HappyCmd -v |
- grep 'Happy Version' | sed -e 's/Happy Version \([^ ]*\).*/\1/g'`" ;
+ fptools_cv_happy_version=`"$HappyCmd" -v |
+ grep 'Happy Version' | sed -e 's/Happy Version \([^ ]*\).*/\1/g'` ;
else
fptools_cv_happy_version="";
fi;
changequote([, ])dnl
])
-if test ! -f compiler/parser/Parser.hs || test ! -f compiler/main/ParsePkgConf.hs || test ! -f compiler/cmm/CmmParse.hs || test ! -f compiler/parser/ParserCore.hs
+if test ! -f compiler/parser/Parser.hs || test ! -f compiler/cmm/CmmParse.hs || test ! -f compiler/parser/ParserCore.hs
then
- FP_COMPARE_VERSIONS([$fptools_cv_happy_version],[-lt],[1.15],
- [AC_MSG_ERROR([Happy version 1.15 or later is required to compile GHC.])])[]dnl
+ FP_COMPARE_VERSIONS([$fptools_cv_happy_version],[-lt],[1.16],
+ [AC_MSG_ERROR([Happy version 1.16 or later is required to compile GHC.])])[]
fi
HappyVersion=$fptools_cv_happy_version;
AC_SUBST(HappyVersion)
@@ -272,8 +306,8 @@ fi
AC_CACHE_CHECK([for version of alex], fptools_cv_alex_version,
changequote(, )dnl
[if test x"$AlexCmd" != x; then
- fptools_cv_alex_version="`$AlexCmd -v |
- grep 'Alex [Vv]ersion' | sed -e 's/Alex [Vv]ersion \([0-9\.]*\).*/\1/g'`" ;
+ fptools_cv_alex_version=`"$AlexCmd" -v |
+ grep 'Alex [Vv]ersion' | sed -e 's/Alex [Vv]ersion \([0-9\.]*\).*/\1/g'` ;
else
fptools_cv_alex_version="";
fi;
@@ -282,52 +316,19 @@ changequote([, ])dnl
if test ! -f compiler/cmm/CmmLex.hs || test ! -f compiler/parser/Lexer.hs
then
FP_COMPARE_VERSIONS([$fptools_cv_alex_version],[-lt],[2.1.0],
- [AC_MSG_ERROR([Alex version 2.1.0 or later is required to compile GHC.])])[]dnl
+ [AC_MSG_ERROR([Alex version 2.1.0 or later is required to compile GHC.])])[]
fi
AlexVersion=$fptools_cv_alex_version;
AC_SUBST(AlexVersion)
])
-# FP_PROG_LD
-# ----------
-# Sets the output variable LdCmd to the (non-Cygwin version of the) full path
-# of ld. Exits if no ld can be found
-AC_DEFUN([FP_PROG_LD],
-[
-if test -z "$1"
-then
- AC_PATH_PROG([fp_prog_ld_raw], [ld])
- if test -z "$fp_prog_ld_raw"; then
- AC_MSG_ERROR([cannot find ld in your PATH, no idea how to link])
- fi
- LdCmd=$fp_prog_ld_raw
- case $HostPlatform in
- *mingw32) if test x${OSTYPE} != xmsys; then
- LdCmd="`cygpath -w ${fp_prog_ld_raw} | sed -e 's@\\\\@/@g'`"
- AC_MSG_NOTICE([normalized ld command to $LdCmd])
- fi
- # Insist on >= ld-2.15.x, since earlier versions doesn't handle
- # the generation of relocatable object files with large amounts
- # of relocations correctly. (cf. HSbase.o splittage-hack)
- fp_prog_ld_version=`${LdCmd} --version | sed -n '/GNU ld/p' | tr -cd 0-9 | cut -b1-3`
- FP_COMPARE_VERSIONS([$fp_prog_ld_version],[-lt],[214],
- [AC_MSG_ERROR([GNU ld version later than 2.14 required to compile GHC on Windows.])])[]dnl
- ;;
- esac
-else
- LdCmd="$1"
-fi
-AC_SUBST([LdCmd])
-])# FP_PROG_LD
-
-
# FP_PROG_LD_X
# ------------
# Sets the output variable LdXFlag to -x if ld supports this flag, otherwise the
# variable's value is empty.
AC_DEFUN([FP_PROG_LD_X],
-[AC_REQUIRE([FP_PROG_LD])
+[
AC_CACHE_CHECK([whether ld understands -x], [fp_cv_ld_x],
[echo 'foo() {}' > conftest.c
${CC-cc} -c conftest.c
@@ -351,7 +352,7 @@ AC_SUBST([LdXFlag])
# Sets the output variable LdIsGNULd to YES or NO, depending on whether it is
# GNU ld or not.
AC_DEFUN([FP_PROG_LD_IS_GNU],
-[AC_REQUIRE([FP_PROG_LD])
+[
AC_CACHE_CHECK([whether ld is GNU ld], [fp_cv_gnu_ld],
[if ${LdCmd} --version 2> /dev/null | grep "GNU" > /dev/null 2>&1; then
fp_cv_gnu_ld=yes
@@ -414,7 +415,7 @@ else
touch conftest.dummy
for fp_var in clqsZ clqs cqs clq cq ; do
rm -f conftest.a
- if $fp_prog_ar_raw $fp_var conftest.a conftest.dummy > /dev/null 2> /dev/null; then
+ if "$fp_prog_ar_raw" $fp_var conftest.a conftest.dummy > /dev/null 2> /dev/null; then
fp_cv_prog_ar_args=$fp_var
break
fi
@@ -425,7 +426,8 @@ else
fi
fi])
fp_prog_ar_args=$fp_cv_prog_ar_args
-AC_SUBST([ArCmd], ["$fp_prog_ar $fp_prog_ar_args"])
+AC_SUBST([ArCmd], ["$fp_prog_ar"])
+AC_SUBST([ArArgs], ["$fp_prog_ar_args"])
])# FP_PROG_AR_ARGS
@@ -518,33 +520,25 @@ fi
if test "$fp_have_gcc" = "NO" -a -d $srcdir/ghc; then
AC_MSG_ERROR([gcc is required])
fi
-AC_CACHE_CHECK([version of gcc], [fp_gcc_version],
+GccLT34=
+AC_CACHE_CHECK([version of gcc], [fp_cv_gcc_version],
[if test "$fp_have_gcc" = "YES"; then
- fp_gcc_version="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version [[^0-9]]*\([[0-9.]]*\).*/\1/g'`"
- FP_COMPARE_VERSIONS([$fp_gcc_version], [-lt], [2.0],
- [AC_MSG_ERROR([Need at least gcc version 2.0 (3.4+ recommended)])])
+ fp_cv_gcc_version="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version [[^0-9]]*\([[0-9.]]*\).*/\1/g'`"
+ FP_COMPARE_VERSIONS([$fp_cv_gcc_version], [-lt], [3.0],
+ [AC_MSG_ERROR([Need at least gcc version 3.0 (3.4+ recommended)])])
+ # See #2770: gcc 2.95 doesn't work any more, apparently. There probably
+ # isn't a very good reason for that, but for now just make configure
+ # fail.
+ FP_COMPARE_VERSIONS([$fp_cv_gcc_version], [-lt], [3.4], GccLT34=YES)
else
- fp_gcc_version="not-installed"
+ fp_cv_gcc_version="not-installed"
fi
])
AC_SUBST([HaveGcc], [$fp_have_gcc])
-AC_SUBST([GccVersion], [$fp_gcc_version])
+AC_SUBST([GccVersion], [$fp_cv_gcc_version])
+AC_SUBST(GccLT34)
])# FP_HAVE_GCC
-AC_DEFUN([FP_MINGW_GCC],
-[
- case $HostOS_CPP in
- mingw*) AC_MSG_CHECKING([whether $CC is a mingw gcc])
- if $CC -v 2>&1 | grep mingw >/dev/null; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- AC_MSG_ERROR([Please use --with-gcc to specify a mingw gcc])
- fi;;
- *) ;;
- esac
-])
-
dnl Small feature test for perl version. Assumes PerlCmd
dnl contains path to perl binary.
dnl
@@ -576,7 +570,7 @@ AC_DEFUN([FP_CHECK_PROG],
# ------------
# Find a non-WinDoze version of the "find" utility.
AC_DEFUN([FP_PROG_FIND],
-[AC_PATH_PROG([fp_prog_find], [find])
+[AC_PATH_PROGS([fp_prog_find], [gfind find], find)
echo foo > conftest.txt
$fp_prog_find conftest.txt -print > conftest.out 2>&1
if grep '^conftest.txt$' conftest.out > /dev/null 2>&1 ; then
@@ -704,14 +698,28 @@ AS_VAR_POPDEF([fp_func])dnl
# FP_GEN_DOCBOOK_XML
# ------------------
# Generates a DocBook XML V4.2 document in conftest.xml.
+#
+# It took a lot of experimentation to find a document that will cause
+# xsltproc to fail with an error code when the relevant
+# stylesheets/DTDs are not found. I couldn't make xsltproc fail with
+# a single-file document, it seems a multi-file document is needed.
+# -- SDM 2009-06-03
+#
AC_DEFUN([FP_GEN_DOCBOOK_XML],
-[rm -f conftest.xml
+[rm -f conftest.xml conftest-book.xml
cat > conftest.xml << EOF
+ "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [[
+
+]]>