X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=aclocal.m4;h=d62a3c546477c30d7d94564877770fd48db23c9f;hb=f0273cc816abafdd961c5f47dd8b0b02696f34f0;hp=e636a5c8e76863f4003412c1ab885c0cd1f9cfc2;hpb=8562ce89152234b39c54eeec81b0abcf0e08d5cf;p=ghc-hetmet.git diff --git a/aclocal.m4 b/aclocal.m4 index e636a5c..d62a3c5 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,4 +1,4 @@ -dnl $Id: aclocal.m4,v 1.52 2000/06/30 09:34:09 simonmar Exp $ +dnl $Id: aclocal.m4,v 1.67 2001/02/17 19:52:56 sebc Exp $ dnl dnl Extra autoconf macros for the Glasgow fptools dnl @@ -154,7 +154,7 @@ esac dnl dnl Check for Happy and version. If we're building GHC, then we need -dnl at least Happy version 1.6. If there's no installed Happy, we look +dnl at least Happy version 1.9. If there's no installed Happy, we look dnl for a happy source tree and point the build system at that instead. dnl dnl ToDo: when we reset HappyCmd to the source tree, autoconf doesn't @@ -175,10 +175,11 @@ else fptools_cv_happy_version=""; fi; changequote([, ])dnl -if expr "$fptools_cv_happy_version" "<" 1.6 > /dev/null 2>&1; then +if ( test `echo "$fptools_cv_happy_version" | sed -e "s/\(.*\)\..*/\1/g"` "-eq" "1" && + test `echo "$fptools_cv_happy_version" | sed -e "s/.*\.\(.*\)/\1/g"` "-lt" "9" ); then if test -d $srcdir/ghc; then echo - echo "Happy version 1.6 or later is required to compile GHC." + echo "Happy version 1.9 or later is required to compile GHC." exit 1; fi fi; @@ -341,41 +342,71 @@ AC_DEFUN(FPTOOLS_CHECK_PERL_VERSION, if grep "version 5" conftest.out >/dev/null 2>&1; then : else - if grep "version 6" conftest.out >/dev/null 2>&1; then - : - else - echo "Your version of perl probably won't work." - fi + if grep "v5.6" conftest.out >/dev/null 2>&1; then + : + else + if grep "version 6" conftest.out >/dev/null 2>&1; then + : + else + echo "Your version of perl probably won't work." + fi + fi fi rm -fr conftest* ]) -dnl Test for version of installed ghc. Uses $GHC. Largely pinched from c2hs. +dnl +dnl FPTOOLS_GHC_VERSION(version) +dnl FPTOOLS_GHC_VERSION(major, minor [, patchlevel]) +dnl FPTOOLS_GHC_VERSION(version, major, minor, patchlevel) +dnl +dnl Test for version of installed ghc. Uses $GHC. +dnl [original version pinched from c2hs] dnl AC_DEFUN(FPTOOLS_GHC_VERSION, -[ AC_CACHE_CHECK([version of ghc], fptools_cv_ghc_version, [ - fptools_cv_ghc_version=`$GHC --version 2>&1 | sed -e 's/.*\([[0-9]]\)\.\([[0-9]]*\)\([[.-]]\([[0-9]]*\)\)\?.*/\1.\2.\4/'` - ]) - ghc_maj_vers=`echo $fptools_cv_ghc_version | sed -e 's/^\([[0-9]]\).*/\1/'` - ghc_min_vers=`echo $fptools_cv_ghc_version | sed -e 's/^[[0-9]]\.\([[0-9]]*\).*/\1/'` - ghc_patch_level=`echo $fptools_cv_ghc_version | sed -e 's/^[[0-9]]\.[[0-9]]*\.\([[0-9]]*\)/\1/'` - - if test "$ghc_patch_level" = ""; then - GhcVersion=$ghc_maj_vers.$ghc_min_vers - ghc_patch_level="0" - else - GhcVersion=$ghc_maj_vers.$ghc_min_vers.$ghc_patch_level - fi - - GhcMajVersion=$ghc_maj_vers - GhcMinVersion=$ghc_min_vers - GhcPatchLevel=$ghc_patch_level +[define([FPTOOLS_CV_GHC_VERSION], [fptools_cv_ghc_version])dnl +AC_CACHE_CHECK([version of ghc], FPTOOLS_CV_GHC_VERSION, [dnl +${WithGhc-ghc} --version > conftestghc 2>&1 + cat conftestghc >&AC_FD_CC +dnl `Useless Use Of cat' award... +changequote(<<, >>)dnl + FPTOOLS_CV_GHC_VERSION=`cat conftestghc | sed -n -e 's/, patchlevel *\([0-9]\)/.\1/;s/.* version \([0-9][0-9.]*\).*/\1/p'` +changequote([, ])dnl + rm -fr conftest* + if test "[$]FPTOOLS_CV_GHC_VERSION" = "" + then + FPTOOLS_CV_GHC_VERSION='unknown' + fi]) +changequote(<<, >>)dnl +FPTOOLS_CV_GHC_VERSION<<_major>>=`echo <<$>>FPTOOLS_CV_GHC_VERSION | sed -e 's/^\([0-9]\).*/\1/'` +FPTOOLS_CV_GHC_VERSION<<_minor>>=`echo <<$>>FPTOOLS_CV_GHC_VERSION | sed -e 's/^[0-9]\.\([0-9]*\).*/\1/'` +FPTOOLS_CV_GHC_VERSION<<_pl>>=`echo <<$>>FPTOOLS_CV_GHC_VERSION | sed -n -e 's/^[0-9]\.[0-9]*\.\([0-9]*\)/\1/p'` +changequote([, ])dnl +if test "[$]FPTOOLS_CV_GHC_VERSION[_pl]" = "" +then + FPTOOLS_CV_GHC_VERSION[_all]="[$]FPTOOLS_CV_GHC_VERSION[_major].[$]FPTOOLS_CV_GHC_VERSION[_minor]" + FPTOOLS_CV_GHC_VERSION[_pl]="0" +else + FPTOOLS_CV_GHC_VERSION[_all]="[$]FPTOOLS_CV_GHC_VERSION[_major].[$]FPTOOLS_CV_GHC_VERSION[_minor].[$]FPTOOLS_CV_GHC_VERSION[_pl]" +fi +ifelse($#, [1], [dnl +[$1]="[$]FPTOOLS_CV_GHC_VERSION[_all]" +], $#, [2], [dnl +[$1]="[$]FPTOOLS_CV_GHC_VERSION[_major]" +[$2]="[$]FPTOOLS_CV_GHC_VERSION[_minor]" +], $#, [3], [dnl +[$1]="[$]FPTOOLS_CV_GHC_VERSION[_major]" +[$2]="[$]FPTOOLS_CV_GHC_VERSION[_minor]" +[$3]="[$]FPTOOLS_CV_GHC_VERSION[_pl]" +], $#, [4], [dnl +[$1]="[$]FPTOOLS_CV_GHC_VERSION[_all]" +[$2]="[$]FPTOOLS_CV_GHC_VERSION[_major]" +[$3]="[$]FPTOOLS_CV_GHC_VERSION[_minor]" +[$4]="[$]FPTOOLS_CV_GHC_VERSION[_pl]" +], [AC_MSG_ERROR([wrong number of arguments to [$0]])])dnl +undefine([FPTOOLS_CV_GHC_VERSION])dnl +])dnl - AC_SUBST(GhcVersion) - AC_SUBST(GhcMajVersion) - AC_SUBST(GhcMinVersion) - AC_SUBST(GhcPatchLevel) -]) dnl ** figure out the alignment restriction of a type dnl (required SIZEOF test but AC_CHECK_SIZEOF doesn't call PROVIDE @@ -406,7 +437,7 @@ main() { FILE *f=fopen("conftestval", "w"); if (!f) exit(1); - fprintf(f, "%d\n", offsetof(struct { char c; $1 ty;},ty)); + fprintf(f, "%d", offsetof(struct { char c; $1 ty;},ty)); exit(0); }], AC_CV_NAME=`cat conftestval`, @@ -441,6 +472,9 @@ AC_CACHE_VAL(AC_CV_NAME, #ifdef HAVE_TIME_H #include #endif +#ifdef HAVE_GL_GL_H +#include +#endif typedef $1 testing; @@ -493,6 +527,46 @@ 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. +dnl +dnl This is set up so that the argument can be a shell variable. +dnl +AC_DEFUN(FPTOOLS_CHECK_CCONST, +[ +eval "def_name=CCONST_$1" +eval "cv_name=ac_cv_cconst_$1" +AC_MSG_CHECKING(value of $1) +AC_CACHE_VAL($cv_name, +[AC_TRY_RUN([#include +#include +main() +{ + FILE *f=fopen("conftestval", "w"); + if (!f) exit(1); + fprintf(f, "%d\n", $1); + exit(0); +}], +eval "$cv_name=`cat conftestval`", +eval "$cv_name=-1", +ifelse([$2], , , eval "$cv_name=$2"))])dnl +eval "fptools_check_cconst_result=`echo '$'{$cv_name}`" +AC_MSG_RESULT($fptools_check_cconst_result) +AC_DEFINE_UNQUOTED($def_name, $fptools_check_cconst_result) +unset fptools_check_cconst_result +]) + +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 +do +FPTOOLS_CHECK_CCONST($ac_const_name)dnl +done +]) + + dnl *** Can we open files in binary mode? *** dnl AC_DEFUN(FPTOOLS_O_BINARY, @@ -728,5 +802,223 @@ if test $fptools_cv_sgml_catalog != "no"; then fi ]) +dnl ###################################################################### +dnl FPTOOLS_SEARCH_LIBS(INCLUDES, FUNCTION, SEARCH-LIBS [, ACTION-IF-FOUND +dnl [, ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]]) +dnl Search for a library defining FUNC, if it's not already available. +dnl This is almost the same as AC_SEARCH_LIBS, but the INCLUDES can be +dnl specified. +dnl ###################################################################### + +AC_DEFUN(FPTOOLS_SEARCH_LIBS, +[AC_PREREQ([2.13]) +AC_CACHE_CHECK([for library containing $2], [ac_cv_search_$2], +[ac_func_search_save_LIBS="$LIBS" +ac_cv_search_$2="no" +AC_TRY_LINK([$1], [$2()], [ac_cv_search_$2="none required"]) +test "$ac_cv_search_$2" = "no" && for i in $3; do +LIBS="-l$i $6 $ac_func_search_save_LIBS" +AC_TRY_LINK([$1], [$2()], +[ac_cv_search_$2="-l$i" +break]) +done +LIBS="$ac_func_search_save_LIBS"]) +if test "$ac_cv_search_$2" != "no"; then + test "$ac_cv_search_$2" = "none required" || LIBS="$ac_cv_search_$2 $LIBS" + $4 +else : + $5 +fi]) + +dnl ####################### -*- Mode: M4 -*- ########################### +dnl Copyright (C) 98, 1999 Matthew D. Langston +dnl +dnl This file is free software; you can redistribute it and/or modify it +dnl under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This file is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this file; if not, write to: +dnl +dnl Free Software Foundation, Inc. +dnl Suite 330 +dnl 59 Temple Place +dnl Boston, MA 02111-1307, USA. +dnl #################################################################### + + +dnl @synopsis FPTOOLS_CHECK_LIBM +dnl +dnl Search for math library (typically -lm). +dnl +dnl The variable LIBM (which is not an output variable by default) is +dnl set to a value which is suitable for use in a Makefile (for example, +dnl in make's LOADLIBES macro) provided you AC_SUBST it first. +dnl +dnl @version 0.01 $Id: aclocal.m4,v 1.67 2001/02/17 19:52:56 sebc Exp $ +dnl @author Matthew D. Langston + +# FPTOOLS_CHECK_LIBM - check for math library +AC_DEFUN(FPTOOLS_CHECK_LIBM, +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case "$host" in +*-*-beos* | *-*-macosx*) + # These system don't have libm + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, main, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, main, LIBM="-lm") + ;; +esac +]) + +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 ###################################################################### + +dnl ########################### -*- Mode: M4 -*- ####################### +dnl Copyright (C) 98, 1999 Matthew D. Langston +dnl +dnl This file is free software; you can redistribute it and/or modify it +dnl under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This file is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this file; if not, write to: +dnl +dnl Free Software Foundation, Inc. +dnl Suite 330 +dnl 59 Temple Place +dnl Boston, MA 02111-1307, USA. +dnl #################################################################### + +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 +dnl The four "standard" OpenGL libraries are searched for: "-lGL", +dnl "-lGLU", "-lGLX" (or "-lMesaGL", "-lMesaGLU" as the case may be) and +dnl "-lglut". +dnl +dnl All of the libraries that are found (since "-lglut" or "-lGLX" might +dnl be missing) are added to the shell output variable "GL_LIBS", along +dnl with any other libraries that are necessary to successfully link an +dnl OpenGL application (e.g. the X11 libraries). Care has been taken to +dnl make sure that all of the libraries in "GL_LIBS" are listed in the +dnl proper order. +dnl +dnl Additionally, the shell output variable "GL_CFLAGS" is set to any +dnl flags (e.g. "-I" flags) that are necessary to successfully compile +dnl an OpenGL application. +dnl +dnl The following shell variable (which are not output variables) are +dnl also set to either "yes" or "no" (depending on which libraries were +dnl found) to help you determine exactly what was found. +dnl +dnl have_GL +dnl have_GLU +dnl have_GLX +dnl have_glut +dnl +dnl A complete little toy "Automake `make distcheck'" package of how to +dnl use this macro is available at: +dnl +dnl ftp://ftp.slac.stanford.edu/users/langston/autoconf/ac_opengl-0.01.tar.gz +dnl +dnl Please note that as the ac_opengl macro and the toy example evolves, +dnl the version number increases, so you may have to adjust the above +dnl URL accordingly. +dnl +dnl @version 0.01 $Id: aclocal.m4,v 1.67 2001/02/17 19:52:56 sebc Exp $ +dnl @author Matthew D. Langston + +AC_DEFUN(FPTOOLS_HAVE_OPENGL, +[ + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_PATH_X]) + 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=yes)], use_Mesa=$enableval, use_Mesa=yes) + + if test x"$use_Mesa" = xyes; then + GL_search_list="MesaGL GL opengl32" + GLU_search_list="MesaGLU GLU glu32" + GLX_search_list="MesaGLX GLX" + else + GL_search_list="GL opengl32 MesaGL" + GLU_search_list="GLU glu32 MesaGLU" + GLX_search_list="GLX MesaGLX" + fi + + AC_LANG_SAVE + AC_LANG_C + +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. + GL_CFLAGS="$X_CFLAGS" + GL_X_LIBS="$X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS $LIBM" + fi + GL_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$GL_CFLAGS" + + GL_save_LIBS="$LIBS" + LIBS="$GL_X_LIBS" + + 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 ], glXChooseVisual, $GLX_search_list, have_GLX=yes, have_GLX=no) + FPTOOLS_SEARCH_LIBS([#include ], glutMainLoop, glut glut32, have_glut=yes, have_glut=no) + + if test -n "$LIBS"; then + GL_LIBS="$LIBS" + else + GL_LIBS= + GL_CFLAGS= + 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) + +dnl Reset GL_X_LIBS regardless, since it was just a temporary variable +dnl and we don't want to be global namespace polluters. + GL_X_LIBS= + + LIBS="$GL_save_LIBS" + CPPFLAGS="$GL_save_CPPFLAGS" + + AC_LANG_RESTORE +]) # LocalWords: fi