(autoconf.info)Specifying Names


Next: Canonicalizing Up: Manual Configuration

13.1 Specifying the System Type
===============================

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 runs.  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
     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, whenever you specify `--host', be sure to specify
`--build' too; this will be fixed in the future.  So, to enter
cross-compilation mode, use a command like this

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

Note that if you do not specify `--host', `configure' fails if it can't
run the code generated by the specified compiler.  For example,
configuring as follows fails:

     ./configure CC=m68k-coff-gcc

   In the future, when cross-compiling Autoconf will _not_ accept tools
(compilers, linkers, assemblers) whose name is not prefixed with the
host type.  The only case when this may be useful is when you really
are not cross-compiling, but only building for a
least-common-denominator architecture: an example is building for
`i386-pc-linux-gnu' while running on an `i686-pc-linux-gnu'
architecture.  In this case, some particular pairs might be similar
enough to let you get away with the system compilers, but in general
the compiler might make bogus assumptions on the host: if you know what
you are doing, please create symbolic links from the host compiler to
the build compiler.

   `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 Note: Hosts and Cross-Compilation.


automatically generated by info2www