Improve error reporting for kind errors (fix Trac #1633)
[ghc-hetmet.git] / aclocal.m4
index 42c1361..c46d48d 100644 (file)
@@ -289,6 +289,46 @@ AC_SUBST(AlexVersion)
 ])
 
 
+dnl
+dnl Check for windres and version.
+dnl 2.15.91 works
+dnl 2.17.50 doesn't work
+dnl 2.18.50 works
+dnl
+AC_DEFUN([FPTOOLS_WINDRES],
+[
+if test "x$HostPlatform"  = "xi386-unknown-mingw32"
+then
+    AC_PATH_PROG(WindResCmd,windres,)
+    # Alex is passed to Cabal, so we need a native path
+    if test "${OSTYPE}"      != "msys"                  && \
+       test "${WindResCmd}"  != ""
+    then
+        # Canonicalise to <drive>:/path/to/gcc
+        WindResCmd=`cygpath -m ${WindResCmd}`
+    fi
+
+    AC_CACHE_CHECK([for version of windres], fptools_cv_windres_version,
+    changequote(, )dnl
+    [
+        if test x"$WindResCmd" != x
+        then
+            fptools_cv_windres_version="`$WindResCmd --version |
+                         grep 'GNU windres' |
+              sed -e 's/GNU windres[^0-9]* \([0-9\.]*\).*/\1/g'`" ;
+        else
+            fptools_cv_windres_version="";
+        fi
+        changequote([, ])dnl
+    ])
+    FP_COMPARE_VERSIONS([$fptools_cv_windres_version],[-eq],[2.17.50],
+      [AC_MSG_ERROR([Your windres version isn't compatible with GHC. 2.15.91 and 2.18.50 are known to work.])])[]dnl
+    indResVersion=$fptools_cv_windres_version;
+    AC_SUBST(WindResVersion)
+fi
+])
+
+
 # FP_PROG_LD
 # ----------
 # Sets the output variable LdCmd to the (non-Cygwin version of the) full path
@@ -521,8 +561,11 @@ fi
 AC_CACHE_CHECK([version of gcc], [fp_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_COMPARE_VERSIONS([$fp_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.
  else
    fp_gcc_version="not-installed"
  fi
@@ -576,7 +619,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
@@ -725,6 +768,19 @@ EOF
 ]) # FP_GEN_DOCBOOK_XML
 
 
+# FP_PROG_DBLATEX
+# ----------------
+# Sets the output variable DblatexCmd to the full path of dblatex,
+# which we use for building PDF and PS docs.
+# DblatexCmd is empty if dblatex could not be found.
+AC_DEFUN([FP_PROG_DBLATEX],
+[AC_PATH_PROG([DblatexCmd], [dblatex])
+if test -z "$DblatexCmd"; then
+  AC_MSG_WARN([cannot find dblatex in your PATH, you will not be able to build the PDF and PS documentation])
+fi
+])# FP_PROG_DBLATEX
+
+
 # FP_PROG_XSLTPROC
 # ----------------
 # Sets the output variable XsltprocCmd to the full path of the XSLT processor
@@ -732,7 +788,7 @@ EOF
 AC_DEFUN([FP_PROG_XSLTPROC],
 [AC_PATH_PROG([XsltprocCmd], [xsltproc])
 if test -z "$XsltprocCmd"; then
-  AC_MSG_WARN([cannot find xsltproc in your PATH, you will not be able to build the documentation])
+  AC_MSG_WARN([cannot find xsltproc in your PATH, you will not be able to build the HTML documentation])
 fi
 ])# FP_PROG_XSLTPROC
 
@@ -850,33 +906,6 @@ AC_SUBST([FopCmd])
 ])# FP_PROG_FOP
 
 
-# FP_PROG_FO_PROCESSOR
-# --------------------
-# Try to find an FO processor. PassiveTeX output is sometimes a bit strange, so
-# try FOP first. Sets the output variables FopCmd, XmltexCmd, DvipsCmd, and
-# PdfxmltexCmd.
-AC_DEFUN([FP_PROG_FO_PROCESSOR],
-[AC_REQUIRE([FP_PROG_FOP])
-AC_PATH_PROG([XmltexCmd], [xmltex])
-AC_PATH_PROG([DvipsCmd], [dvips])
-if test -z "$FopCmd"; then
-  if test -z "$XmltexCmd"; then
-    AC_MSG_WARN([cannot find an FO => DVI converter, you will not be able to build DVI or PostScript documentation])
-  else
-    if test -z "$DvipsCmd"; then
-      AC_MSG_WARN([cannot find a DVI  => PS converter, you will not be able to build PostScript documentation])
-    fi
-  fi
-  AC_PATH_PROG([PdfxmltexCmd], [pdfxmltex])
-  if test -z "$PdfxmltexCmd"; then
-    AC_MSG_WARN([cannot find an FO => PDF converter, you will not be able to build PDF documentation])
-  fi
-elif test -z "$XmltexCmd"; then
-  AC_MSG_WARN([cannot find an FO => DVI converter, you will not be able to build DVI documentation])
-fi
-])# FP_PROG_FO_PROCESSOR
-
-
 # FP_PROG_GHC_PKG
 # ----------------
 # Try to find a ghc-pkg matching the ghc mentioned in the environment variable
@@ -887,6 +916,9 @@ AC_DEFUN([FP_PROG_GHC_PKG],
 [fp_ghc_pkg_guess=`echo $WithGhc | sed 's,ghc\(@<:@^/\\@:>@*\)$,ghc-pkg\1,'`
 if "$fp_ghc_pkg_guess" -l > /dev/null 2>&1; then
   fp_cv_matching_ghc_pkg=$fp_ghc_pkg_guess
+elif "$fp_ghc_pkg_guess" list > /dev/null 2>&1; then
+  # from 6.10, ghc-pkg doesn't support the old -l syntax any more
+  fp_cv_matching_ghc_pkg=$fp_ghc_pkg_guess
 else
   fp_cv_matching_ghc_pkg=no
 fi])
@@ -897,20 +929,6 @@ else
 fi])# FP_PROG_GHC_PKG
 
 
-# FP_GHC_HAS_EDITLINE
-# -------------------
-AC_DEFUN([FP_GHC_HAS_EDITLINE],
-[AC_REQUIRE([FP_PROG_GHC_PKG])
-AC_CACHE_CHECK([whether ghc has editline package], [fp_cv_ghc_has_editline],
-[if "${GhcPkgCmd-ghc-pkg}" --show-package editline >/dev/null 2>&1; then
-  fp_cv_ghc_has_editline=yes
-else
-  fp_cv_ghc_has_editline=no
- fi])
-AC_SUBST([GhcHasEditline], [`echo $fp_cv_ghc_has_editline | sed 'y/yesno/YESNO/'`])
-])# FP_GHC_HAS_EDITLINE
-
-
 # FP_GCC_EXTRA_FLAGS
 # ------------------
 # Determine which extra flags we need to pass gcc when we invoke it
@@ -1211,19 +1229,19 @@ AC_DEFUN([FP_FIND_ROOT],[
 AC_MSG_CHECKING(for path to top of build tree)
 
 dnl This would be
-dnl     make -C utils/pwd clean && make -C utils/pwd
+dnl     make -C utils/ghc-pwd clean && make -C utils/ghc-pwd
 dnl except we don't want to have to know what make is called. Sigh.
-if test ! -f utils/pwd/pwd && test ! -f utils/pwd/pwd.exe; then
-  cd utils/pwd
+if test ! -f utils/ghc-pwd/ghc-pwd && test ! -f utils/ghc-pwd/ghc-pwd.exe; then
+  cd utils/ghc-pwd
   rm -f *.o
   rm -f *.hi
-  rm -f pwd
-  rm -f pwd.exe
-  $WithGhc -v0 --make pwd -o pwd
+  rm -f ghc-pwd
+  rm -f ghc-pwd.exe
+  $WithGhc -v0 --make ghc-pwd -o ghc-pwd
   cd ../..
 fi
 
-hardtop=`utils/pwd/pwd forwardslash`
+hardtop=`utils/ghc-pwd/ghc-pwd`
 
 if ! test -d "$hardtop"; then
   AC_MSG_ERROR([cannot determine current directory])