+if expr "$ac_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;
+fi;
+])
+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 [^0-9]*\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/expr 20 \\\< \1 \\\* 10 + \2/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 GNU cpp directly], ac_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`"
+ rm -fr conftest*
+ else
+ # We need to be able to invoke CPP directly, preferably
+ # with input from stdin (mkdependHS and hscpp depend on
+ # 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
+ fi
+])
+GNUCPP=$ac_cv_gnu_cpp
+RAWCPP="$GNUCPP -traditional"
+AC_SUBST(GNUCPP)
+AC_SUBST(RAWCPP)