Copyright (C) 2000-2012 |
GNU Info (autoconf.info)Using System TypeUsing the System Type ===================== How do you use a canonical system type? Usually, you use it in one or more `case' statements in `configure.ac' to select system-specific C files. Then, using `AC_CONFIG_LINKS', link those files which have names based on the system name, to generic names, such as `host.h' or `target.c' (Note: Configuration Links). The `case' statement patterns can use shell wild cards to group several cases together, like in this fragment: case $target in i386-*-mach* | i386-*-gnu*) obj_format=aout emulation=mach bfd_gas=yes ;; i960-*-bout) obj_format=bout ;; esac and later in `configure.ac', use: AC_CONFIG_LINKS(host.h:config/$machine.h object.h:config/$obj_format.h) Note that the above example uses `$target' because it's taken from a tool which can be built on some architecture (`$build'), run on another (`$host'), but yet handle data for a third architecture (`$target'). Such tools are usually part of a compiler suite, they generate code for a specific `$target'. However `$target' should be meaningless for most packages. If you want to base a decision on the system where your program will be run, make sure you use the `$host' variable, as in the following excerpt: case $host in *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*) MUMBLE_INIT="mumble.ini" ;; *) MUMBLE_INIT=".mumbleinit" ;; esac AC_SUBST([MUMBLE_INIT]) You can also use the host system type to find cross-compilation tools. Note: Generic Programs, for information about the `AC_CHECK_TOOL' macro which does that. automatically generated by info2www version 1.2.2.9 |