Алексей Махоткин

домашняя страница

Autoconf

Go to the first, previous, next, last section, table of contents.


Кэш-файлы

@anchor{Cache Files}

Кэш-файл — это скрипт командного процессора, который хранит результаты тестов конфигурации, проведенных на одной системе, так что они могут совместно использоваться разными скриптами настройки, или при нескольких запусках одного и того же скрипта configure. На других системах этот файл использовать бесполезно. Если содержимое этого файла по некоторым причинам является неверным, то пользователь может удалить или отредактировать его.

По умолчанию в качестве кэш-файла `configure’ использует файл `./config.cache’, создавая его, если он не существует. configure распознает ключ командной строки `–cache-file=file, который позволяет использовать другой кэш-файл; этот ключ используется configure, когда он вызывает скрипты configure, находящиеся в подкаталогах, так что они используют общий кэш. See section Настройка других пакетов, находящихся в подкаталогах, где описано, как задавать подкаталоги с помощью макроса AC_CONFIG_SUBDIRS.

Использование ключа `–cache-file=/dev/null’ запрещает кэширование, например, для отладки configure. Скрипт `config.status’ смотрит на кэш-файл только если запустить его с ключом `–recheck’, чтобы повторно выполнить configure. Если вы предчувствуете долгий период отладки, то можете запретить загрузку и сохранение кэша путем переопределения макросов работы с кэшем в начале `configure.in’:

define([AC_CACHE_LOAD], )dnl
define([AC_CACHE_SAVE], )dnl
AC_INIT(whatever)
 … rest of configure.in …

Попытка распространения кэш-файлов для определенных типов систем неверна в корне. Пытаясь сделать это, вы получаете полную свободу совершать ошибки, а также сталкиваетесь с массой административных проблем, связанных с поддержкой этих файлов. Для возможностей, которые нельзя определить автоматически, используйте стандартный способ канонического типа системы и компоновки файлов (see section Ручная настройка).

На отдельной системе кэш-файл постепенно будет накапливать результаты запусков скрипта configure; первоначально он вообще не будет существовать. Запуск configure объединяет новые кэшированные результаты с уже существующим кэш-файлом. Для того, чтобы сделать работу скрипта более простой, скрипт инициализации на данной машине, может указать общесистемный кэш-файл, который будет использоваться вместо используемого по умолчанию, поскольку каждый раз используется один и тот же компилятор С (see section Установка значений по умолчанию для машины). Если ваш скрипт, или макрос, вызываемые из `configure.in’, прерывает процесс настройки, то полезно будет сохранить кэшированные данные несколько раз в ключевых точках скрипта. Делая это, вы уменьшите время, затраченное при перезапуске скрипта конфигурации после исправления ошибки, которая вызвала предыдущий останов работы.

 … AC_INIT, etc. …
dnl проверки программ
AC_PROG_CC
AC_PROG_GCC_TRADITIONAL
 … дополнительные проверки программ…
AC_CACHE_SAVE

dnl проверка библиотек
AC_CHECK_LIB(nsl, gethostbyname)
AC_CHECK_LIB(socket, connect)
 … другие проверки библиотек …
AC_CACHE_SAVE

dnl Might abort…
AM_PATH_GTK(1.0.2, , exit 1)
AM_PATH_GTKMM(0.9.5, , exit 1)


Go to the first, previous, next, last section, table of contents.

Comments