X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=aclocal.m4;h=d07f3652254f79893e7be4ee2f3542fa886b294d;hb=9c75067ef972c8003dede073a68e953ed15c61ad;hp=10cd4a7c654dd06d2cf2172b1b2e3b0a49b4cef2;hpb=7bd8a0491055e7ca5709109400459556e870250a;p=ghc-hetmet.git diff --git a/aclocal.m4 b/aclocal.m4 index 10cd4a7..d07f365 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,14 +1,17 @@ -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 *** 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 @@ -17,34 +20,42 @@ 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_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_FAILURE([cannot compute alignment ($1), 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 @@ -308,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 @@ -587,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. @@ -719,31 +654,6 @@ 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. @@ -809,12 +719,6 @@ AC_DEFINE(HAVE_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 @@ -888,24 +792,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 @@ -1185,19 +1071,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.