Copyright (C) 2000-2012 |
GNU Info (autoconf.info)Site DefaultsSetting 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 |