@anchor{Site Defaults}
Созданные Autoconf скрипты configure позволяют вам задать
значения по умолчанию для некоторых параметров настройки. Вы можете
сделать это, создавая файлы инициализации для машины и для целой
системы.
Если установлена переменная среды CONFIG_SITE, то
configure использует ее значение как имя скрипта командного
процессора, который необходимо выполнить. В противном случае он считывает
скрипт `prefix/share/config.site', если тот
существует, а затем скрипт `prefix/etc/config.site', также
если он существует. Таким образом, специфические для машины файлы
перекрывают настройки в машинно-независимых файлах в случае конфликта.
Файлы настроек машины могут быть произвольными скриптами командного
процессора, но реально использоваться в них могут только определенные
строки кода. Поскольку configure считывает кэш-файлы
после того, как он считывает файлы настройки машины, то файл локальной
конфигурации может определить кэш-файл по умолчанию, который будет общим для всех
запускаемых в системе скриптов configure, которые созданы с
помощью Autoconf. Если вы установите кэш-файл по умолчанию в файле
локальной настройки, то хорошо было бы установить также выходную
переменную CC, поскольку кэш-файл
является правильным только для определенного компилятора, а многие
системы имеют несколько компиляторов.
В файле локальных настроек вы можете проверять или изменять значения
ключей командной строки, заданных скрипту configure; ключи
устанавливают переменные командного процессора, которые называются так же,
как и ключи командной строки, но с символами дефиса, замененными на
символы
подчеркивания. Исключением из этого правила являются ключи
`--without-' и `--disable-', которые подобны заданию
соответствующих ключей `--with-' или `--enable-' со значением
`no'. Таким образом, `--cache-file=localcache' устанавливает
переменную cache_file в значение `localcache';
`--enable-warnings=no' или `--disable-warnings' устанавливают
переменную enable_warnings равной значению `no';
`--prefix=/usr' устанавливает переменную prefix равной
`/usr'; и т. п.
В файлах локальных настроек также можно устанавливать нестандартные
значения по умолчанию для других выходных переменных, таких как
CFLAGS: иначе вам пришлось бы делать это снова и снова в
командной строке. Если вы обычно используете нестандартные значения для
переменных prefix или exec_prefix (которые обычно
используются для указания файла локальной конфигурации), то все равно
можно задать эти значения в этом файле, если указать его имя в
переменной среды CONFIG_SITE.
Вы можете сами установить значения некоторых кэш-переменных в файле
локальной конфигурации. Это полезно делать при кросс-компиляции, поскольку
невозможно определить проверить возможности, которые требуют запуска
тестовых программ. Вы можете "заполнить кэш" установкой этих значений
для этих систем в файле `prefix/etc/config.site'. Для
определения имен кэш-переменных, которые вам необходимо установить,
поищите переменные с именами, содержащими `_cv_' в соответствующих
скриптах configure или в исходном коде m4 макросов
Autoconf.
Кэш-файл не переопределяет ни одну переменную, установленную в файлах
локальной конфигурации. Сходным образом вы не должны переопределять ключи
командной строки в файлах локальной конфигурации. Ваш код должен
проверять, имеют ли уже переменные типа prefix или
cache_file значения по умолчанию (установленные ранее в процессе
выполнения configure), и если да, то не изменять этих значений.
Вот пример файла `/usr/share/local/gnu/share/config.site'.
Команда `configure --prefix=/usr/share/local/gnu' должна прочитать
этот файл (если переменная CONFIG_SITE не
установлена в другое значение).
# config.site для configure
#
# изменение некоторых значений по умолчанию.
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
#
# разрешить скриптам, созданным Autoconf 2.x, пользоваться общим кэш-файлом
# для получения результатов тестов, которые действительны для данной
# архитектуры.
if test "$cache_file" = ./config.cache; then
cache_file="$prefix/var/config.cache"
# Кэш-файл действителен только для одного компилятора C.
CC=gcc
fi
Go to the first, previous, next, last section, table of contents.