Next: , Previous: Specifying Target Triplets, Up: Manual Configuration

14.2 Getting the Canonical System Type

The following macros make the system type available to configure scripts.

The variables ‘build_alias’, ‘host_alias’, and ‘target_alias’ are always exactly the arguments of --build, --host, and --target; in particular, they are left empty if the user did not use them, even if the corresponding AC_CANONICAL macro was run. Any configure script may use these variables anywhere. These are the variables that should be used when in interaction with the user.

If you need to recognize some special environments based on their system type, run the following macros to get canonical system names. These variables are not set before the macro call.

If you use these macros, you must distribute config.guess and config.sub along with your source code. See Output, for information about the AC_CONFIG_AUX_DIR macro which you can use to control in which directory configure looks for those scripts.


Compute the canonical build-system type variable, build, and its three individual parts build_cpu, build_vendor, and build_os.

If --build was specified, then build is the canonicalization of build_alias by config.sub, otherwise it is determined by the shell script config.guess.


Compute the canonical host-system type variable, host, and its three individual parts host_cpu, host_vendor, and host_os.

If --host was specified, then host is the canonicalization of host_alias by config.sub, otherwise it defaults to build.


Compute the canonical target-system type variable, target, and its three individual parts target_cpu, target_vendor, and target_os.

If --target was specified, then target is the canonicalization of target_alias by config.sub, otherwise it defaults to host.

Note that there can be artifacts due to the backward compatibility code. See See Hosts and Cross-Compilation, for more.