X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=aclocal.m4;h=c46d48db28badbe8052da8ecc696c02010463a3c;hp=f0ad4cf4c30d9572595a5720795e2439273322ba;hb=9a4ef343a46e823bcf949af8501c13cc8ca98fb1;hpb=9a17dfd7f10952762cd8aff1ef4dbd0ae6daec37 diff --git a/aclocal.m4 b/aclocal.m4 index f0ad4cf..c46d48d 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,15 +1,3 @@ - struct sigevent ev; - timer_t timer; - ev.sigev_notify = SIGEV_SIGNAL; - ev.sigev_signo = SIGVTALRM; - if (timer_create(CLOCK_PROCESS_CPUTIME_ID, &ev, &timer) != 0) { - exit(1); - } -#else - exit(1) -#endif - exit(0); -} # Extra autoconf macros for the Glasgow fptools # # To be a good autoconf citizen, names of local macros have prefixed with FP_ to @@ -56,38 +44,6 @@ AC_DEFUN([FP_EVAL_STDERR], ])# FP_EVAL_STDERR -# FP_CHECK_FLAG(FLAG, [ACTION-IF-SUPPORTED], [ACTION-IF-NOT-SUPPORTED]) -# --------------------------------------------------------------------- -# Check to see whether the compiler for the current language supports a -# particular option. -# -# Implementation note: When given an unkown option, GCC issues an warning on -# stderr only, but returns an exit value of 0 nevertheless. Consequently we have -# to check stderr *and* the exit value. -# -# Used by ghc. -AC_DEFUN([FP_CHECK_FLAG], -[AC_LANG_COMPILER_REQUIRE()dnl -AC_LANG_CASE([C], [fp_compiler="$CC" m4_pushdef([fp_Flags], [CFLAGS])], - [C++], [fp_compiler="$CXX" m4_pushdef([fp_Flags], [CXXFLAGS])], - [Fortran 77], [fp_compiler="$F77" m4_pushdef([fp_Flags], [FFLAGS])]) -m4_pushdef([fp_Cache], [fp_cv_[]fp_Flags[]AS_TR_SH([$1])])[]dnl -AC_CACHE_CHECK([whether $fp_compiler accepts $1], [fp_Cache], -[AC_LANG_CONFTEST([AC_LANG_PROGRAM()]) -fp_save_flags="$fp_Flags" -fp_Flags="$fp_Flags $1" -fp_Cache=no -if FP_EVAL_STDERR([$ac_compile conftest.$ac_ext]) >/dev/null; then - test -s conftest.err || fp_Cache=yes -fi -fp_Flags="$fp_save_flags" -rm -f conftest.err conftest.$ac_ext]) -AS_IF([test $fp_Cache = yes], [$2], [$3])[]dnl -m4_popdef([fp_Cache])[]dnl -m4_popdef([fp_Flags])[]dnl -])# FP_CHECK_FLAG - - # FP_PROG_CONTEXT_DIFF # -------------------- # Figure out how to do context diffs. Sets the output variable ContextDiffCmd. @@ -268,6 +224,16 @@ dnl for a happy source tree and point the build system at that instead. dnl AC_DEFUN([FPTOOLS_HAPPY], [AC_PATH_PROG(HappyCmd,happy,) +# Happy is passed to Cabal, so we need a native path +if test "x$HostPlatform" = "xi386-unknown-mingw32" && \ + test "${OSTYPE}" != "msys" && \ + test "${HappyCmd}" != "" +then + # Canonicalise to :/path/to/gcc + HappyCmd=`cygpath -m ${HappyCmd}` + AC_MSG_NOTICE([normalized happy command to $HappyCmd]) +fi + AC_CACHE_CHECK([for version of happy], fptools_cv_happy_version, changequote(, )dnl [if test x"$HappyCmd" != x; then @@ -288,18 +254,6 @@ AC_SUBST(HappyVersion) ]) dnl -dnl Check for Haddock and version. If there's no installed Haddock, we look -dnl for a haddock source tree and point the build system at that instead. -dnl -AC_DEFUN([FPTOOLS_HADDOCK], -[AC_PATH_PROG(HaddockCmd,haddock,) -dnl Darn, I forgot to make Haddock print out its version number when -dnl invoked with -v. We could try generating some HTML and grepping -dnl through that to find the version number, but I think we'll make -dnl do without it for now. -]) - -dnl dnl Check for Alex and version. If we're building GHC, then we need dnl at least Alex version 2.0.1. dnl @@ -327,14 +281,54 @@ 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.0.1], - [AC_MSG_ERROR([Alex version 2.0.1 or later is required to compile GHC.])])[]dnl + 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 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.])])[]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 @@ -567,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 @@ -622,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 @@ -771,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 @@ -778,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 @@ -896,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 @@ -933,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]) @@ -943,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 @@ -1013,7 +985,17 @@ if test "$RELEASE" = "NO"; then if test -f VERSION_DATE; then PACKAGE_VERSION=${PACKAGE_VERSION}.`cat VERSION_DATE` AC_MSG_RESULT(given $PACKAGE_VERSION) + elif test -d .git; then + changequote(, )dnl + ver_date=`git log -n 1 --date=short --pretty=format:%ci | sed "s/^.*\([0-9][0-9][0-9][0-9]\)-\([0-9][0-9]\)-\([0-9][0-9]\).*$/\1\2\3/"` + 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 git is in your path]) + fi + PACKAGE_VERSION=${PACKAGE_VERSION}.$ver_date + AC_MSG_RESULT(inferred $PACKAGE_VERSION) 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` 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 @@ -1026,7 +1008,7 @@ if test "$RELEASE" = "NO"; then PACKAGE_VERSION=`cat VERSION` AC_MSG_RESULT(given $PACKAGE_VERSION) else - AC_MSG_WARN([cannot determine snapshot version: no _darcs directory and no VERSION file]) + AC_MSG_WARN([cannot determine snapshot version: no .git or _darcs directory and no VERSION file]) fi fi @@ -1167,7 +1149,7 @@ out: tock = 0; - usleep(300); + usleep(3000); if (!tock) { fprintf(stderr,"no CLOCK_REALTIME signal\n"); @@ -1247,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])