[project @ 1998-08-21 17:23:03 by simonm]
[ghc-hetmet.git] / aclocal.m4
index 2447a1c..e823a83 100644 (file)
@@ -1,31 +1,17 @@
-dnl $Id: aclocal.m4,v 1.22 1998/04/10 12:38:38 simonm Exp $
+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 
 dnl Extra autoconf macros for the Glasgow fptools
 dnl
-
-dnl 
-dnl Are we running under the GNU libc?  Need -D_GNU_SOURCE to get 
-dnl caddr_t and such.
-dnl 
-AC_DEFUN(AC_GNU_LIBC,
-[AC_CACHE_CHECK([GNU libc], ac_cv_gnu_libc,
-[AC_EGREP_CPP(yes,
-[#include <features.h>
-#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
-])
+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 Has timezone the type time_t or long (HP-UX 10.20 apparently
 dnl has `long'..)
 dnl 
 
 dnl
 dnl Has timezone the type time_t or long (HP-UX 10.20 apparently
 dnl has `long'..)
 dnl 
-AC_DEFUN(AC_TYPE_TIMEZONE,
-[AC_CACHE_CHECK([type of timezone], ac_cv_type_timezone,
+AC_DEFUN(FPTOOLS_TYPE_TIMEZONE,
+[AC_CACHE_CHECK([type of timezone], fptools_cv_type_timezone,
 [AC_TRY_COMPILE([#if TIME_WITH_SYS_TIME
 # include <sys/time.h>
 # include <time.h>
 [AC_TRY_COMPILE([#if TIME_WITH_SYS_TIME
 # include <sys/time.h>
 # include <time.h>
@@ -39,14 +25,14 @@ AC_DEFUN(AC_TYPE_TIMEZONE,
 
 extern time_t 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)
 ])
 
 dnl *** Is altzone available? ***
 dnl 
 ])
 
 dnl *** Is altzone available? ***
 dnl 
-AC_DEFUN(AC_ALTZONE,
-[AC_CACHE_CHECK([altzone], ac_cv_altzone,
+AC_DEFUN(FPTOOLS_ALTZONE,
+[AC_CACHE_CHECK([altzone], fptools_cv_altzone,
 [AC_TRY_LINK([#if TIME_WITH_SYS_TIME
 # include <sys/time.h>
 # include <time.h>
 [AC_TRY_LINK([#if TIME_WITH_SYS_TIME
 # include <sys/time.h>
 # include <time.h>
@@ -58,8 +44,8 @@ AC_DEFUN(AC_ALTZONE,
 # endif
 #endif
 ], [return 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
 ])
   AC_DEFINE(HAVE_ALTZONE)
 fi
 ])
@@ -71,18 +57,18 @@ dnl underscore.
 dnl 
 dnl We assume that they _haven't_ if anything goes wrong.
 dnl
 dnl 
 dnl We assume that they _haven't_ if anything goes wrong.
 dnl
-AC_DEFUN(AC_UNDERSCORE,
+AC_DEFUN(FPTOOLS_UNDERSCORE,
 [AC_CHECK_LIB(elf, nlist, LIBS="-lelf $LIBS")dnl
 [AC_CHECK_LIB(elf, nlist, LIBS="-lelf $LIBS")dnl
-AC_CACHE_CHECK([leading underscore in symbol names], ac_cv_lead_uscore,
+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
 dnl Hack!: nlist() under Digital UNIX insist on there being an _,
-dnl but symbol table listings show none. What is going on here?!?
+dnl but symbol table listings shows none. What is going on here?!?
 dnl
 changequote(<<, >>)dnl
 <<
 case $HostPlatform in
 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
 *) >>
 changequote([, ])dnl
 AC_TRY_RUN([#ifdef HAVE_NLIST_H
@@ -102,10 +88,10 @@ char **argv;
 changequote([, ])dnl
 #endif
     exit(1);
 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);
 ;;
 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);;
 AC_SUBST(LeadingUnderscore)
 case $LeadingUnderscore in
 YES) AC_DEFINE(LEADING_UNDERSCORE);;
@@ -115,18 +101,18 @@ esac
 dnl
 dnl Check for Happy and version.
 dnl
 dnl
 dnl Check for Happy and version.
 dnl
-AC_DEFUN(AC_HAPPY,
+AC_DEFUN(FPTOOLS_HAPPY,
 [AC_PATH_PROG(HappyCmd,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
 [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
 changequote(, )dnl
                          grep 'Happy Version' | sed -e 's/Happy Version \([^ ]*\).*/\1/g'`" ;
 changequote([, ])dnl
 else
-   ac_cv_happy_version="";
+   fptools_cv_happy_version="";
 fi;
 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;
    echo
    echo "Happy version 1.4 or later is required to compile GHC."
    exit 1;
@@ -141,15 +127,15 @@ dnl What's the best way of doing context diffs?
 dnl
 dnl (NB: NeXTStep thinks diff'ing a file against itself is "trouble")
 dnl
 dnl
 dnl (NB: NeXTStep thinks diff'ing a file against itself is "trouble")
 dnl
-AC_DEFUN(AC_PROG_DIFF,
-[AC_CACHE_CHECK([for ok way to do context diffs], ac_cv_context_diffs,
+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
 [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
 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."
     else
         echo "Can't figure out how to do context diffs."
         echo "Neither \`diff -C 1' nor \`diff -c1' works."
@@ -158,14 +144,14 @@ else
 fi
 rm -f conftest1 conftest2
 ])
 fi
 rm -f conftest1 conftest2
 ])
-ContextDiffCmd=$ac_cv_context_diffs
+ContextDiffCmd=$fptools_cv_context_diffs
 AC_SUBST(ContextDiffCmd)
 ])
 
 dnl
 dnl Finding the Right Yacc
 dnl
 AC_SUBST(ContextDiffCmd)
 ])
 
 dnl
 dnl Finding the Right Yacc
 dnl
-AC_DEFUN(AC_PROG_YACCY,
+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_PROG_YACC
 if test "$YACC" = "yacc"; then
    AC_CACHE_CHECK([if it is an OK yacc], ac_cv_prog_yacc,
@@ -200,7 +186,7 @@ dnl *** Checking for ar and its arguments + whether we need ranlib.
 dnl
 dnl ArCmd and RANLIB are AC_SUBST'ed
 dnl 
 dnl
 dnl ArCmd and RANLIB are AC_SUBST'ed
 dnl 
-AC_DEFUN(AC_PROG_AR_AND_RANLIB,
+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"
 [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"
@@ -240,17 +226,17 @@ fi
 dnl
 dnl AC_SHEBANG_PERL - can we she-bang perl?
 dnl
 dnl
 dnl AC_SHEBANG_PERL - can we she-bang perl?
 dnl
-AC_DEFUN(AC_SHEBANG_PERL,
-[AC_CACHE_CHECK([if your perl works in shell scripts], ac_cv_shebang_perl,
+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
 [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
 else
-   ac_cv_shebang_perl=no
+   fptools_cv_shebang_perl=no
 fi
 rm -f conftest
 ])])
 fi
 rm -f conftest
 ])])
@@ -259,13 +245,13 @@ dnl
 dnl Extra testing of the result AC_PROG_CC, testing the gcc version no.
 dnl *Must* be called after AC_PROG_CC
 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(AC_HAVE_GCC,
-[AC_CACHE_CHECK([whether you have an ok gcc], ac_cv_have_gcc,
+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?"
 [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' `"
 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' `"
@@ -275,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
         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
 ])
 fi
 ])
-HaveGcc=`echo $ac_cv_have_gcc | sed 'y/yesno/YESNO/'`
+HaveGcc=`echo $fptools_cv_have_gcc | sed 'y/yesno/YESNO/'`
 AC_SUBST(HaveGcc)
 ])
 
 dnl
 AC_SUBST(HaveGcc)
 ])
 
 dnl
-dnl AC_PROG_GNUCPP gathers the path to the cpp that the
+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
 dnl gcc driver calls upon.
 dnl
 dnl Substitutes: GNUCPP and RAWCPP (latter is 'GNUCPP -traditional')
 dnl
-AC_DEFUN(AC_PROG_GNUCPP,
-[AC_CACHE_CHECK([how to invoke GNU cpp directly], ac_cv_gnu_cpp,
+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
 [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
        rm -fr conftest*
  else
        # We need to be able to invoke CPP directly, preferably
@@ -303,10 +289,10 @@ 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
        # 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
 ])
  fi
 ])
-GNUCPP=$ac_cv_gnu_cpp
+GNUCPP=$fptools_cv_gnu_cpp
 RAWCPP="$GNUCPP -traditional"
 AC_SUBST(GNUCPP)
 AC_SUBST(RAWCPP)
 RAWCPP="$GNUCPP -traditional"
 AC_SUBST(GNUCPP)
 AC_SUBST(RAWCPP)
@@ -315,7 +301,7 @@ AC_SUBST(RAWCPP)
 dnl Small feature test for perl version. Assumes PerlCmd
 dnl contains path to perl binary
 dnl
 dnl Small feature test for perl version. Assumes PerlCmd
 dnl contains path to perl binary
 dnl
-AC_DEFUN(AC_CHECK_PERL_VERSION,
+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
 [$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
@@ -346,8 +332,8 @@ 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    (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(<<AC_TYPE_NAME>>, translit(alignment_$1, [a-z *], [A-Z_P]))dnl
 [changequote(<<, >>)dnl
 dnl The name to #define.
 define(<<AC_TYPE_NAME>>, translit(alignment_$1, [a-z *], [A-Z_P]))dnl
@@ -385,3 +371,54 @@ undefine([AC_CV_NAME])dnl
 undefine([AC_CV_SIZEOF_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 <fcntl.h>
+#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
+])
+