configure.info: Using Configuration Names
Go backward to Configuration Name Definition
Go up to Configuration Names
Go to the top op configure
Using Configuration Names
A configure script will sometimes have to make a decision based on a
configuration name. You will need to do this if you have to compile
code differently based on something which can not be tested using a
standard autoconf feature test.
It is normally better to test for particular features, rather than to
test for a particular system. This is because as Unix evolves,
different systems copy features from one another. Even if you need to
determine whether the feature is supported based on a configuration
name, you should define a macro which describes the feature, rather than
defining a macro which describes the particular system you are on.
Testing for a particular system is normally done using a case
statement in `configure.in'. The case statement might look something
like the following, assuming that `host' is a shell variable holding a
canonical configuration name (which will be the case if `configure.in'
uses the `AC_CANONICAL_HOST' or `AC_CANONICAL_SYSTEM' macro).
case "${host}" in
i[3456]86-*-linux-gnu*) do something ;;
sparc*-sun-solaris2.[56789]*) do something ;;
sparc*-sun-solaris*) do something ;;
mips*-*-elf*) do something ;;
esac
It is particularly important to use `*' after the operating system
field, in order to match the version number which will be generated by
`config.guess'.
In most cases you must be careful to match a range of processor
types. For most processor families, a trailing `*' suffices, as in
`mips*' above. For the i386 family, something along the lines of
`i[3456]86' suffices at present. For the m68k family, you will need
something like `m68*'. Of course, if you do not need to match on the
processor, it is simpler to just replace the entire field by a `*', as
in `*-*-irix*'.
Created Wed Sep 1 16:41:59 2004 on bee with info_to_html version 0.9.6.