X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=aclocal.m4;h=097ff9c5afe153d79debd471abc1f531bdda9d50;hp=758f3190faf0c0ca9c3f93986a8a364ca7c9a2a6;hb=ba55b83612b63b2dad5123d1b58d0f5c4d08ebd5;hpb=db84c6048957788fd702e73e328e71868adaff72 diff --git a/aclocal.m4 b/aclocal.m4 index 758f319..097ff9c 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -237,17 +237,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 +272,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,13 +282,53 @@ 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) ]) +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 :/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.])])[] + WindResVersion=$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 @@ -518,17 +558,23 @@ 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], @@ -704,14 +750,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" [[ + +]]> - A DocBook Test Document +&conftest-book; + +EOF +cat >conftest-book.xml << EOF + + A DocBook “Test Document” A Chapter Title This is a paragraph, referencing . @@ -720,11 +780,23 @@ cat > conftest.xml << EOF Another Chapter Title This is another paragraph, referencing . - 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,38 +804,33 @@ 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 -# FP_DIR_DOCBOOK_XSL(XSL-DIRS) +# FP_DOCBOOK_XSL # ---------------------------- -# Check which of the directories XSL-DIRS contains DocBook XSL stylesheets. The -# output variable DIR_DOCBOOK_XSL will contain the first usable directory or -# will be empty if none could be found. -AC_DEFUN([FP_DIR_DOCBOOK_XSL], +# Check that we can process a DocBook XML document to HTML using xsltproc. +AC_DEFUN([FP_DOCBOOK_XSL], [AC_REQUIRE([FP_PROG_XSLTPROC])dnl if test -n "$XsltprocCmd"; then - AC_CACHE_CHECK([for DocBook XSL stylesheet directory], fp_cv_dir_docbook_xsl, + AC_CACHE_CHECK([for DocBook XSL stylesheet], fp_cv_dir_docbook_xsl, [FP_GEN_DOCBOOK_XML fp_cv_dir_docbook_xsl=no - for fp_var in $1; do - if $XsltprocCmd ${fp_var}/html/docbook.xsl conftest.xml > /dev/null 2>&1; then - fp_cv_dir_docbook_xsl=$fp_var - break - fi - done + if $XsltprocCmd --nonet http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl conftest.xml > /dev/null 2>&1; then + fp_cv_dir_docbook_xsl=yes + fi rm -rf conftest*]) fi if test x"$fp_cv_dir_docbook_xsl" = xno; then AC_MSG_WARN([cannot find DocBook XSL stylesheets, you will not be able to build the documentation]) - DIR_DOCBOOK_XSL= + HAVE_DOCBOOK_XSL=NO else - DIR_DOCBOOK_XSL=$fp_cv_dir_docbook_xsl + HAVE_DOCBOOK_XSL=YES fi -AC_SUBST([DIR_DOCBOOK_XSL]) -])# FP_DIR_DOCBOOK_XSL +AC_SUBST([HAVE_DOCBOOK_XSL]) +])# FP_DOCBOOK_XSL # FP_PROG_XMLLINT @@ -785,7 +852,7 @@ AC_DEFUN([FP_CHECK_DOCBOOK_DTD], if test -n "$XmllintCmd"; then AC_MSG_CHECKING([for DocBook DTD]) FP_GEN_DOCBOOK_XML - if $XmllintCmd --valid --noout conftest.xml > /dev/null 2>&1; then + if $XmllintCmd --nonet --valid --noout conftest.xml ; then AC_MSG_RESULT([ok]) else AC_MSG_RESULT([failed]) @@ -850,31 +917,16 @@ 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]) +# FP_PROG_HSTAGS +# ---------------- +# Sets the output variable HstagsCmd to the full Haskell tags program path. +# HstagsCmd is empty if no such program could be found. +AC_DEFUN([FP_PROG_HSTAGS], +[AC_PATH_PROG([HstagsCmd], [hasktags]) +if test -z "$HstagsCmd"; then + AC_MSG_WARN([cannot find hasktags in your PATH, you will not be able to build the tags]) fi -])# FP_PROG_FO_PROCESSOR +])# FP_PROG_HSTAGS # FP_PROG_GHC_PKG @@ -887,6 +939,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 +952,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 @@ -932,23 +973,23 @@ AC_DEFUN([FP_GCC_EXTRA_FLAGS], [AC_REQUIRE([FP_HAVE_GCC]) AC_CACHE_CHECK([for extra options to pass gcc when compiling via C], [fp_cv_gcc_extra_opts], [fp_cv_gcc_extra_opts= - FP_COMPARE_VERSIONS([$fp_gcc_version], [-ge], [3.4], + FP_COMPARE_VERSIONS([$fp_cv_gcc_version], [-ge], [3.4], [fp_cv_gcc_extra_opts="$fp_cv_gcc_extra_opts -fwrapv"], []) case $TargetPlatform in i386-*|x86_64-*) - FP_COMPARE_VERSIONS([$fp_gcc_version], [-ge], [3.2], + FP_COMPARE_VERSIONS([$fp_cv_gcc_version], [-ge], [3.2], [fp_cv_gcc_extra_opts="$fp_cv_gcc_extra_opts -mno-omit-leaf-frame-pointer"], []) - FP_COMPARE_VERSIONS([$fp_gcc_version], [-ge], [3.4], - [FP_COMPARE_VERSIONS([$fp_gcc_version], [-ge], [4.2], + FP_COMPARE_VERSIONS([$fp_cv_gcc_version], [-ge], [3.4], + [FP_COMPARE_VERSIONS([$fp_cv_gcc_version], [-ge], [4.2], [fp_cv_gcc_extra_opts="$fp_cv_gcc_extra_opts -fno-toplevel-reorder"], [fp_cv_gcc_extra_opts="$fp_cv_gcc_extra_opts -fno-unit-at-a-time"] )], []) ;; sparc-*-solaris2) - FP_COMPARE_VERSIONS([$fp_gcc_version], [-ge], [4.2], + FP_COMPARE_VERSIONS([$fp_cv_gcc_version], [-ge], [4.2], [fp_cv_gcc_extra_opts="$fp_cv_gcc_extra_opts -fno-toplevel-reorder"], []) ;; @@ -979,7 +1020,7 @@ if test "$RELEASE" = "NO"; then elif test -d _darcs; then # TODO: Remove this branch after conversion to Git changequote(, )dnl - ver_date=`darcs changes --quiet --no-summary --xml | head -500 | grep 'date=' | sed "s/^.*date='\([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\).*$/\1/g" | sort -n | tail -1` + ver_date=`darcs changes --quiet --no-summary --xml | head -500 | grep 'date=' | sed "s/^.*date='\([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\).*$/\1/g" | ${SortCmd} -n | tail -1` if echo $ver_date | grep '^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$' 2>&1 >/dev/null; then true; else changequote([, ])dnl AC_MSG_ERROR([failed to detect version date: check that darcs is in your path]) @@ -1211,19 +1252,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])