X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=aclocal.m4;h=4f3259ce0100f46e22a80411afcc0a75ae50a61f;hb=fd87c1f8579dd5c118f1867bac42df86bc04ac54;hp=86ec141f397ca46b52702daa68d029b48ed096d9;hpb=a08aa16ae39b5fc2f4541e9fd33009a5288ba0ae;p=ghc-hetmet.git diff --git a/aclocal.m4 b/aclocal.m4 index 86ec141..4f3259c 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,61 +1,17 @@ -dnl $Id: aclocal.m4,v 1.116 2003/05/17 14:49:45 reid Exp $ -dnl -dnl Extra autoconf macros for the Glasgow fptools -dnl -dnl To be a good autoconf citizen, names of local macros have -dnl prefixed with FPTOOLS_ to ensure we don't clash -dnl with any pre-supplied autoconf ones. - -dnl -dnl Is timezone around? (in a header file) -dnl -AC_DEFUN(FPTOOLS_HAVE_TIMEZONE, -[AC_CACHE_CHECK([timezone], fptools_cv_have_timezone, -[AC_TRY_COMPILE([#if TIME_WITH_SYS_TIME -# include -# include -#else -# if HAVE_SYS_TIME_H -# include -# else -# include -# endif -#endif -], [return timezone;], -fptools_cv_have_timezone=yes, fptools_cv_have_timezone=no)]) -if test "$fptools_cv_have_timezone" = yes; then - AC_DEFINE(HAVE_TIMEZONE) -fi -]) - -dnl -dnl Has timezone the type time_t or long (HP-UX 10.20 apparently -dnl has `long'..) -dnl -AC_DEFUN(FPTOOLS_TYPE_TIMEZONE, -[AC_CACHE_CHECK([type of timezone], fptools_cv_type_timezone, -[AC_TRY_COMPILE([#if TIME_WITH_SYS_TIME -# include -# include -#else -# if HAVE_SYS_TIME_H -# include -# else -# include -# endif -#endif - -extern time_t timezone; -], -[int i;], fptools_cv_type_timezone=time_t, fptools_cv_type_timezone=long)]) -AC_DEFINE_UNQUOTED(TYPE_TIMEZONE, $fptools_cv_type_timezone) -]) - -dnl *** Is altzone available? *** -dnl -AC_DEFUN(FPTOOLS_ALTZONE, -[AC_CACHE_CHECK([altzone], fptools_cv_altzone, -[AC_TRY_LINK([#if TIME_WITH_SYS_TIME +# Extra autoconf macros for the Glasgow fptools +# +# To be a good autoconf citizen, names of local macros have prefixed with FP_ to +# ensure we don't clash with any pre-supplied autoconf ones. + + +# FP_ALTZONE +# ------------------- +# Defines HAVE_DECL_ALTZONE to 1 if declared, 0 otherwise. +# Used by base package. +AC_DEFUN([FP_ALTZONE], +[AC_REQUIRE([AC_HEADER_TIME])dnl +AC_CHECK_HEADERS([sys/time.h]) +AC_CHECK_DECLS([altzone], [], [],[#if TIME_WITH_SYS_TIME # include # include #else @@ -64,34 +20,8 @@ AC_DEFUN(FPTOOLS_ALTZONE, # else # include # endif -#endif -], [return altzone;], -fptools_cv_altzone=yes, fptools_cv_altzone=no)]) -if test "$fptools_cv_altzone" = yes; then - AC_DEFINE(HAVE_ALTZONE) -fi -]) - - -dnl *** Does libc contain GNU regex? *** -dnl -AC_DEFUN(FPTOOLS_REGEX_IN_LIBC, -[AC_CACHE_CHECK([for GNU regex in libc], fptools_cv_have_regex, -[AC_TRY_LINK([#if HAVE_UNISTD_H -#include -#endif -#include -],[ struct re_pattern_buffer patbuf; - re_compile_pattern("",0,&patbuf); - 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 - HaveGNURegex=YES -else - HaveGNURegex=NO -fi -AC_SUBST(HaveGNURegex) -]) +#endif]) +])# FP_ALTZONE dnl ** check for leading underscores in symbol names @@ -106,6 +36,8 @@ dnl a leading underscore sometimes (eg. FreeBSD). We therefore have dnl to work around this by checking for *no* leading underscore first. dnl Sigh. --SDM dnl +dnl Similarly on OpenBSD, but this test doesn't help. -- dons +dnl AC_DEFUN(FPTOOLS_UNDERSCORE, [AC_CHECK_LIB(elf, nlist, LIBS="-lelf $LIBS")dnl AC_CACHE_CHECK([leading underscore in symbol names], fptools_cv_lead_uscore, @@ -119,6 +51,11 @@ dnl the underscoredness of that "platform" changequote(<<, >>)dnl << case $HostPlatform in +*openbsd*) # x86 openbsd is ELF from 3.4 >, meaning no leading uscore + case $build in + i386-*2\.[[0-9]] | i386-*3\.[[0-3]] ) fptools_cv_lead_uscore='yes' ;; + *) fptools_cv_lead_uscore='no' ;; + esac ;; alpha-dec-osf*) fptools_cv_lead_uscore='no';; *cygwin32) fptools_cv_lead_uscore='yes';; *mingw32) fptools_cv_lead_uscore='yes';; @@ -192,19 +129,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 +202,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 +]) +dnl if test -d $srcdir/ghc -a ! -f $srcdir/ghc/compiler/parser/Lexer.hs; then +dnl FPTOOLS_PROG_CHECK_VERSION([$fptools_cv_alex_version],-lt,[2.0], +dnl [AC_MSG_ERROR([Alex version 2.0 or later is required to compile GHC.])])dnl +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 +663,10 @@ AC_CACHE_VAL(AC_CV_NAME, # include #endif +#ifdef HAVE_OPENGL_GL_H +# include +#endif + #ifdef HAVE_SYS_RESOURCE_H # include #endif @@ -795,11 +771,11 @@ AC_CACHE_VAL(fptools_cv_have_o_binary, [ AC_LANG_SAVE AC_LANG_C -AC_TRY_COMPILE(, +AC_TRY_COMPILE( [#ifdef HAVE_FCNTL_H #include -#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 @@ -1036,9 +1012,7 @@ esac ]) dnl ###################################################################### -dnl Some notes about the heavily changed OpenGL test below: -dnl * Caching has been completely rewritten, but is still no perfect yet. -dnl * Version detection for GL and GLU has been added. +dnl Note: Caching has been completely rewritten, but is still no perfect yet. dnl ###################################################################### dnl ########################### -*- Mode: M4 -*- ####################### @@ -1135,9 +1109,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" @@ -1145,126 +1120,9 @@ dnl and GL_X_LIBS. GL_save_LIBS="$LIBS" LIBS="$GL_X_LIBS" - dnl Including instead of plain avoids problems on - dnl platforms like WinDoze where special headers like or - dnl some macro trickery would be needed - FPTOOLS_SEARCH_LIBS([#include ], glEnd, $GL_search_list, have_GL=yes, have_GL=no) - - dnl TODO: The tests for GL features should better be cascaded and the - dnl results should be cached. A new macro would be helpful here. - - AC_MSG_CHECKING(glTexSubImage1D) - AC_TRY_LINK([#include ], - [glTexSubImage1D(GL_TEXTURE_1D,0,0,2,GL_INTENSITY,GL_BYTE,(void*)0)], - fptools_gl_texsubimage1d=yes, - fptools_gl_texsubimage1d=no); - AC_MSG_RESULT($fptools_gl_texsubimage1d) - - AC_MSG_CHECKING(glDrawRangeElements) - AC_TRY_LINK([#include ], - [glDrawRangeElements(GL_QUADS,0,0,0,GL_UNSIGNED_BYTE,(void*)0)], - fptools_gl_drawrangeelements=yes, - fptools_gl_drawrangeelements=no); - AC_MSG_RESULT($fptools_gl_drawrangeelements) - - AC_MSG_CHECKING(glActiveTexture) - AC_TRY_LINK([#include ], - [glActiveTexture(GL_TEXTURE1)], - fptools_gl_activetexture=yes, - fptools_gl_activetexture=no); - AC_MSG_RESULT($fptools_gl_activetexture) - - AC_MSG_CHECKING(glMultiDrawArrays) - AC_TRY_LINK([#include ], - [glMultiDrawArrays(GL_TRIANGLES, (GLint*)0, (GLsizei*)0, 0)], - fptools_gl_multidrawarrays=yes, - fptools_gl_multidrawarrays=no); - AC_MSG_RESULT($fptools_gl_multidrawarrays) - - if test x"$fptools_gl_texsubimage1d" != xyes; then - fptools_gl_version=1.0 - else - if test x"$fptools_gl_drawrangeelements" != xyes; then - fptools_gl_version=1.1 - else - if test x"$fptools_gl_activetexture" != xyes; then - fptools_gl_version=1.2 - else - if test x"$fptools_gl_multidrawarrays" != xyes; then - fptools_gl_version=1.3 - else - fptools_gl_version=1.4 - fi - fi - fi - fi - echo "It looks like GL version ${fptools_gl_version}" - - dnl TODO: Cache the results of the tests for the imaging subset. - - AC_MSG_CHECKING(EXT_blend_color) - AC_TRY_LINK([#include ], - [glBlendColorEXT((GLclampf)0.0,(GLclampf)0.0,(GLclampf)0.0,(GLclampf)0.0)], - hopengl_EXT_blend_color=yes, - hopengl_EXT_blend_color=no); - AC_MSG_RESULT($hopengl_EXT_blend_color) - - AC_MSG_CHECKING(EXT_blend_minmax) - AC_TRY_LINK([#include ], - [glBlendEquationEXT(GL_FUNC_ADD_EXT)], - hopengl_EXT_blend_minmax=yes, - hopengl_EXT_blend_minmax=no); - AC_MSG_RESULT($hopengl_EXT_blend_minmax) - - AC_MSG_CHECKING(EXT_blend_subtract) - AC_TRY_LINK([#include ], - [glBlendEquationEXT(GL_FUNC_SUBTRACT_EXT)], - hopengl_EXT_blend_subtract=yes, - hopengl_EXT_blend_subtract=no); - AC_MSG_RESULT($hopengl_EXT_blend_subtract) - - FPTOOLS_SEARCH_LIBS([#include ], gluNewQuadric, $GLU_search_list, have_GLU=yes, have_GLU=no) - - dnl TODO: Cascade and cache... - - AC_MSG_CHECKING(gluGetString) - AC_TRY_LINK([#include ], - [gluGetString(GLU_EXTENSIONS)], - fptools_glu_getstring=yes, - fptools_glu_getstring=no); - AC_MSG_RESULT($fptools_glu_getstring) - - AC_MSG_CHECKING(gluTessEndPolygon) - AC_TRY_LINK([#include ], - [gluTessEndPolygon((GLUtesselator*)0)], - fptools_glu_tessendpolygon=yes, - fptools_glu_tessendpolygon=no); - AC_MSG_RESULT($fptools_glu_tessendpolygon) - - AC_MSG_CHECKING(gluUnProject4) - AC_TRY_LINK([#include ], - [gluUnProject4(0.0,0.0,0.0,0.0,(GLdouble*)0,(GLdouble*)0,(GLint*)0,0.0,0.0,(GLdouble*)0,(GLdouble*)0,(GLdouble*)0,(GLdouble*)0)], - fptools_glu_unproject4=yes, - fptools_glu_unproject4=no); - AC_MSG_RESULT($fptools_glu_unproject4) - - if test x"$fptools_glu_getstring" != xyes; then - fptools_glu_version=1.0 - else - if test x"$fptools_glu_tessendpolygon" != xyes; then - fptools_glu_version=1.1 - else - if test x"$fptools_glu_unproject4" != xyes; then - fptools_glu_version=1.2 - else - fptools_glu_version=1.3 - fi - fi - fi - echo "It looks like GLU version ${fptools_glu_version}" - + FPTOOLS_SEARCH_LIBS([#include ], glEnd, $GL_search_list, have_GL=yes, have_GL=no) + FPTOOLS_SEARCH_LIBS([#include ], gluNewQuadric, $GLU_search_list, have_GLU=yes, have_GLU=no) FPTOOLS_SEARCH_LIBS([#include ], glXWaitX, $GLX_search_list, have_GLX=yes, have_GLX=no) - FPTOOLS_SEARCH_LIBS([#include ], glutMainLoop, glut32 glut, have_glut=yes, have_glut=no) if test -n "$LIBS"; then GL_LIBS="$LDFLAGS $LIBS" @@ -1273,16 +1131,28 @@ dnl and GL_X_LIBS. GL_CFLAGS= fi + LIBS="$GLUT_X_LIBS" + + FPTOOLS_SEARCH_LIBS([#include ], 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"