[project @ 1997-09-03 23:53:03 by sof]
[ghc-hetmet.git] / aclocal.m4
index 84a17e8..b1d79d0 100644 (file)
@@ -1,5 +1,5 @@
 #
-# extra autoconf macros for Glasgow fptools distribution
+# Extra autoconf macros for the Glasgow fptools
 #
 
 #
@@ -56,8 +56,15 @@ dnl ** check for leading underscores in symbol names
 # We assume that they _haven't_ if anything goes wrong.
 #
 AC_DEFUN(AC_UNDERSCORE,
-[AC_CHECK_LIB(elf, elf_begin, 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,
+[#
+# Hack!: nlist() under Digital UNIX insist on there being an _,
+# but symbol table listings show none. What is going on here?!?
+#
+if test $HostPlatform = "alpha-dec-osf1"; then
+   ac_cv_lead_uscore='no'
+else
 AC_TRY_RUN([#ifdef HAVE_NLIST_H
 #include <nlist.h>
 changequote(<<, >>)dnl
@@ -75,18 +82,236 @@ char **argv;
 changequote([, ])dnl
 #endif
     exit(1);
-}], ac_cv_lead_uscore=yes, ac_cv_lead_uscore=no, ac_cv_lead_uscore=NO)),
+}], ac_cv_lead_uscore=yes, ac_cv_lead_uscore=no, ac_cv_lead_uscore=NO)
+fi
+])
+LeadingUnderscore=`echo $ac_cv_lead_uscore | sed 'y/yesno/YESNO/'`
+AC_SUBST(LeadingUnderscore)
+])
+
 #
-# Hack!: nlist() under Digital UNIX insist on there being an _,
-# but symbol table listings show none. What is going on here?!?
+# Check for Happy and version.
 #
-if test $HostPlatform = "alpha-dec-osf1"; then
-   LeadingUnderscore=NO
+AC_DEFUN(AC_HAPPY,
+[AC_PATH_PROG(HappyCmd,happy)
+AC_CACHE_CHECK([for version of happy], ac_cv_happy_version,
+[if test x"$HappyCmd" != x; then
+   ac_cv_happy_version="`$HappyCmd -v |
+changequote(, )dnl
+                         grep 'Happy Version' | sed -e 's/Happy Version \([^ ]*\).*/\1/g'`" ;
+changequote([, ])dnl
 else
-   LeadingUnderscore=`echo $ac_cv_lead_uscore | sed 'y/yesno/YESNO/'`
+   ac_cv_happy_version="";
 fi;
-test -n "$verbose" && echo "    setting LeadingUnderscore to $LeadingUnderscore"
-AC_SUBST(LeadingUnderscore)
+])
+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,
+[echo foo > conftest1
+echo foo > conftest2
+if diff -C 1 conftest1 conftest2 > /dev/null 2>&1 ; then
+    ac_cv_context_diffs='diff -C 1'
+else
+    if diff -c1 conftest1 conftest2 > /dev/null 2>&1 ; then
+        ac_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
+fi
+rm -f conftest1 conftest2
+]),
+ContextDiffCmd=$ac_cv_context_diffs
+AC_SUBST(ContextDiffCmd)
 ])
 
+#
+# Finding the Right Yacc
+#
+AC_DEFUN(AC_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.
+#
+# ArCmd and RANLIB are AC_SUBST'ed
+#
+AC_DEFUN(AC_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"
+    exit 1;
+fi
+if $ArCmd clqs conftest.a >/dev/null 2>/dev/null; then
+    ArCmd="$ArCmd clqs"
+    NeedRanLib=''
+elif $ArCmd cqs conftest.a >/dev/null 2>/dev/null; then
+    ArCmd="$ArCmd cqs"
+    NeedRanLib=''
+elif $ArCmd clq conftest.a >/dev/null 2>/dev/null; then
+    ArCmd="$ArCmd clq"
+    NeedRanLib='YES'
+elif $ArCmd cq conftest.a >/dev/null 2>/dev/null; then
+    ArCmd="$ArCmd cq"
+    NeedRanLib='YES'
+elif $ArCmd cq conftest.a 2>&1 | grep 'no archive members specified' >/dev/null 2>/dev/null; then
+    ArCmd="$ArCmd cq"
+    NeedRanLib='YES'
+else
+    echo "I can't figure out how to use your $ArCmd"
+    exit 1
+fi
+rm -rf conftest*
+test -n "$ArCmd" && test -n "$verbose" && echo "        setting ArCmd to $ArCmd"
+AC_SUBST(ArCmd)
+if test -z "$NeedRanLib"; then
+    RANLIB=':'
+    test -n "$verbose" && echo "        setting RANLIB to $RANLIB"
+    AC_SUBST(RANLIB)
+else
+    AC_PROG_RANLIB
+fi
+])
+
+#
+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,
+[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
+else
+   ac_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,
+[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'
+else
+changequote(, )dnl
+    cmd_string="`$CC -v 2>&1 | grep 'version ' | sed -e 's/.*version \(egcs-\)\?\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/expr 20 \\\< \2 \\\* 10 + \3/g' `"
+changequote([, ])dnl
+    if test `eval $cmd_string 2>/dev/null` != "1"; then
+       echo ''
+        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'
+fi
+])
+HaveGcc=`echo $ac_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 cpp directly], ac_cv_gnu_cpp,
+[if echo $CPP | grep gcc >/dev/null 2>&1; then
+    echo > conftest.c
+    gcc -v -E conftest.c >/dev/null 2>conftest.out
+    echo '/(\S+(\/|\\\\)cpp)/ && print "[$]1";' > conftest.pl
+    # GNUCPP: used in jmake.c (GnuCppCmd) and in mkdependC
+    # (where we could do with the usual pre-#defines)
+    ac_cv_gnu_cpp="`eval $PerlCmd -n conftest.pl conftest.out`"
+    rm -fr conftest*
+else
+    # It is likely that this will go terribly wrong..
+    ac_cv_gnu_cpp='cc -E'
+fi
+])
+GNUCPP=$ac_cv_gnu_cpp
+if test "$GNUCPP" = "cc -E"; then
+   RAWCPP="$GNUCPP"
+else
+   RAWCPP="$GNUCPP -traditional"
+fi
+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,
+[$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
+      echo "
+************************************************************************
+Uh-oh...looks like you have Perl 4.035.
+
+Perl version 4.035 has a bug to do with recursion that will bite if
+you run the lit2texi script, when making Info files from
+literate files of various sorts.  Either use perl5, the last version of perl4 
+(4.036), or an older version (e.g., perl 4.019). Failing that, don't create
+any Info files :-)
+************************************************************************
+"
+   fi
+else
+   if grep "version 5" conftest.out >/dev/null 2>&1; then
+      :
+   else
+     echo "I'm not sure if your version of perl will work,"
+     echo "but it's worth a shot, eh?"
+   fi
+fi
+rm -fr conftest*
+])