I tested out this patch and it seems to be working just fine for me.
Here is the output I get.

% ~/project/mod_jikes/jikes/src/configure --prefix=/tmp/jikes \
--host=i386-mingw32msvc
checking build system type... i686-pc-linux-gnu
checking host system type... i386-pc-mingw32msvc
checking for c++... c++
...
checking for cygwin_win32_to_posix_path_list... no
checking for i386-mingw32msvc-strip... i386-mingw32msvc-strip


The first part shows that build and host detection are
working and the second part shows that the AC_CHECK_TOOL()
macro is correctly detecting the host != $build case and finding
i386-mingw32msvc-strip given "strip" as the tool name.

Mo Dejong
Red Hat Inc.



On 26 Apr 2000, Akim Demaille wrote:

> >>>>> "Akim" == Akim Demaille <[EMAIL PROTECTED]> writes:
> 
> Akim> It is Ian who suggested twice that in these conditions, we
> Akim> should get rid of HOST as an argument.
> 
> So the proposal below still does this, but it is open to discussion.
> 
> This is a real proposal this time, I think we have reached an
> agreement.  Remains to check build != host, and the patch from Mo so
> that cross compilers are searched for when --host is used.
> 
>         Akim
> 
> PS/ There is one thing which might be debatable: I used AC_DEFUN_ONCE
> for AC_CANONICAL_BUILD etc. because I think it is right, and it avoids
> duplicate --help documentation if for instance AC_A_TARGET is called,
> and then AC_C_BUILD.  But I know Tom doesn't like AC_DEFUN_ONCE.
> 
> 
> Index: ChangeLog
> ===================================================================
> RCS file: /cvs/autoconf/ChangeLog,v
> retrieving revision 1.562
> diff -u -r1.562 ChangeLog
> --- ChangeLog 2000/04/20 11:49:53     1.562
> +++ ChangeLog 2000/04/26 10:35:39
> @@ -1,3 +1,54 @@
> +2000-04-26  Akim Demaille  <[EMAIL PROTECTED]>
> +
> +     Provide a macro to canonicalize a configuration name.
> +     Suggested by Ralf Corsepius.
> +
> +     *  acgeneral.m4 (AC_CANONICALIZE): New macro.
> +     (_AC_CANONICAL_THING): Use it.
> +
> +
> +     Change the defaults for build, host, and target systems:
> +     build  defaults to `config.guess`.
> +     host   defaults to $build.
> +     target defaults to $host.
> +     Suggested by Mo DeJong, Pavel Roskin, Tom Tromey, Ian Lance
> +     Taylor, and many others.
> +
> +     * acgeneral.m4 (_AC_INIT_PARSE_ARGS): Set `$build', `$host' and
> +     `$target' to nothing instead of NONE.
> +     (AC_CANONICAL_SYSTEM): AU_DEFUN'd as `AC_CANONICAL_TARGET'.
> +     (_AC_CANONICAL_THING): Use an explicit m4_case to set the defaults
> +     depending upon the THING.
> +     Implement the default values.
> +     (AC_CANONICAL_TARGET): Handle the `AC_ARG_PROGRAM' part
> +     `AC_CANONICAL_SYSTEM' used to provide.
> +     * doc/autoconf.texi: Adjust.
> +
> +
> +     Because of the new defaults, because specifying HOST on the
> +     command line of `configure' was not the same as passing it to
> +     `--host', drop the support of HOST as an argument.
> +     Suggested by Ian Lance Taylor.
> +
> +     * acgeneral.m4 (_AC_INIT_PARSE_ARGS, _AC_CANONICAL_THING): Remove
> +     the support of `$nonopt'.
> +     Die when used.
> +
> +
> +     Documenting --build, --host and --target when configure does not
> +     handle them causes confusion.
> +     Suggested by Pavel Roskin.
> +     Nevertheless configure must not die on such an `unsupported'
> +     option: it does happen that people build an entire tree of
> +     packages, some of them expecting `--host' etc. some others not.
> +     Stressed by Tom Tromey and Ian Lance Taylor.
> +
> +     * acgeneral.m4 (HELP_CANON): New diversion.
> +     (_AC_INIT_PARSE_ARGS): Don't document these options.
> +     (AC_CANONICAL_BUILD, AC_CANONICAL_HOST, AC_CANONICAL_TARGET):
> +     Document your associated option.
> +
> +
>  2000-04-20  Dave Love  <[EMAIL PROTECTED]>
>  
>       * acspecific.m4 (AC_FUNC_MKTIME): Use AC_SUBST.
> Index: acgeneral.m4
> ===================================================================
> RCS file: /cvs/autoconf/acgeneral.m4,v
> retrieving revision 1.437
> diff -u -r1.437 acgeneral.m4
> --- acgeneral.m4      2000/04/13 08:25:12     1.437
> +++ acgeneral.m4      2000/04/26 10:41:21
> @@ -77,6 +77,8 @@
>  #   initialization code, option handling loop.
>  # - HELP_BEGIN
>  #   Handling `configure --help'.
> +# - HELP_CANON
> +#   Help msg for AC_CANONICAL_*
>  # - HELP_ENABLE
>  #   Help msg from AC_ARG_ENABLE.
>  # - HELP_WITH
> @@ -119,21 +121,25 @@
>  define([_AC_DIVERT(NOTICE)],          1)
>  define([_AC_DIVERT(DEFAULTS)],        2)
>  define([_AC_DIVERT(INIT_PARSE_ARGS)], 3)
> -define([_AC_DIVERT(HELP_BEGIN)],      4)
> -define([_AC_DIVERT(HELP_ENABLE)],     5)
> -define([_AC_DIVERT(HELP_WITH)],       6)
> -define([_AC_DIVERT(HELP_VAR)],        7)
> -define([_AC_DIVERT(HELP_END)],        8)
> -define([_AC_DIVERT(VERSION_BEGIN)],   9)
> -define([_AC_DIVERT(VERSION_END)],    10)
> -define([_AC_DIVERT(INIT_PREPARE)],   11)
> -
> -define([_AC_DIVERT(NORMAL_4)],       20)
> -define([_AC_DIVERT(NORMAL_3)],       21)
> -define([_AC_DIVERT(NORMAL_2)],       22)
> -define([_AC_DIVERT(NORMAL_1)],       23)
> -define([_AC_DIVERT(NORMAL)],         24)
>  
> +define([_AC_DIVERT(HELP_BEGIN)],     10)
> +define([_AC_DIVERT(HELP_CANON)],     11)
> +define([_AC_DIVERT(HELP_ENABLE)],    12)
> +define([_AC_DIVERT(HELP_WITH)],      13)
> +define([_AC_DIVERT(HELP_VAR)],       14)
> +define([_AC_DIVERT(HELP_END)],       15)
> +
> +define([_AC_DIVERT(VERSION_BEGIN)],  20)
> +define([_AC_DIVERT(VERSION_END)],    21)
> +
> +define([_AC_DIVERT(INIT_PREPARE)],   30)
> +
> +define([_AC_DIVERT(NORMAL_4)],       50)
> +define([_AC_DIVERT(NORMAL_3)],       51)
> +define([_AC_DIVERT(NORMAL_2)],       52)
> +define([_AC_DIVERT(NORMAL_1)],       53)
> +define([_AC_DIVERT(NORMAL)],         54)
> +
>  define([_AC_DIVERT],
>  [ifdef([_AC_DIVERT($1)],
>         [indir([_AC_DIVERT($1)])],
> @@ -290,7 +296,7 @@
>  define(AC_REQUIRE,
>  [AC_PROVIDE_IFELSE([$1],
>                     [],
> -                   [AC_DIVERT(m4_eval(AC_DIVERT_DIVERSION - 1), [$1])])
> +                   [AC_DIVERT(m4_eval(AC_DIVERT_DIVERSION - 1), [$1])])dnl
>  ])
>  
>  
> @@ -893,12 +899,11 @@
>  ac_init_version=false
>  # The variables have the same names as the options, with
>  # dashes changed to underlines.
> -build=NONE
> +build=
>  cache_file=/dev/null
>  AC_SUBST(exec_prefix, NONE)dnl
> -host=NONE
> +host=
>  no_create=
> -nonopt=NONE
>  no_recursion=
>  AC_SUBST(prefix, NONE)dnl
>  program_prefix=NONE
> @@ -907,7 +912,7 @@
>  silent=
>  site=
>  srcdir=
> -target=NONE
> +target=
>  verbose=
>  x_includes=NONE
>  x_libraries=NONE
> @@ -1214,13 +1219,7 @@
>      export $ac_envvar ;;
>  
>    *)
> -    if echo "$ac_option" | grep '[[^-a-zA-Z0-9.]]' >/dev/null 2>&1; then
> -      AC_MSG_WARN(invalid host type: $ac_option)
> -    fi
> -    if test "x$nonopt" != xNONE; then
> -      AC_MSG_ERROR(can only configure for one host and one target at a time)
> -    fi
> -    nonopt=$ac_option
> +    AC_MSG_ERROR([you must use `--host' to specify the host type])
>      ;;
>  
>    esac
> @@ -1263,7 +1262,7 @@
>                          [AC_PACKAGE_STRING],
>                          [this package]) to adapt to many kinds of systems.
>  
> -Usage: $[0] [[OPTION]... [VAR=VALUE]... [HOST]]
> +Usage: $[0] [[OPTION]]... [[VAR=VALUE]]...
>  
>  [To assign environment variables (e.g., CC, CFLAGS...), specify them as
>  VAR=VALUE.
> @@ -1278,7 +1277,7 @@
>    -q, --quiet, --silent   do not print \`checking...' messages
>        --cache-file=FILE   cache test results in FILE [disabled]
>    -n, --no-create         do not create output files
> -      --srcdir=DIR        find the sources in DIR [configure dir or ..]
> +      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
>  
>  EOF
>  
> @@ -1311,26 +1310,28 @@
>    --mandir=DIR           man documentation [PREFIX/man]
>  EOF
>  
> -  cat <<\EOF
> -
> -Host type:
> -  --host=HOST        configure for HOST [guessed]
> -  --build=BUILD      configure for building on BUILD [BUILD=HOST]
> -  --target=TARGET    configure for TARGET [TARGET=HOST]
> -EOF
>    cat <<\EOF]
>  AC_DIVERT_POP()dnl
>  dnl The order of the diversions here is
> -dnl HELP_BEGIN, which may be prolongated by extra generic options
> -dnl             such as with X or AC_ARG_PROGRAM.  Displayed only
> -dnl             in long --help.
> -dnl HELP_ENABLE, which starts with the trailer of the HELP_BEGIN
> -dnl              section, then implements the header of the non
> -dnl              generic options.
> -dnl HELP_WITH,
> -dnl HELP_VAR,
> -dnl HELP_END, initialized below, in which we dump the trailer
> -dnl           (handling of the recursion for instance).
> +dnl - HELP_BEGIN
> +dnl   which may be prolongated by extra generic options such as with X or
> +dnl   AC_ARG_PROGRAM.  Displayed only in long --help.
> +dnl
> +dnl - HELP_CANON
> +dnl   Support for cross compilation (--build, --host and --target).
> +dnl   Display only in long --help.
> +dnl
> +dnl - HELP_ENABLE
> +dnl   which starts with the trailer of the HELP_BEGIN, HELP_CANON section,
> +dnl   then implements the header of the non generic options.
> +dnl
> +dnl - HELP_WITH
> +dnl
> +dnl - HELP_VAR
> +dnl
> +dnl - HELP_END
> +dnl   initialized below, in which we dump the trailer (handling of the
> +dnl   recursion for instance).
>  AC_DIVERT_PUSH([HELP_ENABLE])dnl
>  EOF
>  fi
> @@ -1692,9 +1693,9 @@
>  
>  
>  
> -## ----------------------------------- ##
> -## Getting the canonical system type.  ##
> -## ----------------------------------- ##
> +## ------------------------- ##
> +## Finding auxiliary files.  ##
> +## ------------------------- ##
>  
>  
>  # AC_CONFIG_AUX_DIR(DIR)
> @@ -1747,102 +1748,114 @@
>  ])# AC_CONFIG_AUX_DIRS
>  
>  
> -# AC_CANONICAL_SYSTEM
> -# -------------------
> -# Canonicalize the host, target, and build system types.
> -AC_DEFUN(AC_CANONICAL_SYSTEM,
> -[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
> -AC_REQUIRE([AC_CANONICAL_HOST])dnl
> -AC_REQUIRE([AC_CANONICAL_TARGET])dnl
> -AC_REQUIRE([AC_CANONICAL_BUILD])dnl
> -AC_BEFORE([$0], [AC_ARG_PROGRAM])
> -# Do some error checking and defaulting for the host and target type.
> +
> +
> +## ----------------------------------- ##
> +## Getting the canonical system type.  ##
> +## ----------------------------------- ##
> +
>  # The inputs are:
> -#    configure --host=HOST --target=TARGET --build=BUILD NONOPT
> +#    configure --host=HOST --target=TARGET --build=BUILD
>  #
>  # The rules are:
> -# 1. You are not allowed to specify --host, --target, and nonopt at the
> -#    same time.
> -# 2. Host defaults to nonopt.
> -# 3. If nonopt is not specified, then host defaults to the current host,
> -#    as determined by config.guess.
> -# 4. Target and build default to nonopt.
> -# 5. If nonopt is not specified, then target and build default to host.
> +# 1. Build defaults to the current host, as determined by config.guess.
> +# 2. Host defaults to build.
> +# 3. Target defaults to host.
>  
> -# The aliases save the names the user supplied, while $host etc.
> -# will get canonicalized.
> -case $host---$target---$nonopt in
> -NONE---*---* | *---NONE---* | *---*---NONE) ;;
> -*) AC_MSG_ERROR(can only configure for one host and one target at a time) ;;
> -esac
>  
> -test "$host_alias" != "$target_alias" &&
> -  test "$program_prefix$program_suffix$program_transform_name" = \
> -    NONENONEs,x,x, &&
> -  program_prefix=${target_alias}-
> -])# AC_CANONICAL_SYSTEM
> +# AC_CANONICALIZE(THING)
> +# ----------------------
> +# Canonicalize the appropriate THING, generating the variables THING,
> +# THING_{alias cpu vendor os}, and the associated cache entries.
> +AC_DEFUN([AC_CANONICALIZE],
> +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
> +ac_cv_$1=`$ac_config_sub $ac_cv_$1_alias` || exit 1
> +ac_cv_$1_cpu=`echo $ac_cv_$1 | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`
> +ac_cv_$1_vendor=`echo $ac_cv_$1 | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`
> +ac_cv_$1_os=`echo $ac_cv_$1 | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`
> +AC_SUBST([$1],        [$ac_cv_$1])dnl
> +AC_SUBST([$1_alias],  [$ac_cv_$1_alias])dnl
> +AC_SUBST([$1_cpu],    [$ac_cv_$1_cpu])dnl
> +AC_SUBST([$1_vendor], [$ac_cv_$1_vendor])dnl
> +AC_SUBST([$1_os],     [$ac_cv_$1_os])dnl
> +])# AC_CANONICALIZE
>  
>  
>  # _AC_CANONICAL_THING(THING)
>  # --------------------------
> -# Worker routine for AC_CANONICAL_{HOST TARGET BUILD}.  THING is one of
> -# `host', `target', or `build'.  Canonicalize the appropriate thing,
> -# generating the variables THING, THING_{alias cpu vendor os}, and the
> -# associated cache entries.  We also redo the cache entries if the user
> -# specifies something different from ac_cv_$THING_alias on the command line.
> -define(_AC_CANONICAL_THING,
> -[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
> -ifelse([$1], [host], , [AC_REQUIRE([AC_CANONICAL_HOST])])dnl
> -AC_MSG_CHECKING([$1 system type])
> -if test "x$ac_cv_$1" = "x" || (test "x$$1" != "xNONE" && test "x$$1" != 
>"x$ac_cv_$1_alias"); then
> -
> -  # Make sure we can run config.sub.
> -  if $ac_config_sub sun4 >/dev/null 2>&1; then :; else
> -    AC_MSG_ERROR(cannot run $ac_config_sub)
> -  fi
> +# Worker routine for AC_CANONICAL_SYSTEM.  THING is one of `host',
> +# `target', or `build'.  Canonicalize the appropriate thing.  We also
> +# redo the cache entries if the user specifies something different
> +# from ac_cv_$THING_alias on the command line.
> +define([_AC_CANONICAL_THING],
> +[AC_MSG_CHECKING([$1 system type])
> +if test "x$ac_cv_$1" = "x" ||
> +   (test "x$$1" != "x" && test "x$$1" != "x$ac_cv_$1_alias"); then
>  
>  dnl Set $1_alias.
>    ac_cv_$1_alias=$$1
> -  case "$ac_cv_$1_alias" in
> -  NONE)
> -    case $nonopt in
> -    NONE)
> -ifelse([$1], [host],[dnl
> -      if ac_cv_$1_alias=`$ac_config_guess`; then :
> -      else AC_MSG_ERROR(cannot guess $1 type; you must specify one)
> -      fi ;;],[dnl
> -      ac_cv_$1_alias=$host_alias ;;
> -])dnl
> -    *) ac_cv_$1_alias=$nonopt ;;
> -    esac ;;
> -  esac
> -
> -dnl Set the other $[1] vars.  Propagate the failures of config.sub.
> -  ac_cv_$1=`$ac_config_sub $ac_cv_$1_alias` || exit 1
> -  ac_cv_$1_cpu=`echo $ac_cv_$1 | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\1/'`
> -  ac_cv_$1_vendor=`echo $ac_cv_$1 | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\2/'`
> -  ac_cv_$1_os=`echo $ac_cv_$1 | sed 's/^\([[^-]]*\)-\([[^-]]*\)-\(.*\)$/\3/'`
> +  test "x$ac_cv_$1_alias" = "x" &&
> +    m4_case([$1],
> +[build],
> +  [{ ac_cv_build_alias=`$ac_config_guess` ||
> +      AC_MSG_ERROR(
> +           [cannot guess build (this machine) type; you must specify one]); }],
> +[host],
> +  [ac_cv_host_alias=$build_alias],
> +[target],
> +  [ac_cv_target_alias=$host_alias])
>  else
>    echo $ECHO_N "(cached) $ECHO_C" >&AC_FD_MSG
>  fi
> +AC_CANONICALIZE([$1])
> +AC_MSG_RESULT($ac_cv_$1)[]dnl
> +])# _AC_CANONICAL_THING
>  
> -AC_MSG_RESULT($ac_cv_$1)
>  
> -$1=$ac_cv_$1
> -$1_alias=$ac_cv_$1_alias
> -$1_cpu=$ac_cv_$1_cpu
> -$1_vendor=$ac_cv_$1_vendor
> -$1_os=$ac_cv_$1_os
> -AC_SUBST($1)dnl
> -AC_SUBST($1_alias)dnl
> -AC_SUBST($1_cpu)dnl
> -AC_SUBST($1_vendor)dnl
> -AC_SUBST($1_os)dnl
> -])# _AC_CANONICAL_THING
> +# AC_CANONICAL_BUILD
> +# ------------------
> +AC_DEFUN_ONCE([AC_CANONICAL_BUILD],
> +[AC_DIVERT([HELP_CANON],
> +[[
> +Hosts type:
> +  --build=BUILD     configure for building on BUILD [guessed]]])dnl
> +# Make sure we can run config.sub.
> +$ac_config_sub sun4 >/dev/null 2>&1 ||
> +  AC_MSG_ERROR([cannot run $ac_config_sub])
> +
> +_AC_CANONICAL_THING(build)[]dnl
> +])# AC_CANONICAL_BUILD
> +
> +
> +# AC_CANONICAL_HOST
> +# -----------------
> +AC_DEFUN_ONCE([AC_CANONICAL_HOST],
> +[AC_REQUIRE([AC_CANONICAL_BUILD])dnl
> +AC_DIVERT([HELP_CANON],
> +[[  --host=HOST       configure for building programs running on HOST [BUILD]]])dnl
> +_AC_CANONICAL_THING(host)[]dnl
> +])# AC_CANONICAL_HOST
> +
> +
> +# AC_CANONICAL_TARGET
> +# -------------------
> +AC_DEFUN_ONCE([AC_CANONICAL_TARGET],
> +[AC_REQUIRE([AC_CANONICAL_HOST])dnl
> +AC_BEFORE([$0], [AC_ARG_PROGRAM])dnl
> +AC_DIVERT([HELP_CANON],
> +[[  --target=TARGET   configure for building compilers for TARGET [HOST]]])dnl
> +_AC_CANONICAL_THING(target)[]dnl
> +
> +# The aliases save the names the user supplied, while $host etc.
> +# will get canonicalized.
> +test "$host_alias" != "$target_alias" &&
> +  test "$program_prefix$program_suffix$program_transform_name" = \
> +    NONENONEs,x,x, &&
> +  program_prefix=${target_alias}-[]dnl
> +])# AC_CANONICAL_TARGET
> +
>  
> -AC_DEFUN(AC_CANONICAL_HOST,   [_AC_CANONICAL_THING([host])])
> -AC_DEFUN(AC_CANONICAL_TARGET, [_AC_CANONICAL_THING([target])])
> -AC_DEFUN(AC_CANONICAL_BUILD,  [_AC_CANONICAL_THING([build])])
> +AU_DEFUN(AC_CANONICAL_SYSTEM, [AC_CANONICAL_TARGET])
>  
>  
>  # AC_VALIDATE_CACHED_SYSTEM_TUPLE([CMD])
> Index: doc/autoconf.texi
> ===================================================================
> RCS file: /cvs/autoconf/doc/autoconf.texi,v
> retrieving revision 1.257
> diff -u -r1.257 autoconf.texi
> --- doc/autoconf.texi 2000/04/13 08:25:12     1.257
> +++ doc/autoconf.texi 2000/04/26 11:01:59
> @@ -2559,9 +2559,10 @@
>  @defmac AC_CHECK_TOOL (@var{variable}, @var{prog-to-check-for}, 
>@ovar{value-if-not-found}, @ovar{path})
>  @maindex CHECK_TOOL
>  Like @code{AC_CHECK_PROG}, but first looks for @var{prog-to-check-for}
> -with a prefix of the host type as determined by @code{AC_CANONICAL_HOST},
> -followed by a dash (@pxref{Canonicalizing}).  For example, if the user
> -runs @samp{configure --host=i386-gnu}, then this call:
> +with a prefix of the host type as determined by
> +@code{AC_CANONICAL_HOST}, followed by a dash (@pxref{Canonicalizing}).
> +For example, if the user runs @samp{configure --host=i386-gnu}, then
> +this call:
>  @example
>  AC_CHECK_TOOL(RANLIB, ranlib, :)
>  @end example
> @@ -2588,9 +2589,9 @@
>  @maindex PATH_TOOL
>  Like @code{AC_PATH_PROG}, but first looks for @var{prog-to-check-for}
>  with a prefix of the host type as determined by
> -@code{AC_CANONICAL_HOST},
> -followed by a dash (@pxref{Canonicalizing}).  For example, if the user
> -runs @samp{configure --host=i386-gnu}, then this call:
> +@code{AC_CANONICAL_HOST}, followed by a dash (@pxref{Canonicalizing}).
> +For example, if the user runs @samp{configure --host=i386-gnu}, then
> +this call:
>  @example
>  AC_PATH_TOOL(FILE, file, :, /usr/bin:$PATH)
>  @end example
> @@ -4386,6 +4387,8 @@
>  nonportable.  If you combine @samp{&&} and @samp{||} in the same
>  statement, keep in mind that they have equal precedence.
>  
> +
> +@c FIXME: Hm, I'd say the `target' here should be `build'.
>  To enable @code{configure} scripts to support cross-compilation, they
>  shouldn't do anything that tests features of the host system instead of
>  the target system.  But occasionally you may find it necessary to check
> @@ -5671,17 +5674,15 @@
>  produce code.
>  @end table
>  
> -@noindent
> -If the user gives @code{configure} a non-option argument, it is used as
> -the default for the host, target, and build system types if the user
> -does not specify them explicitly with options.  The target and build
> -types default to the host type if it is given and they are not.  If you
> -are cross-compiling, you still have to specify the names of the
> +By default, the build is guessed (by @code{config,guess}), the host
> +system is the build system, and the target is the build system.
> +
> +If you are cross-compiling, you still have to specify the names of the
>  cross-tools you use, in particular the C compiler, on the
>  @code{configure} command line, e.g.,
>  
>  @example
> -CC=m68k-coff-gcc configure --target=m68k-coff
> +./configure --target=m68k-coff CC=m68k-coff-gcc
>  @end example
>  
>  @code{configure} recognizes short aliases for many system types; for
> @@ -5704,22 +5705,29 @@
>  @code{configure} ignores any @samp{--host}, @samp{--target}, and
>  @samp{--build} options given to it.
>  
> -@defmac AC_CANONICAL_SYSTEM
> -@maindex CANONICAL_SYSTEM
> -Determine the system type and set output variables to the names of the
> -canonical system types.  @xref{System Type Variables}, for details about
> -the variables this macro sets.
> +
> +@defmac AC_CANONICAL_BUILD
> +@maindex CANONICAL_BUILD
> +Compute the @samp{build} system type variables, see @ref{System Type
> +Variables}.  Unless specified to @code{configure} via @samp{--build},
> +the build system is guessed by running @code{config.guess}.
>  @end defmac
>  
>  @defmac AC_CANONICAL_HOST
> -@defmacx AC_CANONICAL_BUILD
> -@defmacx AC_CANONICAL_TARGET
>  @maindex CANONICAL_HOST
> -@maindex CANONICAL_BUILD
> +Compute the @samp{host} system type variables, see @ref{System Type
> +Variables}.  Unless specified to @code{configure} via @samp{--host}, the
> +host system is the build system.
> +@end defmac
> +
> +@defmac AC_CANONICAL_TARGET
>  @maindex CANONICAL_TARGET
> -Perform only the subset of @code{AC_CANONICAL_SYSTEM} relevant to the
> -host or build or target type.  @code{AC_CANONICAL_HOST} is all that is
> -needed for programs that are not part of a compiler tool chain.
> +Compute the @samp{target} system type variables, see @ref{System Type
> +Variables}.  Unless specified to @code{configure} via @samp{--target},
> +the target system is the host system.
> +
> +This macro only makes sense for compilers, debuggers etc. which might
> +run on a machine, but work on binaries from another machine.
>  @end defmac
>  
>  @defmac AC_VALIDATE_CACHED_SYSTEM_TUPLE (@var{cmd})
> @@ -5732,10 +5740,9 @@
>  @node System Type Variables, Using System Type, Canonicalizing, Manual Configuration
>  @section System Type Variables
>  
> -After calling @code{AC_CANONICAL_SYSTEM}, the following output variables
> -contain the system type information.  After @code{AC_CANONICAL_HOST},
> -@code{AC_CANONICAL_BUILD}, or @code{AC_CANONICAL_TARGET}, only the
> -@code{host}, @code{build}, or @code{target} variables below are set.
> +After calling @code{AC_CANONICAL_BUILD}, the following @samp{build}
> +output variables contain the build system type information, likewise for
> +@code{AC_CANONICAL_HOST} and @code{AC_CANONICAL_TARGET}.
>  
>  @table @code
>  @ovindex build
> @@ -6050,10 +6057,10 @@
>  
>  If any of the options described below are given to @code{configure},
>  program names are transformed accordingly.  Otherwise, if
> -@code{AC_CANONICAL_SYSTEM} has been called and a @samp{--target} value
> -is given that differs from the host type (specified with @samp{--host}
> -or defaulted by @code{config.sub}), the target type followed by a dash
> -is used as a prefix.  Otherwise, no program name transformation is done.
> +@code{AC_CANONICAL_TARGET} has been called and a @samp{--target} value
> +is given that differs from the host type (specified with @samp{--host}),
> +the target type followed by a dash is used as a prefix.  Otherwise, no
> +program name transformation is done.
>  @end defmac
>  
>  @menu
> @@ -7094,6 +7101,18 @@
>  @defmac AC_C_CROSS
>  @maindex C_CROSS
>  This macro is obsolete; it does nothing.
> +@end defmac
> +
> +@defmac AC_CANONICAL_SYSTEM
> +@maindex CANONICAL_SYSTEM
> +Determine the system type and set output variables to the names of the
> +canonical system types.  @xref{System Type Variables}, for details about
> +the variables this macro sets.
> +
> +The user is encouraged to explicitly use either
> +@code{AC_CANONICAL_BUILD}, or @code{AC_CANONICAL_HOST}, or
> +@code{AC_CANONICAL_TARGET}, depending on her needs.  Using
> +@code{AC_CANONICAL_TARGET} is enough to run the three macros.
>  @end defmac
>  
>  @defmac AC_CHAR_UNSIGNED
> Index: doc/install.texi
> ===================================================================
> RCS file: /cvs/autoconf/doc/install.texi,v
> retrieving revision 1.22
> diff -u -r1.22 install.texi
> --- doc/install.texi  2000/04/05 07:42:07     1.22
> +++ doc/install.texi  2000/04/26 11:02:00
> @@ -194,22 +194,6 @@
>  will cause the specified gcc to be used as the C compiler (unless it is
>  overridden in the site shell script).
>  
> -Please, note that the former interface:
> -
> -@example
> -CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
> -@end example
> -
> -@noindent
> -or
> -
> -@example
> -env CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
> -@end example
> -
> -@noindent
> -should be avoided.
> -
>  
>  @node Operation Controls
>  @section Operation Controls
> Index: tests/Makefile.am
> ===================================================================
> RCS file: /cvs/autoconf/tests/Makefile.am,v
> retrieving revision 1.20
> diff -u -r1.20 Makefile.am
> --- tests/Makefile.am 2000/03/27 12:26:33     1.20
> +++ tests/Makefile.am 2000/04/26 11:02:00
> @@ -47,6 +47,8 @@
>  # and some are already tested elsewhere.  EGREP_EXCLUDE must filter out
>  # the macros we don't want to test in syntax.m4.
>  #
> +# - AC_CANONICALIZE
> +#   Needs an argument.
>  # - AC_CHECK decl, file, func, header, lib, member, prog, sizeof, type
>  #   Performed in the semantics tests.
>  # - AC_CONFIG
> @@ -70,6 +72,7 @@
>  # We use the fact that automake will replace all the `\\\n' with ` '.
>  FILTER_MACROS = egrep -v -e \
>  `echo '^AC_ARG_VAR$$\
> +^AC_CANONICALIZE$$\
>  ^AC_CHECK_(DECL|FILE|FUNC|HEADER|LIB|MEMBER|PROG|SIZEOF|TYPE)S?$$\
>  ^AC_CONFIG\
>  ^AC_INIT\
> 
> 

Reply via email to