[project @ 2001-04-16 03:01:04 by chak]
[ghc-hetmet.git] / aclocal.m4
index 1e3d66a..3109f17 100644 (file)
@@ -1,4 +1,4 @@
-dnl $Id: aclocal.m4,v 1.56 2000/09/10 17:39:26 panne Exp $
+dnl $Id: aclocal.m4,v 1.69 2001/03/28 14:09:41 simonmar Exp $
 dnl 
 dnl Extra autoconf macros for the Glasgow fptools
 dnl
@@ -154,31 +154,32 @@ esac
 
 dnl
 dnl Check for Happy and version.  If we're building GHC, then we need
-dnl at least Happy version 1.6.  If there's no installed Happy, we look
+dnl at least Happy version 1.9.  If there's no installed Happy, we look
 dnl for a happy source tree and point the build system at that instead.
 dnl
-dnl ToDo: when we reset HappyCmd to the source tree, autoconf doesn't
-dnl seems to insert it in the cache file.  sigh.
-dnl
 AC_DEFUN(FPTOOLS_HAPPY,
-[AC_PATH_PROG(HappyCmd,happy)
+[
+if test -d $srcdir/happy; then
+   SrcTreeHappyCmd=$hardtop/happy/src/happy-inplace
+fi
+AC_PATH_PROG(HappyCmd,happy,$SrcTreeHappyCmd)
 AC_CACHE_CHECK([for version of happy], fptools_cv_happy_version,
-[if test x"$HappyCmd" != x; then
-   fptools_cv_happy_version="`$HappyCmd -v |
 changequote(, )dnl
-                         grep 'Happy Version' | sed -e 's/Happy Version \([^ ]*\).*/\1/g'`" ;
-elif test -d $srcdir/happy; then
-   HappyCmd=$hardtop/happy/src/happy-inplace;
+[if test x"$HappyCmd" = x"$SrcTreeHappyCmd"; then
    fptools_cv_happy_version=`grep '^ProjectVersion[    ]*=' $srcdir/happy/mk/version.mk | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`;
-   echo -n "using happy from the source tree... ";
+elif test x"$HappyCmd" != x; then
+   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 expr "$fptools_cv_happy_version" "<" 1.6 > /dev/null 2>&1; then
-   if test -d $srcdir/ghc; then
+if test -d $srcdir/ghc; then
+  if ( test "$fptools_cv_happy_version" = "" || (
+       test `echo "$fptools_cv_happy_version" | sed -e "s/\(.*\)\..*/\1/g"` "-eq" "1" &&
+       test `echo "$fptools_cv_happy_version" | sed -e "s/.*\.\(.*\)/\1/g"` "-lt" "9" )); then
      echo
-     echo "Happy version 1.6 or later is required to compile GHC."
+     echo "Happy version 1.9 or later is required to compile GHC."
      exit 1;
    fi
 fi;
@@ -341,11 +342,15 @@ AC_DEFUN(FPTOOLS_CHECK_PERL_VERSION,
 if grep "version 5" conftest.out >/dev/null 2>&1; then
    :
 else
-   if grep "version 6" conftest.out >/dev/null 2>&1; then
-      :
-   else
-     echo "Your version of perl probably won't work."
-   fi
+  if grep "v5.6" conftest.out >/dev/null 2>&1; then
+     :
+  else
+     if grep "version 6" conftest.out >/dev/null 2>&1; then
+       :
+     else
+       echo "Your version of perl probably won't work."
+     fi
+  fi
 fi
 rm -fr conftest*
 ])
@@ -361,11 +366,11 @@ dnl
 AC_DEFUN(FPTOOLS_GHC_VERSION,
 [define([FPTOOLS_CV_GHC_VERSION], [fptools_cv_ghc_version])dnl
 AC_CACHE_CHECK([version of ghc], FPTOOLS_CV_GHC_VERSION, [dnl
-${GHC-ghc} --version > conftestghc 2>&1
+${WithGhc-ghc} --version > conftestghc 2>&1
   cat conftestghc >&AC_FD_CC
 dnl `Useless Use Of cat' award...
 changequote(<<, >>)dnl
-  FPTOOLS_CV_GHC_VERSION=`cat conftestghc | sed -n -e 's/, patchlevel *\([0-9]\)/.\1/;s/.* version \([0-9.]\+\).*/\1/p'`
+  FPTOOLS_CV_GHC_VERSION=`cat conftestghc | sed -n -e 's/, patchlevel *\([0-9]\)/.\1/;s/.* version \([0-9][0-9.]*\).*/\1/p'`
 changequote([, ])dnl
   rm -fr conftest*
   if test "[$]FPTOOLS_CV_GHC_VERSION" = ""
@@ -432,7 +437,7 @@ main()
 {
   FILE *f=fopen("conftestval", "w");
   if (!f) exit(1);
-  fprintf(f, "%d\n", offsetof(struct { char c; $1 ty;},ty));
+  fprintf(f, "%d", offsetof(struct { char c; $1 ty;},ty));
   exit(0);
 }],
 AC_CV_NAME=`cat conftestval`,
@@ -522,6 +527,46 @@ AC_DEFINE(HAVE_LONG_LONG)
 fi
 ])
 
+dnl ** Obtain the value of a C constant.
+dnl    The value will be `(-1)' if the constant is undefined.
+dnl
+dnl    This is set up so that the argument can be a shell variable.
+dnl
+AC_DEFUN(FPTOOLS_CHECK_CCONST,
+[
+eval "def_name=CCONST_$1"
+eval "cv_name=ac_cv_cconst_$1"
+AC_MSG_CHECKING(value of $1)
+AC_CACHE_VAL($cv_name,
+[AC_TRY_RUN([#include <stdio.h>
+#include <errno.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", $1);
+  exit(0);
+}], 
+eval "$cv_name=`cat conftestval`",
+eval "$cv_name=-1",
+ifelse([$2], , , eval "$cv_name=$2"))])dnl
+eval "fptools_check_cconst_result=`echo '$'{$cv_name}`"
+AC_MSG_RESULT($fptools_check_cconst_result)
+AC_DEFINE_UNQUOTED($def_name, $fptools_check_cconst_result)
+unset fptools_check_cconst_result
+])
+
+dnl ** Invoke AC_CHECK_CCONST on each argument (which have to separate with 
+dnl    spaces)
+dnl
+AC_DEFUN(FPTOOLS_CHECK_CCONSTS,
+[for ac_const_name in $1
+do
+FPTOOLS_CHECK_CCONST($ac_const_name)dnl
+done
+])
+
+
 dnl *** Can we open files in binary mode? ***
 dnl 
 AC_DEFUN(FPTOOLS_O_BINARY,
@@ -816,7 +861,7 @@ dnl The variable LIBM (which is not an output variable by default) is
 dnl set to a value which is suitable for use in a Makefile (for example,
 dnl in make's LOADLIBES macro) provided you AC_SUBST it first.
 dnl
-dnl @version 0.01 $Id: aclocal.m4,v 1.56 2000/09/10 17:39:26 panne Exp $
+dnl @version 0.01 $Id: aclocal.m4,v 1.69 2001/03/28 14:09:41 simonmar Exp $
 dnl @author Matthew D. Langston <langston@SLAC.Stanford.EDU>
 
 # FPTOOLS_CHECK_LIBM - check for math library
@@ -824,7 +869,7 @@ AC_DEFUN(FPTOOLS_CHECK_LIBM,
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 LIBM=
 case "$host" in
-*-*-beos* | *-*-cygwin*)
+*-*-beos* | *-*-macosx*)
   # These system don't have libm
   ;;
 *-ncr-sysv4.3*)
@@ -904,7 +949,7 @@ dnl Please note that as the ac_opengl macro and the toy example evolves,
 dnl the version number increases, so you may have to adjust the above
 dnl URL accordingly.
 dnl
-dnl @version 0.01 $Id: aclocal.m4,v 1.56 2000/09/10 17:39:26 panne Exp $
+dnl @version 0.01 $Id: aclocal.m4,v 1.69 2001/03/28 14:09:41 simonmar Exp $
 dnl @author Matthew D. Langston <langston@SLAC.Stanford.EDU>
 
 AC_DEFUN(FPTOOLS_HAVE_OPENGL,