DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(autoconf.info.gz) Using System Type

Info Catalog (autoconf.info.gz) Canonicalizing (autoconf.info.gz) Manual Configuration
 
 Using 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' ( 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.   Generic Programs, for information about the
 `AC_CHECK_TOOL' macro which does that.
 
Info Catalog (autoconf.info.gz) Canonicalizing (autoconf.info.gz) Manual Configuration
automatically generated byinfo2html