In configure.ac the system type is generally used by one or more
case statements to select system-specifics. Shell wildcards can
be used to match a group of system types.
For example, an extra assembler code object file could be chosen, giving
access to a CPU cycle counter register.
$(CYCLE_OBJ) in the
following would be used in a makefile to add the object to a
program or library.
AS_CASE([$host], [alpha*-*-*], [CYCLE_OBJ=rpcc.o], [i?86-*-*], [CYCLE_OBJ=rdtsc.o], [CYCLE_OBJ=""] ) AC_SUBST([CYCLE_OBJ])
AC_CONFIG_LINKS (see Configuration Links) is another good way
to select variant source files, for example optimized code for some
CPUs. The configured CPU type doesn’t always indicate exact CPU types,
so some runtime capability checks may be necessary too.
case $host in alpha*-*-*) AC_CONFIG_LINKS([dither.c:alpha/dither.c]) ;; powerpc*-*-*) AC_CONFIG_LINKS([dither.c:powerpc/dither.c]) ;; *-*-*) AC_CONFIG_LINKS([dither.c:generic/dither.c]) ;; esac
The host system type can also be used to find cross-compilation tools
AC_CHECK_TOOL (see Generic Programs).
The above examples all show ‘$host’, since this is where the code is going to run. Only rarely is it necessary to test ‘$build’ (which is where the build is being done).