I just tried the autoupdate script from autoconf 2.49a, and was surprised to see:
AC_CANONICAL_SYSTEM
become:
AC_PROVIDE_IFELSE([AC_CANONICAL_TARGET],[AC_DIAGNOSE([syntax], [AC_CANONICAL_TARGET
invoked multiple
times])],[_AC_DEFUN_PRO([AC_CANONICAL_TARGET])AC_REQUIRE([AC_CANONICAL_HOST])dnl
AC_BEFORE([AC_CANONICAL_SYSTEM], [AC_ARG_PROGRAM])dnl
AC_DIVERT([HELP_CANON],
[[ --target=TARGET configure for building compilers for TARGET [HOST]]])dnl
AC_CACHE_CHECK([target system type], [ac_cv_target],
[dnl Set target_alias.
ac_cv_target_alias=$target_alias
test "x$ac_cv_target_alias" = "x" &&
ac_cv_target_alias=$ac_cv_host_alias
ac_cv_target=`$ac_config_sub $ac_cv_target_alias` || exit 1
])
_AC_CANONICAL_SPLIT([target])
# The aliases save the names the user supplied, while $host etc.
# will get canonicalized.
test -n "$target_alias" &&
test "$program_prefix$program_suffix$program_transform_name" = \
NONENONEs,x,x, &&
program_prefix=${target_alias}-[]dnl
[]_AC_DEFUN_EPI([AC_CANONICAL_TARGET])])
It looks like this is some bug in autoupdate--instead of replacing the macro with
AC_CANONICAL_TARGET, it is replacing it with the definition of that macro...probably
one of those obscure quoting issues I've never entirely understood. =)
Steven