GNU Info

Info Node: (autoconf.info)Site Defaults

(autoconf.info)Site Defaults


Prev: Transforming Names Up: Site Configuration
Enter node , (file) or (file)node

Setting Site Defaults
=====================

   Autoconf-generated `configure' scripts allow your site to provide
default values for some configuration values.  You do this by creating
site- and system-wide initialization files.

   If the environment variable `CONFIG_SITE' is set, `configure' uses
its value as the name of a shell script to read.  Otherwise, it reads
the shell script `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists.  Thus, settings in
machine-specific files override those in machine-independent ones in
case of conflict.

   Site files can be arbitrary shell scripts, but only certain kinds of
code are really appropriate to be in them.  Because `configure' reads
any cache file after it has read any site files, a site file can define
a default cache file to be shared between all Autoconf-generated
`configure' scripts run on that system.  If you set a default cache
file in a site file, it is a good idea to also set the output variable
`CC' in that site file, because the cache file is only valid for a
particular compiler, but many systems have several available.

   You can examine or override the value set by a command line option to
`configure' in a site file; options set shell variables that have the
same names as the options, with any dashes turned into underscores.
The exceptions are that `--without-' and `--disable-' options are like
giving the corresponding `--with-' or `--enable-' option and the value
`no'.  Thus, `--cache-file=localcache' sets the variable `cache_file'
to the value `localcache'; `--enable-warnings=no' or
`--disable-warnings' sets the variable `enable_warnings' to the value
`no'; `--prefix=/usr' sets the variable `prefix' to the value `/usr';
etc.

   Site files are also good places to set default values for other
output variables, such as `CFLAGS', if you need to give them non-default
values: anything you would normally do, repetitively, on the command
line.  If you use non-default values for PREFIX or EXEC_PREFIX
(wherever you locate the site file), you can set them in the site file
if you specify it with the `CONFIG_SITE' environment variable.

   You can set some cache values in the site file itself.  Doing this is
useful if you are cross-compiling, so it is impossible to check features
that require running a test program.  You could "prime the cache" by
setting those values correctly for that system in
`PREFIX/etc/config.site'.  To find out the names of the cache variables
you need to set, look for shell variables with `_cv_' in their names in
the affected `configure' scripts, or in the Autoconf `m4' source code
for those macros.

   The cache file is careful to not override any variables set in the
site files.  Similarly, you should not override command-line options in
the site files.  Your code should check that variables such as `prefix'
and `cache_file' have their default values (as set near the top of
`configure') before changing them.

   Here is a sample file `/usr/share/local/gnu/share/config.site'.  The
command `configure --prefix=/usr/share/local/gnu' would read this file
(if `CONFIG_SITE' is not set to a different file).

     # config.site for configure
     #
     # Change some defaults.
     test "$prefix" = NONE && prefix=/usr/share/local/gnu
     test "$exec_prefix" = NONE && exec_prefix=/usr/local/gnu
     test "$sharedstatedir" = '${prefix}/com' && sharedstatedir=/var
     test "$localstatedir" = '${prefix}/var' && localstatedir=/var
     #
     # Give Autoconf 2.x generated configure scripts a shared default
     # cache file for feature test results, architecture-specific.
     if test "$cache_file" = ./config.cache; then
       cache_file="$prefix/var/config.cache"
       # A cache file is only valid for one C compiler.
       CC=gcc
     fi


automatically generated by info2www version 1.2.2.9