[project @ 2003-06-27 18:28:31 by sof]
[ghc-hetmet.git] / aclocal.m4
index 647c077..6a1498b 100644 (file)
@@ -1,4 +1,4 @@
-dnl $Id: aclocal.m4,v 1.111 2003/01/08 12:03:28 simonmar Exp $
+dnl $Id: aclocal.m4,v 1.119 2003/06/05 14:05:36 reid Exp $
 dnl 
 dnl Extra autoconf macros for the Glasgow fptools
 dnl
 dnl 
 dnl Extra autoconf macros for the Glasgow fptools
 dnl
@@ -188,6 +188,28 @@ fi
 
 
 dnl
 
 
 dnl
+dnl Check for Greencard and version.
+dnl
+AC_DEFUN(FPTOOLS_GREENCARD,
+[
+AC_PATH_PROG(GreencardCmd,greencard)
+AC_CACHE_CHECK([for version of greencard], fptools_cv_greencard_version,
+changequote(, )dnl
+[if test x"$GreencardCmd" != x; then
+   fptools_cv_greencard_version="`$GreencardCmd --version |
+                         grep 'version' | sed -e 's/greencard. version \([^ ]*\).*/\1/g'`"
+else
+   fptools_cv_greencard_version=""
+fi
+changequote([, ])dnl
+])
+FPTOOLS_PROG_CHECK_VERSION([$fptools_cv_greencard_version],-lt,$1,
+  [AC_MSG_ERROR([greencard version $1 or later is required (found '$fptools_cv_greencard_version')])])dnl
+GreencardVersion=$fptools_cv_greencard_version
+AC_SUBST(GreencardVersion)
+])
+
+dnl
 dnl Check for Happy and version.  If we're building GHC, then we need
 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 Check for Happy and version.  If we're building GHC, then we need
 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.
@@ -337,7 +359,13 @@ 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
     echo "You don't seem to have ar in your PATH...I have no idea how to make a library"
     exit 1;
 fi
-if $ArCmdRaw clqsZ conftest.a >/dev/null 2>/dev/null; then
+dnl GNU ar needs special treatment: it appears to have problems with
+dnl object files with the same name if you use the 's' modifier, but
+dnl simple 'ar q' works fine, and doesn't need a separate ranlib.
+if $ArCmdRaw --version | grep 'GNU' >/dev/null 2>/dev/null; then
+    ArCmdArgs='q'
+    NeedRanLib=''
+elif $ArCmdRaw clqsZ conftest.a >/dev/null 2>/dev/null; then
     ArCmdArgs="clqsZ"
     NeedRanLib=''
 elif $ArCmdRaw clqs conftest.a >/dev/null 2>/dev/null; then
     ArCmdArgs="clqsZ"
     NeedRanLib=''
 elif $ArCmdRaw clqs conftest.a >/dev/null 2>/dev/null; then
@@ -663,6 +691,10 @@ AC_CACHE_VAL(AC_CV_NAME,
 # include <GL/gl.h>
 #endif
 
 # include <GL/gl.h>
 #endif
 
+#ifdef HAVE_SYS_RESOURCE_H
+# include <sys/resource.h>
+#endif
+
 typedef $1 testing;
 
 main() {
 typedef $1 testing;
 
 main() {
@@ -763,11 +795,11 @@ AC_CACHE_VAL(fptools_cv_have_o_binary,
 [
 AC_LANG_SAVE
 AC_LANG_C
 [
 AC_LANG_SAVE
 AC_LANG_C
-AC_TRY_COMPILE(,
+AC_TRY_COMPILE(
 [#ifdef HAVE_FCNTL_H
 #include <fcntl.h>
 [#ifdef HAVE_FCNTL_H
 #include <fcntl.h>
-#endif
-int x = O_BINARY;],
+#endif],
+[int x = O_BINARY;],
 fptools_cv_have_o_binary=yes,
 fptools_cv_have_o_binary=no)
 AC_LANG_RESTORE
 fptools_cv_have_o_binary=yes,
 fptools_cv_have_o_binary=no)
 AC_LANG_RESTORE
@@ -1004,9 +1036,7 @@ esac
 ])
 
 dnl ######################################################################
 ])
 
 dnl ######################################################################
-dnl NOTE: Because of portability issues between different autoconf
-dnl versions the AC_HELP_STRING macro has been removed from FPTOOLS_HAVE_OPENGL.
-dnl Furthermore, caching has been completely rewritten.
+dnl Note: Caching has been completely rewritten, but is still no perfect yet.
 dnl ######################################################################
 
 dnl ########################### -*- Mode: M4 -*- #######################
 dnl ######################################################################
 
 dnl ########################### -*- Mode: M4 -*- #######################
@@ -1034,8 +1064,8 @@ dnl ####################################################################
 dnl @synopsis FPTOOLS_HAVE_OPENGL
 dnl 
 dnl Search for OpenGL.  We search first for Mesa (a GPL'ed version of
 dnl @synopsis FPTOOLS_HAVE_OPENGL
 dnl 
 dnl Search for OpenGL.  We search first for Mesa (a GPL'ed version of
-dnl OpenGL) before a vendor's version of OpenGL, unless we were
-dnl specifically asked not to with `--with-Mesa=no' or `--without-Mesa'.
+dnl OpenGL) before a vendor's version of OpenGL if we were specifically
+dnl asked to with `--with-Mesa=yes' or `--with-Mesa'.
 dnl
 dnl The four "standard" OpenGL libraries are searched for: "-lGL",
 dnl "-lGLU", "-lGLX" (or "-lMesaGL", "-lMesaGLU" as the case may be) and
 dnl
 dnl The four "standard" OpenGL libraries are searched for: "-lGL",
 dnl "-lGLU", "-lGLX" (or "-lMesaGL", "-lMesaGLU" as the case may be) and
@@ -1079,12 +1109,13 @@ AC_DEFUN(FPTOOLS_HAVE_OPENGL,
   AC_REQUIRE([AC_PATH_XTRA])
   AC_REQUIRE([FPTOOLS_CHECK_LIBM])
 
   AC_REQUIRE([AC_PATH_XTRA])
   AC_REQUIRE([FPTOOLS_CHECK_LIBM])
 
-dnl Check for Mesa first, unless we were asked not to.
-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=no)], use_Mesa=$enableval, use_Mesa=no)
+dnl Check for Mesa first if we were asked to.
+  AC_ARG_ENABLE(Mesa,
+[  --enable-mesa
+       Prefer Mesa over a vendor's native OpenGL library (default=no)
+],
+                use_Mesa=$enableval,
+                use_Mesa=no)
 
   if test x"$use_Mesa" = xyes; then
      GL_search_list="MesaGL  GL  opengl32"
 
   if test x"$use_Mesa" = xyes; then
      GL_search_list="MesaGL  GL  opengl32"
@@ -1103,7 +1134,7 @@ dnl If we are running under X11 then add in the appropriate libraries.
   if test x"$no_x" != xyes; then
 dnl Add everything we need to compile and link X programs to GL_CFLAGS
 dnl and GL_X_LIBS.
   if test x"$no_x" != xyes; then
 dnl Add everything we need to compile and link X programs to GL_CFLAGS
 dnl and GL_X_LIBS.
-    GL_CFLAGS="$X_CFLAGS"
+    GL_CFLAGS="$CPPFLAGS $X_CFLAGS"
     GL_X_LIBS="$X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS $LIBM"
   fi
   GL_save_CPPFLAGS="$CPPFLAGS"
     GL_X_LIBS="$X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS $LIBM"
   fi
   GL_save_CPPFLAGS="$CPPFLAGS"
@@ -1112,15 +1143,18 @@ dnl and GL_X_LIBS.
   GL_save_LIBS="$LIBS"
   LIBS="$GL_X_LIBS"
 
   GL_save_LIBS="$LIBS"
   LIBS="$GL_X_LIBS"
 
-  FPTOOLS_SEARCH_LIBS([#include <GL/gl.h>],   glEnd,         $GL_search_list,  have_GL=yes,   have_GL=no)
-  FPTOOLS_SEARCH_LIBS([#include <GL/glu.h>],  gluNewQuadric, $GLU_search_list, have_GLU=yes,  have_GLU=no)
+  dnl Including <GL/glut.h> instead of plain <GL/gl.h> avoids problems on
+  dnl platforms like WinDoze where special headers like <windows.h> or
+  dnl some macro trickery would be needed
+  FPTOOLS_SEARCH_LIBS([#include <GL/glut.h>], glEnd,         $GL_search_list,  have_GL=yes,   have_GL=no)
+  FPTOOLS_SEARCH_LIBS([#include <GL/glut.h>], gluNewQuadric, $GLU_search_list, have_GLU=yes,  have_GLU=no)
   FPTOOLS_SEARCH_LIBS([#include <GL/glx.h>],  glXWaitX,      $GLX_search_list, have_GLX=yes,  have_GLX=no)
   FPTOOLS_SEARCH_LIBS([#include <GL/glx.h>],  glXWaitX,      $GLX_search_list, have_GLX=yes,  have_GLX=no)
-  FPTOOLS_SEARCH_LIBS([#include <GL/glut.h>], glutMainLoop,  glut glut32,      have_glut=yes, have_glut=no)
+  FPTOOLS_SEARCH_LIBS([#include <GL/glut.h>], glutMainLoop,  glut32 glut,      have_glut=yes, have_glut=no)
 
   if test -n "$LIBS"; then
 
   if test -n "$LIBS"; then
-    GL_LIBS="$LIBS"
+    GL_LIBS="$LDFLAGS $LIBS"
   else
   else
-    GL_LIBS=
+    GL_LIBS="$LDFLAGS"
     GL_CFLAGS=
   fi
 
     GL_CFLAGS=
   fi
 
@@ -1159,7 +1193,7 @@ fi
 
 dnl
 dnl Check to see whether CC (gcc) supports a particular option.
 
 dnl
 dnl Check to see whether CC (gcc) supports a particular option.
-dnl 
+dnl
 AC_DEFUN(FPTOOLS_CC_FLAG,
 [
 AC_CACHE_CHECK([whether $CC accepts $1], [ac_cv_cc_$2],
 AC_DEFUN(FPTOOLS_CC_FLAG,
 [
 AC_CACHE_CHECK([whether $CC accepts $1], [ac_cv_cc_$2],