(autoconf.info)Site Defaults


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

9.5 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