X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=aclocal.m4;h=e823a834cd7a47ae0570a166c8bff5992c56c978;hb=f1ab41433b5145ebf914681053ed2fe00a72f987;hp=d1f9a6436481997e10a85e92d7dd692ed36d68c3;hpb=08c5cc05abd626370d12ccee16db0978caeb9e60;p=ghc-hetmet.git diff --git a/aclocal.m4 b/aclocal.m4 index d1f9a64..e823a83 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,31 +1,17 @@ -# $Id: aclocal.m4,v 1.20 1998/03/03 19:04:48 reid Exp $ -# -# Extra autoconf macros for the Glasgow fptools -# +dnl $Id: aclocal.m4,v 1.27 1998/08/16 16:45:37 sof 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. -# -# Are we running under the GNU libc? Need -D_GNU_SOURCE to get -# caddr_t and such. -# -AC_DEFUN(AC_GNU_LIBC, -[AC_CACHE_CHECK([GNU libc], ac_cv_gnu_libc, -[AC_EGREP_CPP(yes, -[#include -#ifdef __GLIBC__ -yes -#endif -], ac_cv_gnu_libc=yes, ac_cv_gnu_libc=no)]) -if test "$ac_cv_gnu_libc" = yes; then - AC_DEFINE(_GNU_SOURCE) -fi -]) - -# -# Has timezone the type time_t or long (HP-UX 10.20 apparently -# has `long'..) -# -AC_DEFUN(AC_TYPE_TIMEZONE, -[AC_CACHE_CHECK([type of timezone], ac_cv_type_timezone, +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 @@ -39,15 +25,14 @@ AC_DEFUN(AC_TYPE_TIMEZONE, extern time_t timezone; ], -[int i;], ac_cv_type_timezone=time_t, ac_cv_type_timezone=long)]) -AC_DEFINE_UNQUOTED(TYPE_TIMEZONE, $ac_cv_type_timezone) +[int i;], fptools_cv_type_timezone=time_t, fptools_cv_type_timezone=long)]) +AC_DEFINE_UNQUOTED(TYPE_TIMEZONE, $fptools_cv_type_timezone) ]) -# -# Is altzone available? -# -AC_DEFUN(AC_ALTZONE, -[AC_CACHE_CHECK([altzone], ac_cv_altzone, +dnl *** Is altzone available? *** +dnl +AC_DEFUN(FPTOOLS_ALTZONE, +[AC_CACHE_CHECK([altzone], fptools_cv_altzone, [AC_TRY_LINK([#if TIME_WITH_SYS_TIME # include # include @@ -59,31 +44,31 @@ AC_DEFUN(AC_ALTZONE, # endif #endif ], [return altzone;], -ac_cv_altzone=yes, ac_cv_altzone=no)]) -if test "$ac_cv_altzone" = yes; then +fptools_cv_altzone=yes, fptools_cv_altzone=no)]) +if test "$fptools_cv_altzone" = yes; then AC_DEFINE(HAVE_ALTZONE) fi ]) -# dnl ** check for leading underscores in symbol names -# -# Test for determining whether symbol names have a leading -# underscore. -# -# We assume that they _haven't_ if anything goes wrong. -# -AC_DEFUN(AC_UNDERSCORE, +dnl +dnl Test for determining whether symbol names have a leading +dnl underscore. +dnl +dnl We assume that they _haven't_ if anything goes wrong. +dnl +AC_DEFUN(FPTOOLS_UNDERSCORE, [AC_CHECK_LIB(elf, nlist, LIBS="-lelf $LIBS")dnl -AC_CACHE_CHECK([leading underscore in symbol names], ac_cv_lead_uscore, -# -# Hack!: nlist() under Digital UNIX insist on there being an _, -# but symbol table listings show none. What is going on here?!? -# +AC_CACHE_CHECK([leading underscore in symbol names], fptools_cv_lead_uscore, + +dnl +dnl Hack!: nlist() under Digital UNIX insist on there being an _, +dnl but symbol table listings shows none. What is going on here?!? +dnl changequote(<<, >>)dnl << case $HostPlatform in -alpha-dec-osf*) ac_cv_lead_uscore='no';; +alpha-dec-osf*) fptools_cv_lead_uscore='no';; *) >> changequote([, ])dnl AC_TRY_RUN([#ifdef HAVE_NLIST_H @@ -103,28 +88,31 @@ char **argv; changequote([, ])dnl #endif exit(1); -}], ac_cv_lead_uscore=yes, ac_cv_lead_uscore=no, ac_cv_lead_uscore=NO) +}], fptools_cv_lead_uscore=yes, fptools_cv_lead_uscore=no, fptools_cv_lead_uscore=NO) ;; esac); -LeadingUnderscore=`echo $ac_cv_lead_uscore | sed 'y/yesno/YESNO/'` +LeadingUnderscore=`echo $fptools_cv_lead_uscore | sed 'y/yesno/YESNO/'` AC_SUBST(LeadingUnderscore) +case $LeadingUnderscore in +YES) AC_DEFINE(LEADING_UNDERSCORE);; +esac ]) -# -# Check for Happy and version. -# -AC_DEFUN(AC_HAPPY, +dnl +dnl Check for Happy and version. +dnl +AC_DEFUN(FPTOOLS_HAPPY, [AC_PATH_PROG(HappyCmd,happy) -AC_CACHE_CHECK([for version of happy], ac_cv_happy_version, +AC_CACHE_CHECK([for version of happy], fptools_cv_happy_version, [if test x"$HappyCmd" != x; then - ac_cv_happy_version="`$HappyCmd -v | + fptools_cv_happy_version="`$HappyCmd -v | changequote(, )dnl grep 'Happy Version' | sed -e 's/Happy Version \([^ ]*\).*/\1/g'`" ; changequote([, ])dnl else - ac_cv_happy_version=""; + fptools_cv_happy_version=""; fi; -if expr "$ac_cv_happy_version" "<" 1.4 > /dev/null 2>&1; then +if expr "$fptools_cv_happy_version" "<" 1.4 > /dev/null 2>&1; then echo echo "Happy version 1.4 or later is required to compile GHC." exit 1; @@ -134,20 +122,20 @@ HappyVersion=$ac_cv_happy_version; AC_SUBST(HappyVersion) ]) -# -# What's the best way of doing context diffs? -# -# (NB: NeXTStep thinks diff'ing a file against itself is "trouble") -# -AC_DEFUN(AC_PROG_DIFF, -[AC_CACHE_CHECK([for ok way to do context diffs], ac_cv_context_diffs, +dnl +dnl What's the best way of doing context diffs? +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 - ac_cv_context_diffs='diff -C 1' + fptools_cv_context_diffs='diff -C 1' else if diff -c1 conftest1 conftest2 > /dev/null 2>&1 ; then - ac_cv_context_diffs='diff -c1' + 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." @@ -156,14 +144,14 @@ else fi rm -f conftest1 conftest2 ]) -ContextDiffCmd=$ac_cv_context_diffs +ContextDiffCmd=$fptools_cv_context_diffs AC_SUBST(ContextDiffCmd) ]) -# -# Finding the Right Yacc -# -AC_DEFUN(AC_PROG_YACCY, +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, @@ -194,11 +182,11 @@ YaccCmd=$ac_cv_prog_yacc AC_SUBST(YaccCmd) ]) -dnl Checking for ar and its arguments + whether we need ranlib. -# -# ArCmd and RANLIB are AC_SUBST'ed -# -AC_DEFUN(AC_PROG_AR_AND_RANLIB, +dnl *** Checking for ar and its arguments + whether we need ranlib. +dnl +dnl ArCmd and RANLIB are AC_SUBST'ed +dnl +AC_DEFUN(FPTOOLS_PROG_AR_AND_RANLIB, [AC_PATH_PROG(ArCmd,ar) if test -z "$ArCmd"; then echo "You don't seem to have ar in your PATH...I have no idea how to make a library" @@ -235,35 +223,35 @@ else fi ]) -# +dnl dnl AC_SHEBANG_PERL - can we she-bang perl? -# -AC_DEFUN(AC_SHEBANG_PERL, -[AC_CACHE_CHECK([if your perl works in shell scripts], ac_cv_shebang_perl, +dnl +AC_DEFUN(FPTOOLS_SHEBANG_PERL, +[AC_CACHE_CHECK([if your perl works in shell scripts], fptools_cv_shebang_perl, [echo "#!$PerlCmd"' exit $1; ' > conftest chmod u+x conftest (SHELL=/bin/sh; export SHELL; ./conftest 69 > /dev/null) if test $? -ne 69; then - ac_cv_shebang_perl=yes + fptools_cv_shebang_perl=yes else - ac_cv_shebang_perl=no + fptools_cv_shebang_perl=no fi rm -f conftest ])]) -# -# Extra testing of the result AC_PROG_CC, testing the gcc version no. -# *Must* be called after AC_PROG_CC -# -AC_DEFUN(AC_HAVE_GCC, -[AC_CACHE_CHECK([whether you have an ok gcc], ac_cv_have_gcc, +dnl +dnl Extra testing of the result AC_PROG_CC, testing the gcc version no. +dnl *Must* be called after AC_PROG_CC +dnl +AC_DEFUN(FPTOOLS_HAVE_GCC, +[AC_CACHE_CHECK([whether you have an ok gcc], fptools_cv_have_gcc, [if test -z "$GCC"; then echo '' echo "You would be better off with gcc" echo "Perhaps it is already installed, but not in your PATH?" - ac_cv_have_gcc='no' + fptools_cv_have_gcc='no' else changequote(, )dnl cmd_string="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version [^0-9]*\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/expr 20 \\\< \1 \\\* 10 + \2/g' `" @@ -273,27 +261,27 @@ changequote([, ])dnl echo "I'm not sure if your version of gcc will work," echo "but it's worth a shot, eh?" fi - ac_cv_have_gcc='yes' + fptools_cv_have_gcc='yes' fi ]) -HaveGcc=`echo $ac_cv_have_gcc | sed 'y/yesno/YESNO/'` +HaveGcc=`echo $fptools_cv_have_gcc | sed 'y/yesno/YESNO/'` AC_SUBST(HaveGcc) ]) -# -# AC_PROG_GNUCPP gathers the path to the cpp that the -# gcc driver calls upon. -# -# Substitutes: GNUCPP and RAWCPP (latter is 'GNUCPP -traditional') -# -AC_DEFUN(AC_PROG_GNUCPP, -[AC_CACHE_CHECK([how to invoke GNU cpp directly], ac_cv_gnu_cpp, +dnl +dnl FPTOOLS_PROG_GNUCPP gathers the path to the cpp that the +dnl gcc driver calls upon. +dnl +dnl Substitutes: GNUCPP and RAWCPP (latter is 'GNUCPP -traditional') +dnl +AC_DEFUN(FPTOOLS_PROG_GNUCPP, +[AC_CACHE_CHECK([how to invoke GNU cpp directly], fptools_cv_gnu_cpp, [if test "$HaveGcc" = "YES"; then echo > conftest.c gcc -v -E conftest.c >/dev/null 2>conftest.out # \x5c = backslash - echo 'tr/\x5c/\//; /(\S+\/cpp)/ && print "[$]1";' > conftest.pl - ac_cv_gnu_cpp="`eval $PerlCmd -n conftest.pl conftest.out`" + echo 'tr/\x5c/\//; /(\S+\/)cpp/ && print "[$]{1}cpp -iprefix [$]1";' > conftest.pl + fptools_cv_gnu_cpp="`eval $PerlCmd -n conftest.pl conftest.out`" rm -fr conftest* else # We need to be able to invoke CPP directly, preferably @@ -301,20 +289,19 @@ AC_DEFUN(AC_PROG_GNUCPP, # this at the moment). # Take a guess at what to use, this probably won't work. echo Warning: GNU cpp not found, using $CPP - ac_cv_gnu_cpp = $CPP + fptools_cv_gnu_cpp = $CPP fi ]) -GNUCPP=$ac_cv_gnu_cpp +GNUCPP=$fptools_cv_gnu_cpp RAWCPP="$GNUCPP -traditional" AC_SUBST(GNUCPP) AC_SUBST(RAWCPP) ]) -# -# Small feature test for perl version. Assumes PerlCmd -# contains path to perl binary -# -AC_DEFUN(AC_CHECK_PERL_VERSION, +dnl Small feature test for perl version. Assumes PerlCmd +dnl contains path to perl binary +dnl +AC_DEFUN(FPTOOLS_CHECK_PERL_VERSION, [$PerlCmd -v >conftest.out 2>&1 if grep "version 4" conftest.out >/dev/null 2>&1; then if grep "Patch level: 35" conftest.out >/dev/null 2>&1; then @@ -341,13 +328,12 @@ fi rm -fr conftest* ]) -dnl ** figure out whether types can be word-aligned -dnl (test based on test in smalltalk-1.1.5 configuration) +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 GHC_CHECK_ALIGNMENT(TYPE) -AC_DEFUN(GHC_CHECK_ALIGNMENT, +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 @@ -359,19 +345,22 @@ 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() { - unsigned int vec[3]; - $1 test, *testptr; - - test = *($1 *)&vec[1]; - testptr = ($1 *)&vec[1]; - *testptr = test; - - exit(0); -} -], -AC_CV_NAME=$ac_cv_sizeof_unsigned_int, + FILE *f=fopen("conftestval", "w"); + if (!f) exit(1); + fprintf(f, "%d\n", 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) @@ -382,3 +371,54 @@ undefine([AC_CV_NAME])dnl undefine([AC_CV_SIZEOF_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 *** Can we open files in binary mode? *** +dnl +AC_DEFUN(FPTOOLS_O_BINARY, +[ +AC_REQUIRE([AC_PROG_CC]) +AC_MSG_CHECKING(whether we can open files in binary mode) +AC_CACHE_VAL(fptools_cv_have_o_binary, +[ +AC_LANG_SAVE +AC_LANG_C +AC_TRY_COMPILE(, +[#ifdef HAVE_FCNTL_H +#include +#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) +fi +]) +