Fix cpp-from-stdin detection so that it works even if the

compiler silently accepts an empty command line.
Don't bother searching for bison and yacc unless we are going to use them.
This commit is contained in:
Tom Lane 1998-10-26 00:56:16 +00:00
parent ae7e19c586
commit c719a82683
1 changed files with 31 additions and 27 deletions

View File

@ -355,36 +355,40 @@ echo "- setting LDFLAGS=$LDFLAGS"
dnl Checks for programs.
AC_PROG_CPP
dnl Check to see what flags are required to get stdin into cpp
dnl Check to see what flags are required to get stdin into cpp.
dnl Note that we need to look at the output, since the C compiler might
dnl not raise an error when no input files are named on the cmd line.
dnl (This is a somewhat modified version of AC_EGREP_CPP)
dnl AC_TRY_CPPSTDIN(PATTERN, PROGRAM, [ACTION-IF-FOUND [,
dnl ACTION-IF-NOT-FOUND]])
AC_DEFUN(AC_TRY_CPPSTDIN,
[AC_REQUIRE_CPP()dnl
cat > conftest.$ac_ext <<EOF
[#]line __oline__ "configure"
#include "confdefs.h"
[$1]
[$2]
EOF
ac_try="$ac_cpp $CPPSTDIN <conftest.$ac_ext >/dev/null 2>conftest.out"
AC_TRY_EVAL(ac_try)
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
ifelse([$2], , :, [rm -rf conftest*
$2])
else
echo "$ac_err" >&AC_FD_CC
echo "configure: failed program was:" >&AC_FD_CC
cat conftest.$ac_ext >&AC_FD_CC
ifelse([$3], , , [ rm -rf conftest*
$3
dnl eval is necessary to expand ac_cpp.
dnl Ultrix and Pyramid sh refuse to redirect output of eval, so use subshell.
if (eval "$ac_cpp $CPPSTDIN <conftest.$ac_ext") 2>&AC_FD_CC |
grep "$1" >/dev/null 2>&1; then
ifelse([$3], , :, [rm -rf conftest*
$3])
ifelse([$4], , , [else
rm -rf conftest*
$4
])dnl
fi
rm -f conftest*])
rm -f conftest*
])
AC_MSG_CHECKING(how to use cpp with stdin)
if test -z "$CPPSTDIN"; then
AC_CACHE_VAL(ac_cv_cpp_stdin,
[ CPPSTDIN=""
AC_TRY_CPPSTDIN([#include <assert.h>
Syntax Error], , CPPSTDIN="-")
[ CPPSTDIN="-"
AC_TRY_CPPSTDIN([^Find Me Or Else],
[#include <assert.h>
Find Me Or Else], , CPPSTDIN="")
ac_cv_cpp_stdin="$CPPSTDIN"])
CPPSTDIN="$ac_cv_cpp_stdin"
else
@ -510,24 +514,24 @@ dnl (1) We specify in YACC and YFLAGS what we want
dnl (2) We have bison and we use bison -y
dnl (3) We have yacc and use it
AC_SUBST(YACC)
AC_SUBST(YFLAGS)
AC_PATH_PROG(yacc, yacc)
AC_PATH_PROG(bison, bison)
if test -f "$YACC"
then
echo "- Using $YACC $YFLAGS"
elif test -f "$bison"
then
else
AC_PATH_PROG(bison, bison)
if test -f "$bison"
then
echo "- Using $bison -y $YFLAGS"
YACC="$bison"
YFLAGS="-y $YFLAGS"
export YACC YFLAGS
else
else
AC_PATH_PROG(yacc, yacc)
echo "- Using $yacc $YFLAGS"
YACC="$yacc"
export YACC
fi
fi
AC_SUBST(YACC)
AC_SUBST(YFLAGS)
AC_CHECK_LIB(sfio, main)
for curses in ncurses curses ; do