Changed Results
===============
If you were checking the results of previous tests by examining the
shell variable `DEFS', you need to switch to checking the values of the
cache variables for those tests. `DEFS' no longer exists while
`configure' is running; it is only created when generating output
files. This difference from version 1 is because properly quoting the
contents of that variable turned out to be too cumbersome and
inefficient to do every time `AC_DEFINE' is called. Note:Cache
Variable Names.
For example, here is a `configure.in' fragment written for Autoconf
version 1:
AC_HAVE_FUNCS(syslog)
case "$DEFS" in
*-DHAVE_SYSLOG*) ;;
*) # syslog is not in the default libraries. See if it's in some other.
saved_LIBS="$LIBS"
for lib in bsd socket inet; do
AC_CHECKING(for syslog in -l$lib)
LIBS="$saved_LIBS -l$lib"
AC_HAVE_FUNCS(syslog)
case "$DEFS" in
*-DHAVE_SYSLOG*) break ;;
*) ;;
esac
LIBS="$saved_LIBS"
done ;;
esac
Here is a way to write it for version 2:
AC_CHECK_FUNCS(syslog)
if test $ac_cv_func_syslog = no; then
# syslog is not in the default libraries. See if it's in some other.
for lib in bsd socket inet; do
AC_CHECK_LIB($lib, syslog, [AC_DEFINE(HAVE_SYSLOG)
LIBS="$LIBS $lib"; break])
done
fi
If you were working around bugs in `AC_DEFINE_UNQUOTED' by adding
backslashes before quotes, you need to remove them. It now works
predictably, and does not treat quotes (except backquotes) specially.
Note:Setting Output Variables.
All of the boolean shell variables set by Autoconf macros now use
`yes' for the true value. Most of them use `no' for false, though for
backward compatibility some use the empty string instead. If you were
relying on a shell variable being set to something like 1 or `t' for
true, you need to change your tests.