X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=aclocal.m4;h=2a418c16174ce27370c85dff4b8c28b51925e154;hb=6b4abadb6b860d53ed20d795cd2274bd7fc275f8;hp=5d759ed13d8d9f20389d363614b7f4ee33c645be;hpb=943c67d68bd033d2a8d62c85ce69f8b6a0b11e3b;p=ghc-hetmet.git diff --git a/aclocal.m4 b/aclocal.m4 index 5d759ed..2a418c1 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,61 +1,41 @@ -dnl $Id: aclocal.m4,v 1.115 2003/03/26 12:33:11 simonmar 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 +# 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. -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 +# FP_PROG_CONTEXT_DIFF +# -------------------- +# Figure out how to do context diffs. Sets the output variable ContextDiffCmd. +# NB: NeXTStep thinks diff'ing a file against itself is "trouble". +# Used by ghc, glafp-utils/ltx, and glafp-utils/runstdtest +AC_DEFUN([FP_PROG_CONTEXT_DIFF], +[AC_CACHE_CHECK([for a working context diff], [fp_cv_context_diff], +[echo foo > conftest1 +echo foo > conftest2 +fp_cv_context_diff=no +for fp_var in '-C 1' '-c1' +do + if diff $fp_var conftest1 conftest2 > /dev/null 2>&1; then + fp_cv_context_diff="diff $fp_var" + break + fi +done]) +if test x"$fp_cv_context_diff" = xno; then + AC_MSG_ERROR([cannot figure out how to do context diffs]) +fi +AC_SUBST(ContextDiffCmd, [$fp_cv_context_diff]) +])# FP_PROG_CONTEXT_DIFF + + +# FP_DECL_ALTZONE +# ------------------- +# Defines HAVE_DECL_ALTZONE to 1 if declared, 0 otherwise. +# Used by base package. +AC_DEFUN([FP_DECL_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 +44,43 @@ 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 +#endif]) +])# FP_DECL_ALTZONE + + +# FP_COMPUTE_INT(EXPRESSION, VARIABLE, INCLUDES, IF-FAILS) +# --------------------------------------------------------- +# Assign VARIABLE the value of the compile-time EXPRESSION using INCLUDES for +# compilation. Execute IF-FAILS when unable to determine the value. Works for +# cross-compilation, too. +# Note: We are lazy and use an internal autoconf macro, but it is supported in +# autoconf versions 2.50 up to the actual 2.57, so there is little risk. +AC_DEFUN([FP_COMPUTE_INT], +[_AC_COMPUTE_INT([$1], [$2], [$3], [$4])[]dnl +])# FP_COMPUTE_INT + + +# FP_CHECK_ALIGNMENT(TYPE, [IGNORED], [INCLUDES = DEFAULT-INCLUDES]) +# ------------------------------------------------------------------ +# A variation of AC_CHECK_SIZEOF for computing the alignment restrictions of a +# given type. Defines ALIGNMENT_TYPE. +AC_DEFUN([FP_CHECK_ALIGNMENT], +[AS_LITERAL_IF([$1], [], + [AC_FATAL([$0: requires literal arguments])])dnl +AC_CHECK_TYPE([$1], [], [], [$3]) +AC_CACHE_CHECK([alignment of $1], AS_TR_SH([fp_cv_alignment_$1]), +[if test "$AS_TR_SH([ac_cv_type_$1])" = yes; then + FP_COMPUTE_INT([(long) (&((struct { char c; $1 ty; } *)0)->ty)], + [AS_TR_SH([fp_cv_alignment_$1])], + [AC_INCLUDES_DEFAULT([$3])], + [AC_MSG_ERROR([cannot compute alignment ($1) +See `config.log' for more details.], [77])]) else - HaveGNURegex=NO -fi -AC_SUBST(HaveGNURegex) -]) + AS_TR_SH([fp_cv_alignment_$1])=0 +fi])dnl +AC_DEFINE_UNQUOTED(AS_TR_CPP(alignment_$1), $AS_TR_SH([fp_cv_alignment_$1]), + [The alignment of a `$1'.]) +])# FP_CHECK_ALIGNMENT dnl ** check for leading underscores in symbol names @@ -106,6 +95,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 +110,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';; @@ -150,7 +146,7 @@ esac); LeadingUnderscore=`echo $fptools_cv_lead_uscore | sed 'y/yesno/YESNO/'` AC_SUBST(LeadingUnderscore) case $LeadingUnderscore in -YES) AC_DEFINE(LEADING_UNDERSCORE);; +YES) AC_DEFINE([LEADING_UNDERSCORE], [1], [Define to 1 if C symbols have a leading underscore added by the compiler.]);; esac ]) @@ -188,6 +184,28 @@ fi 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. @@ -243,31 +261,41 @@ dnl do without it for now. ]) dnl -dnl What's the best way of doing context diffs? +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 -dnl (NB: NeXTStep thinks diff'ing a file against itself is "trouble") -dnl -AC_DEFUN(FPTOOLS_PROG_DIFF, -[AC_CACHE_CHECK([for ok way to do context diffs], fptools_cv_context_diffs, -[echo foo > conftest1 -echo foo > conftest2 -if diff -C 1 conftest1 conftest2 > /dev/null 2>&1 ; then - fptools_cv_context_diffs='diff -C 1' +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 - if diff -c1 conftest1 conftest2 > /dev/null 2>&1 ; then - fptools_cv_context_diffs='diff -c1' - else - echo "Can't figure out how to do context diffs." - echo "Neither \`diff -C 1' nor \`diff -c1' works." - exit 1 - fi + AC_PATH_PROG(AlexCmd,alex,$SrcTreeAlexCmd) fi -rm -f conftest1 conftest2 +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 ]) -ContextDiffCmd=$fptools_cv_context_diffs -AC_SUBST(ContextDiffCmd) +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 Check whether ld supports -x dnl @@ -291,39 +319,6 @@ fi AC_SUBST(LdXFlag) ]) -dnl -dnl Finding the Right Yacc -dnl -AC_DEFUN(FPTOOLS_PROG_YACCY, -[AC_PROG_YACC -if test "$YACC" = "yacc"; then - AC_CACHE_CHECK([if it is an OK yacc], ac_cv_prog_yacc, - [AC_CHECK_PROG(WhatCmd, what, what, :) - $WhatCmd $YACC > conftest.out - if egrep 'y1\.c 1\..*SMI' conftest.out >/dev/null 2>&1; then - echo "I don't trust your $YaccCmd; it looks like an old Sun yacc" - if test -f /usr/lang/yacc; then - echo "I'm going to use /usr/lang/yacc instead" - ac_cv_prog_yacc=/usr/lang/yacc - else - echo "I'm assuming the worst...no parser generator at all" - ac_cv_prog_yacc=: - fi - elif egrep 'y1\.c.*Revision: 4\.2\.6\.3.*DEC' conftest.out >/dev/null 2>&1; then - echo "I don't trust your $YaccCmd; it looks like a lame DEC yacc" - echo "I'm assuming the worst...no parser generator at all" - ac_cv_prog_yacc=: - else - ac_cv_prog_yacc=$YACC - fi - rm -fr conftest* -]) -else - ac_cv_prog_yacc=$YACC -fi -YaccCmd=$ac_cv_prog_yacc -AC_SUBST(YaccCmd) -]) dnl *** Checking for ar and its arguments + whether we need ranlib. dnl @@ -455,7 +450,7 @@ AC_DEFUN(FPTOOLS_GCC_NEEDS_NO_OMIT_LFPTR, fptools_cv_gcc_needs_no_omit_lfptr='yes') ]) if test "$fptools_cv_gcc_needs_no_omit_lfptr" = "yes"; then - AC_DEFINE(HAVE_GCC_MNO_OMIT_LFPTR) + AC_DEFINE([HAVE_GCC_MNO_OMIT_LFPTR], [1], [Define to 1 if gcc supports -mno-omit-leaf-frame-pointer.]) fi ]) @@ -570,49 +565,6 @@ ifelse($#, [1], [dnl ])dnl -dnl ** figure out the alignment restriction of a type -dnl (required SIZEOF test but AC_CHECK_SIZEOF doesn't call PROVIDE -dnl so we can't call REQUIRE) - -dnl FPTOOLS_CHECK_ALIGNMENT(TYPE) -AC_DEFUN(FPTOOLS_CHECK_ALIGNMENT, -[changequote(<<, >>)dnl -dnl The name to #define. -define(<>, translit(alignment_$1, [a-z *], [A-Z_P]))dnl -dnl The cache variable name. -define(<>, translit(ac_cv_alignment_$1, [ *], [_p]))dnl -dnl The name of the corresponding size. -define(<>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl -changequote([, ])dnl -AC_MSG_CHECKING(alignment of $1) -AC_CACHE_VAL(AC_CV_NAME, -[AC_TRY_RUN([ -#include -#if HAVE_STDDEF_H -#include -#endif -#ifndef offsetof -#define offsetof(ty,field) ((size_t)((char *)&((ty *)0)->field - (char *)(ty *)0)) -#endif -int -main() -{ - FILE *f=fopen("conftestval", "w"); - if (!f) exit(1); - fprintf(f, "%d", offsetof(struct { char c; $1 ty;},ty)); - exit(0); -}], -AC_CV_NAME=`cat conftestval`, -AC_CV_NAME=$AC_CV_SIZEOF_NAME, -AC_CV_NAME=$AC_CV_SIZEOF_NAME)]) -AC_MSG_RESULT($AC_CV_NAME) -AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME) -AC_PROVIDE($AC_TYPE_NAME) -undefine([AC_TYPE_NAME])dnl -undefine([AC_CV_NAME])dnl -undefine([AC_CV_SIZEOF_NAME])dnl -]) - dnl ** Map an arithmetic C type to a Haskell type. dnl Based on autconf's AC_CHECK_SIZEOF. @@ -669,6 +621,10 @@ AC_CACHE_VAL(AC_CV_NAME, # include #endif +#ifdef HAVE_OPENGL_GL_H +# include +#endif + #ifdef HAVE_SYS_RESOURCE_H # include #endif @@ -693,36 +649,11 @@ main() { ifelse([$2], , AC_CV_NAME=NotReallyAType, AC_CV_NAME=$2), ifelse([$3], , AC_CV_NAME=NotReallyATypeCross, AC_CV_NAME=$3))]) dnl AC_MSG_RESULT($AC_CV_NAME) -AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME) +AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [Define to Haskell type for $1]) undefine([AC_TYPE_NAME])dnl undefine([AC_CV_NAME])dnl ]) -dnl ** figure out whether C compiler supports 'long long's -dnl (Closely based on Andreas Zeller's macro for testing -dnl for this under C++) -dnl -dnl If the C compiler supports `long long' types, -dnl define `HAVE_LONG_LONG'. -dnl -AC_DEFUN(FPTOOLS_C_LONG_LONG, -[ -AC_REQUIRE([AC_PROG_CC]) -AC_MSG_CHECKING(whether ${CC} supports long long types) -AC_CACHE_VAL(fptools_cv_have_long_long, -[ -AC_LANG_SAVE -AC_LANG_C -AC_TRY_COMPILE(,[long long a;], -fptools_cv_have_long_long=yes, -fptools_cv_have_long_long=no) -AC_LANG_RESTORE -]) -AC_MSG_RESULT($fptools_cv_have_long_long) -if test "$fptools_cv_have_long_long" = yes; then -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. @@ -748,15 +679,26 @@ eval "$cv_name=-1", eval "$cv_name=-1")])dnl eval "fptools_check_cconst_result=`echo '$'{$cv_name}`" AC_MSG_RESULT($fptools_check_cconst_result) -AC_DEFINE_UNQUOTED(CCONST_$1, $fptools_check_cconst_result) +AC_DEFINE_UNQUOTED(CCONST_$1, $fptools_check_cconst_result, [The value of $1.]) unset fptools_check_cconst_result ]) + +# FP_CHECK_CCONSTS_TEMPLATE(CONST...) +# ----------------------------------- +m4_define([FP_CHECK_CCONSTS_TEMPLATE], +[AC_FOREACH([FP_Const], [$1], + [AH_TEMPLATE(AS_TR_CPP(CCONST_[]FP_Const), + [The value of ]FP_Const[.])])[]dnl +])# FP_CHECK_CCONSTS_TEMPLATE + + 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 +[FP_CHECK_CCONSTS_TEMPLATE([$1])dnl +for ac_const_name in $1 do FPTOOLS_CHECK_CCONST($ac_const_name)dnl done @@ -773,27 +715,21 @@ 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 ]) AC_MSG_RESULT($fptools_cv_have_o_binary) if test "$fptools_cv_have_o_binary" = yes; then -AC_DEFINE(HAVE_O_BINARY) + AC_DEFINE([HAVE_O_BINARY], [1], [Define to 1 if fcntl.h defines O_BINARY.]) fi ]) -dnl *** Helper function ** -dnl -AC_DEFUN(FPTOOLS_IN_SCOPE, -[AC_TRY_LINK([extern char* $1;],[return (int)&$2], $3=yes, $3=no) -]) - dnl Based on AC_TRY_LINK - run iftrue if links cleanly with no warning @@ -867,24 +803,6 @@ AC_DEFUN(FPTOOLS_CHECK_LIB_NOWARN, )])] ) -dnl check for prototypes -dnl -AC_DEFUN([AC_C_PROTOTYPES], -[AC_CACHE_CHECK([prototypes], ac_cv_prototypes, -[AC_TRY_COMPILE([ -void foo(int); -void foo(i) -int i; { -return; -} -], -[int i;], -ac_cv_prototypes=yes, -ac_cv_prototypes=no)]) -if test "$ac_cv_prototypes" = yes; then -AC_DEFINE([HAVE_PROTOTYPES]) -fi -]) dnl ** Check which CATALOG file we have to use with DocBook SGML. dnl @@ -1014,9 +932,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 -*- ####################### @@ -1113,9 +1029,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" @@ -1123,126 +1040,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" @@ -1251,16 +1051,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" @@ -1270,19 +1082,6 @@ dnl and we don't want to be global namespace polluters. # LocalWords: fi -dnl -dnl acspecific.m4's defn of AC_PROG_LEX is a bit too permissive, as it -dnl defaults to 'lex' if 'flex' isn't found (without checking whether -dnl 'lex' is actually present along the user's PATH). -dnl -AC_DEFUN(AC_PROG_LEX_STRICT, -[AC_CHECK_PROG(LEX, flex, flex) -if test -z "$LEX" -then - AC_CHECK_PROG(LEX,lex,lex) - test -z "$LEX" && AC_MSG_ERROR(['lex' or 'flex' is required to compile GHC.]) -fi -]) dnl dnl Check to see whether CC (gcc) supports a particular option. @@ -1315,7 +1114,7 @@ AC_DEFUN(FPTOOLS_MSGHDR_MSG_CONTROL, #include ], [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) + AC_DEFINE([HAVE_MSGHDR_MSG_CONTROL], [1], [Define if struct msghdr contains msg_control field.]) fi AC_SUBST(HAVE_MSGHDR_MSG_CONTROL)dnl ]) @@ -1330,7 +1129,7 @@ AC_DEFUN(FPTOOLS_MSGHDR_MSG_ACCRIGHTS, #include ], [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) + AC_DEFINE([HAVE_MSGHDR_MSG_ACCRIGHTS], [1], [Define to 1 if struct msghdr contains msg_accrights field.]) fi AC_SUBST(HAVE_MSGHDR_MSG_ACCRIGHTS)dnl ])