[project @ 2003-08-13 13:35:07 by simonmar]
[ghc-hetmet.git] / aclocal.m4
index 9c191e2..c2e50b0 100644 (file)
@@ -1,4 +1,4 @@
-dnl $Id: aclocal.m4,v 1.118 2003/05/30 09:09:09 simonmar Exp $
+dnl $Id: aclocal.m4,v 1.123 2003/08/13 13:35:07 simonmar Exp $
 dnl 
 dnl Extra autoconf macros for the Glasgow fptools
 dnl
@@ -192,19 +192,19 @@ dnl Check for Greencard and version.
 dnl
 AC_DEFUN(FPTOOLS_GREENCARD,
 [
-AC_PATH_PROG(GreencardCmd,green-card)
-AC_CACHE_CHECK([for version of green-card], fptools_cv_greencard_version,
+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/green-card. version \([^ ]*\).*/\1/g'`"
+                         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([green-card version $1 or later is required (found '$fptools_cv_greencard_version')])])dnl
+  [AC_MSG_ERROR([greencard version $1 or later is required (found '$fptools_cv_greencard_version')])])dnl
 GreencardVersion=$fptools_cv_greencard_version
 AC_SUBST(GreencardVersion)
 ])
@@ -265,6 +265,41 @@ 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.  If there's no installed Alex, we look
+dnl for a alex source tree and point the build system at that instead.
+dnl
+AC_DEFUN(FPTOOLS_ALEX,
+[
+if test -d $srcdir/alex; then
+   SrcTreeAlexCmd=$hardtop/alex/src/alex-inplace
+fi
+if test x"$UseSrcTreeAlex" = xYES; then
+  AlexCmd=$SrcTreeAlexCmd
+else
+  AC_PATH_PROG(AlexCmd,alex,$SrcTreeAlexCmd)
+fi
+AC_CACHE_CHECK([for version of alex], fptools_cv_alex_version,
+changequote(, )dnl
+[if test x"$AlexCmd" = x"$SrcTreeAlexCmd"; then
+   fptools_cv_alex_version=`grep '^ProjectVersion[     ]*=' $srcdir/alex/mk/version.mk | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`;
+elif 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'`" ;
+else
+   fptools_cv_alex_version="";
+fi;
+changequote([, ])dnl
+])
+if test -d $srcdir/ghc -a ! -f $srcdir/ghc/compiler/parser/Lexer.hs; then
+  FPTOOLS_PROG_CHECK_VERSION([$fptools_cv_alex_version],-lt,[2.0],
+  [AC_MSG_ERROR([Alex version 2.0 or later is required to compile GHC.])])dnl
+fi
+AlexVersion=$fptools_cv_alex_version;
+AC_SUBST(AlexVersion)
+])
+
+dnl
 dnl What's the best way of doing context diffs?
 dnl
 dnl (NB: NeXTStep thinks diff'ing a file against itself is "trouble")
@@ -691,6 +726,10 @@ AC_CACHE_VAL(AC_CV_NAME,
 # include <GL/gl.h>
 #endif
 
+#ifdef HAVE_OPENGL_GL_H
+# include <OpenGL/gl.h>
+#endif
+
 #ifdef HAVE_SYS_RESOURCE_H
 # include <sys/resource.h>
 #endif
@@ -1133,9 +1172,10 @@ dnl Check for Mesa first if we were asked to.
 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.
+dnl and GL_X_LIBS/GLUT_X_LIBS.
     GL_CFLAGS="$CPPFLAGS $X_CFLAGS"
-    GL_X_LIBS="$X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS $LIBM"
+    GL_X_LIBS="$X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS $LIBM"
+    GLUT_X_LIBS="$X_LIBS $X_PRE_LIBS -lXmu -lXt -lXi -lXext -lX11 $X_EXTRA_LIBS $LIBM"
   fi
   GL_save_CPPFLAGS="$CPPFLAGS"
   CPPFLAGS="$GL_CFLAGS"
@@ -1143,13 +1183,9 @@ dnl and GL_X_LIBS.
   GL_save_LIBS="$LIBS"
   LIBS="$GL_X_LIBS"
 
-  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/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)
   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,  glut32 glut,      have_glut=yes, have_glut=no)
 
   if test -n "$LIBS"; then
     GL_LIBS="$LDFLAGS $LIBS"
@@ -1158,16 +1194,28 @@ dnl and GL_X_LIBS.
     GL_CFLAGS=
   fi
 
+  LIBS="$GLUT_X_LIBS"
+
+  FPTOOLS_SEARCH_LIBS([#include <GL/glut.h>], glutMainLoop,  glut32 glut,      have_glut=yes, have_glut=no)
+
+  if test -n "$LIBS"; then
+    GLUT_LIBS="$LDFLAGS $LIBS"
+  fi
+
   AC_CACHE_CHECK([OpenGL flags], mdl_cv_gl_cflags, [mdl_cv_gl_cflags="$GL_CFLAGS"])
   GL_CFLAGS="$mdl_cv_gl_cflags"
   AC_SUBST(GL_CFLAGS)
   AC_CACHE_CHECK([OpenGL libs],  mdl_cv_gl_libs,   [mdl_cv_gl_libs="$GL_LIBS"])
   GL_LIBS="$mdl_cv_gl_libs"
   AC_SUBST(GL_LIBS)
+  AC_CACHE_CHECK([GLUT libs],  mdl_cv_glut_libs,   [mdl_cv_glut_libs="$GLUT_LIBS"])
+  GLUT_LIBS="$mdl_cv_glut_libs"
+  AC_SUBST(GLUT_LIBS)
 
-dnl Reset GL_X_LIBS regardless, since it was just a temporary variable
+dnl Reset GL_X_LIBS/GLUT_X_LIBS regardless, since they were just temporary variables
 dnl and we don't want to be global namespace polluters.
   GL_X_LIBS=
+  GLUT_X_LIBS=
 
   LIBS="$GL_save_LIBS"
   CPPFLAGS="$GL_save_CPPFLAGS"