Node:Specifying Names, Next:, Up:Manual Configuration



Specifying the System Type

Like other GNU configure scripts, Autoconf-generated configure scripts can make decisions based on a canonical name for the system type, which has the form: cpu-vendor-os, where os can be system or kernel-system

configure can usually guess the canonical name for the type of system it's running on. To do so it runs a script called config.guess, which infers the name using the uname command or symbols predefined by the C preprocessor.

Alternately, the user can specify the system type with command line arguments to configure. Doing so is necessary when cross-compiling. In the most complex case of cross-compiling, three system types are involved. The options to specify them are:

--build=build-type
the type of system on which the package is being configured and compiled. It defaults to the result of running config.guess.
--host=host-type
the type of system on which the package will run. By default it is the same as the build machine. Specifying it enables the cross-compilation mode.
--target=target-type
the type of system for which any compiler tools in the package will produce code (rarely needed). By default, it is the same as host.

If you mean to override the result of config.guess, use --build, not --host, since the latter enables cross-compilation. For historical reasons, passing --host also changes the build type. Therefore, whenever you specify --host, be sure to specify --build too. This will be fixed in the future.

./configure --build=i686-pc-linux-gnu --host=m68k-coff

will enter cross-compilation mode, but configure will fail if it can't run the code generated by the specified compiler if you configure as follows:

./configure CC=m68k-coff-gcc

configure recognizes short aliases for many system types; for example, decstation can be used instead of mips-dec-ultrix4.2. configure runs a script called config.sub to canonicalize system type aliases.

This section deliberately omits the description of the obsolete interface, see Hosts and Cross-Compilation.