26.4.4 Build and Host Options
When you run `configure' for a Canadian Cross, you must use both the `--build' and `--host' options. The `--build' option is used to specify the configuration name of the build system. This can normally be the result of running the `config.guess' shell script, and when using a Unix shell it is reasonable to use `--build=`config.guess`'. The `--host' option is used to specify the configuration name of the host system.
As we explained earlier, `config.guess' is used to set the default value for the `--host' option (see section 26.3 Using the Target Type). We can now see that since `config.guess' returns the type of system on which it is run, it really identifies the build system. Since the host system is normally the same as the build system (or, in other words, people do not normally build using a cross compiler), it is reasonable to use the result of `config.guess' as the default for the host system when the `--host' option is not used.
It might seem that if the `--host' option were used without the `--build' option that the `configure' script could run `config.guess' to determine the build system, and presume a Canadian Cross if the result of `config.guess' differed from the `--host' option. However, for historical reasons, some configure scripts are routinely run using an explicit `--host' option, rather than using the default from `config.guess'. As noted earlier, it is difficult or impossible to reliably compare configuration names (see section 26.3 Using the Target Type). Therefore, by convention, if the `--host' option is used, but the `--build' option is not used, then the build system defaults to the host system. (This convention may be changing in the Autoconf 2.5 release. Check the release notes.)