Node:Specifying Names, Next:Canonicalizing, Up:Manual Configuration
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
config.guess
.
--host=host-type
--target=target-type
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.