[project @ 2002-06-25 15:49:58 by mthomas]
[ghc-hetmet.git] / aclocal.m4
index eb7b0ca..8c11730 100644 (file)
@@ -1,4 +1,4 @@
-dnl $Id: aclocal.m4,v 1.86 2001/10/24 09:43:47 simonmar Exp $
+dnl $Id: aclocal.m4,v 1.104 2002/06/25 08:32:19 simonmar Exp $
 dnl 
 dnl Extra autoconf macros for the Glasgow fptools
 dnl
@@ -86,11 +86,11 @@ AC_DEFUN(FPTOOLS_REGEX_IN_LIBC,
     re_search_2 (&patbuf, "", 0, "",0, 0,0,0,0); ],
 fptools_cv_have_regex=yes, fptools_cv_have_regex=no)])
 if test "$fptools_cv_have_regex" = yes; then
-       HaveRegex=YES
+       HaveGNURegex=YES
 else
-       HaveRegex=NO
+       HaveGNURegex=NO
 fi
-AC_SUBST(HaveRegex)
+AC_SUBST(HaveGNURegex)
 ])
 
 
@@ -189,7 +189,7 @@ fi
 
 dnl
 dnl Check for Happy and version.  If we're building GHC, then we need
-dnl at least Happy version 1.9.  If there's no installed Happy, we look
+dnl at least Happy version 1.13.  If there's no installed Happy, we look
 dnl for a happy source tree and point the build system at that instead.
 dnl
 AC_DEFUN(FPTOOLS_HAPPY,
@@ -197,7 +197,11 @@ AC_DEFUN(FPTOOLS_HAPPY,
 if test -d $srcdir/happy; then
    SrcTreeHappyCmd=$hardtop/happy/src/happy-inplace
 fi
-AC_PATH_PROG(HappyCmd,happy,$SrcTreeHappyCmd)
+if test x"$UseSrcTreeHappy" = xYES; then
+  HappyCmd=$SrcTreeHappyCmd
+else
+  AC_PATH_PROG(HappyCmd,happy,$SrcTreeHappyCmd)
+fi
 AC_CACHE_CHECK([for version of happy], fptools_cv_happy_version,
 changequote(, )dnl
 [if test x"$HappyCmd" = x"$SrcTreeHappyCmd"; then
@@ -210,9 +214,9 @@ else
 fi;
 changequote([, ])dnl
 ])
-if test -d $srcdir/ghc; then
-  FPTOOLS_PROG_CHECK_VERSION([$fptools_cv_happy_version],-lt,[1.9],
-  [AC_MSG_ERROR([Happy version 1.9 or later is required to compile GHC.])])dnl
+if test -d $srcdir/ghc -a ! -f $srcdir/ghc/compiler/parser/Parser.hs; then
+  FPTOOLS_PROG_CHECK_VERSION([$fptools_cv_happy_version],-lt,[1.13],
+  [AC_MSG_ERROR([Happy version 1.13 or later is required to compile GHC.])])dnl
 fi
 HappyVersion=$fptools_cv_happy_version;
 AC_SUBST(HappyVersion)
@@ -308,34 +312,41 @@ dnl On Digital UNIX, we test for the -Z (compress) and
 dnl -input (take list of files from external file) flags.
 dnl 
 AC_DEFUN(FPTOOLS_PROG_AR_AND_RANLIB,
-[AC_PATH_PROG(ArCmd,ar)
-if test -z "$ArCmd"; then
+[AC_PATH_PROG(ArCmdRaw,ar)
+if test -z "$ArCmdRaw"; then
     echo "You don't seem to have ar in your PATH...I have no idea how to make a library"
     exit 1;
 fi
-if $ArCmd clqsZ conftest.a >/dev/null 2>/dev/null; then
-    ArCmd="$ArCmd clqsZ"
+if $ArCmdRaw clqsZ conftest.a >/dev/null 2>/dev/null; then
+    ArCmdArgs="clqsZ"
     NeedRanLib=''
-elif $ArCmd clqs conftest.a >/dev/null 2>/dev/null; then
-    ArCmd="$ArCmd clqs"
+elif $ArCmdRaw clqs conftest.a >/dev/null 2>/dev/null; then
+    ArCmdArgs="clqs"
     NeedRanLib=''
-elif $ArCmd cqs conftest.a >/dev/null 2>/dev/null; then
-    ArCmd="$ArCmd cqs"
+elif $ArCmdRaw cqs conftest.a >/dev/null 2>/dev/null; then
+    ArCmdArgs="cqs"
     NeedRanLib=''
-elif $ArCmd clq conftest.a >/dev/null 2>/dev/null; then
-    ArCmd="$ArCmd clq"
+elif $ArCmdRaw clq conftest.a >/dev/null 2>/dev/null; then
+    ArCmdArgs="clq"
     NeedRanLib='YES'
-elif $ArCmd cq conftest.a >/dev/null 2>/dev/null; then
-    ArCmd="$ArCmd cq"
+elif $ArCmdRaw cq conftest.a >/dev/null 2>/dev/null; then
+    ArCmdArgs="cq"
     NeedRanLib='YES'
-elif $ArCmd cq conftest.a 2>&1 | grep 'no archive members specified' >/dev/null 2>/dev/null; then
-    ArCmd="$ArCmd cq"
+elif $ArCmdRaw cq conftest.a 2>&1 | grep 'no archive members specified' >/dev/null 2>/dev/null; then
+    ArCmdArgs="cq"
     NeedRanLib='YES'
 else
     echo "I can't figure out how to use your $ArCmd"
     exit 1
 fi
 rm -rf conftest*
+case $HostPlatform in
+ *mingw32) 
+         ArCmd="`cygpath -w ${ArCmdRaw} | sed -e 's@\\\\@/@g' ` ${ArCmdArgs}"
+         ;;
+ *) ArCmd="${ArCmdRaw} ${ArCmdArgs}"
+    ;;
+esac
 test -n "$ArCmd" && test -n "$verbose" && echo "        setting ArCmd to $ArCmd"
 AC_SUBST(ArCmd)
 if $ArCmd conftest.a -input /dev/null >/dev/null 2>/dev/null; then
@@ -387,7 +398,6 @@ AC_DEFUN(FPTOOLS_HAVE_GCC,
 else
 changequote(, )dnl
     is_gcc_v1="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version [^0-9]*\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/expr 2000 \\\>= \1 \\\* 1000 + \2/g' `"
-    is_gcc_v3="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version [^0-9]*\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/expr 3000 \\\<= \1 \\\* 1000 + \2/g' `"
 changequote([, ])dnl
     fptools_cv_have_gcc='yes'
     if test `eval $is_gcc_v1 2>/dev/null` = "1"; then
@@ -399,15 +409,6 @@ changequote([, ])dnl
         echo "we recommend 2.95.3, although versions back to 2.7.2 should be ok."
         AC_MSG_ERROR([gcc 1.X has never been supported])
     fi
-    if test `eval $is_gcc_v3 2>/dev/null` = "1"; then
-        fptools_cv_have_gcc='no'
-        echo ""
-       echo "your gcc version appears to be ..."
-        $CC --version
-        echo "gcc versions 3.0 and above are not yet supported."
-        echo "we recommend 2.95.3, although versions back to 2.7.2 should be ok."
-        AC_MSG_ERROR([gcc 3.0 and above is not currently supported])
-    fi
 fi
 ])
 HaveGcc=`echo $fptools_cv_have_gcc | sed 'y/yesno/YESNO/'`
@@ -481,7 +482,7 @@ dnl [original version pinched from c2hs]
 dnl
 AC_DEFUN(FPTOOLS_GHC_VERSION,
 [FPTOOLS_NOCACHE_CHECK([version of ghc], [fptools_version_of_ghc],
-[${WithGhc-ghc} --version > conftestghc 2>&1
+["${WithGhc-ghc}" --version > conftestghc 2>&1
   cat conftestghc >&AC_FD_CC
 #Useless Use Of cat award...
   fptools_version_of_ghc=`cat conftestghc | sed -n -e 's/, patchlevel *\([[0-9]]\)/.\1/;s/.* version \([[0-9]][[0-9.]]*\).*/\1/p'`
@@ -579,14 +580,45 @@ AC_MSG_CHECKING(Haskell type for $1)
 AC_CACHE_VAL(AC_CV_NAME,
 [AC_TRY_RUN([#include <stdio.h>
 #include <stddef.h>
+
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+
+#ifdef HAVE_FCNTL_H
+# include <fcntl.h>
+#endif
+
 #ifdef HAVE_SIGNAL_H
-#include <signal.h>
+# include <signal.h>
 #endif
+
 #ifdef HAVE_TIME_H
-#include <time.h>
+# include <time.h>
 #endif
+
+#ifdef HAVE_TERMIOS_H
+# include <termios.h>
+#endif
+
+#ifdef HAVE_STRING_H
+# include <string.h>
+#endif
+
+#ifdef HAVE_CTYPE_H
+# include <ctype.h>
+#endif
+
 #ifdef HAVE_GL_GL_H
-#include <GL/gl.h>
+# include <GL/gl.h>
 #endif
 
 typedef $1 testing;
@@ -950,13 +982,18 @@ Test.
 </Article>
 EOF
 fptools_cv_sgml_catalog=no
-for fptools_catalog in $4; do
-  ac_try="$2 -t rtf -d $3#print -c $fptools_catalog conftest.sgml"
-  if AC_TRY_EVAL(ac_try); then
-    fptools_cv_sgml_catalog=[$]fptools_catalog
-    break
-  fi
-done
+if test -z "$SGML_CATALOG_FILES" ; then
+ for fptools_catalog in $4; do
+   ac_try="$2 -t rtf -d $3#print -c $fptools_catalog conftest.sgml"
+   if AC_TRY_EVAL(ac_try); then
+     fptools_cv_sgml_catalog=[$]fptools_catalog
+     break
+   fi
+ done
+else
+# If the env var SGML_CATALOG_FILES is defined, assume things are cool.
+  fptools_cv_sgml_catalog="yes"
+fi
 ])
 rm -rf conftest*
 if test $fptools_cv_sgml_catalog != "no"; then
@@ -1030,7 +1067,7 @@ AC_DEFUN(FPTOOLS_CHECK_LIBM,
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 LIBM=
 case "$host" in
-*-*-beos* | *-*-macosx*)
+*-*-beos*)
   # These system don't have libm
   ;;
 *-ncr-sysv4.3*)
@@ -1124,7 +1161,7 @@ dnl    AC_HELP_STRING([--with-Mesa],
 dnl                   [Prefer the Mesa library over a vendors native OpenGL library (default=yes)],
 dnl                   with_Mesa_help_string)
 dnl    AC_ARG_ENABLE(Mesa, $with_Mesa_help_string, use_Mesa=$enableval, use_Mesa=yes)
-  AC_ARG_ENABLE(Mesa, [  --with-Mesa             Prefer the Mesa library over a vendors native OpenGL library (default=yes)], use_Mesa=$enableval, use_Mesa=yes)
+  AC_ARG_ENABLE(Mesa, [  --with-Mesa             Prefer the Mesa library over a vendors native OpenGL library (default=no)], use_Mesa=$enableval, use_Mesa=no)
 
   if test x"$use_Mesa" = xyes; then
      GL_search_list="MesaGL  GL  opengl32"
@@ -1217,3 +1254,32 @@ else
   $2="";
 fi;
 ])
+
+dnl
+dnl Check to see whether 'struct msghdr' contains msg_control
+dnl 
+AC_DEFUN(FPTOOLS_MSGHDR_MSG_CONTROL,
+[AC_CACHE_CHECK([for msg_control in struct msghdr], fptools_cv_struct_msghdr_msg_control,
+[AC_TRY_COMPILE([#include <sys/uio.h>
+#include <sys/socket.h>], [struct msghdr m; m.msg_control;],
+fptools_cv_struct_msghdr_msg_control=yes, fptools_cv_struct_msghdr_msg_control=no)])
+if test $fptools_cv_struct_msghdr_msg_control = yes; then
+  AC_DEFINE(HAVE_MSGHDR_MSG_CONTROL)
+fi
+AC_SUBST(HAVE_MSGHDR_MSG_CONTROL)dnl
+])
+
+dnl
+dnl Check to see whether 'struct msghdr' contains msg_accrights
+dnl 
+AC_DEFUN(FPTOOLS_MSGHDR_MSG_ACCRIGHTS,
+[AC_CACHE_CHECK([for msg_accrights in struct msghdr], fptools_cv_struct_msghdr_msg_accrights,
+[AC_TRY_COMPILE([#include <sys/uio.h>
+#include <sys/socket.h>], [struct msghdr m; m.msg_accrights;],
+fptools_cv_struct_msghdr_msg_accrights=yes, fptools_cv_struct_msghdr_msg_accrights=no)])
+if test $fptools_cv_struct_msghdr_msg_accrights = yes; then
+  AC_DEFINE(HAVE_MSGHDR_MSG_ACCRIGHTS)
+fi
+AC_SUBST(HAVE_MSGHDR_MSG_ACCRIGHTS)dnl
+])
+