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

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

Autoconf

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


Кэширование результатов

@anchor{Caching Results}

Чтобы избежать повторяющихся проверок одних и тех же возможностей в различных скриптах configure (или при повторных вызовах одного скрипта), configure сохраняет результаты многих проверок в кэш-файле. Если при запуске скрипта configure тот находит кэш-файл, то считывает результаты, полученные при предыдущих запусках, и не выполняет проверки, результат которых уже получен. Благодаря этому configure может работать намного быстрее, чем если бы при каждом запуске приходилось заново выполнять все проверки.

Macro: AC_CACHE_VAL (cache-id, commands-to-set-it)
Проверяет, что доступны результаты проверки, на которые указывает cache-id. Если результаты проверки находятся в кэше, и скрипту configure не был задан ключ `–quiet’ или `–silent’, то выдать сообщение о том, что результаты были взяты из кэша; в противном случае запустить код командного процессора commands-to-set-it. Эти команды не должны иметь побочных эффектов, за исключением установки переменной cache-id. В частности, они не должны вызывать макрос AC_DEFINE; это должен делать код, следующий за вызовом AC_CACHE_VAL, основываясь на кэшированном значении. Они также не должны выдавать никаких сообщений, например, с помощью макроса AC_MSG_CHECKING; это надо выполнять до вызова AC_CACHE_VAL, так что сообщения будут печататься вне зависимости от того, будут ли результаты взяты из кэша или будут определены с помощью выполнения кода командного процессора. Если для определения значения будет запущен код командного процессора, то полученное значение будет сохранено в кэш-файле перед тем, как configure будет создавать выходные файлы. See section Имена переменных кэша, для того чтобы узнать, как выбрать имя переменной cache-id.

Macro: AC_CACHE_CHECK (message, cache-id, commands)
Обертка для макроса AC_CACHE_VAL, которая берет на себя заботу о выдаче сообщений. Этот макрос обеспечивает удобную и короткую форму записи наиболее распространенных способов использования этих макросов. Он вызывает макрос AC_MSG_CHECKING для выдачи сообщения message, затем вызывает AC_CACHE_VAL с аргументами cache-id и commands и, наконец, вызывает AC_MSG_RESULT с аргументом cache-id.

Macro: AC_CACHE_LOAD
Загружает значения из существующего кэш-файла, или создает новый, если кэш-файл не найден. Автоматически вызывается из макроса AC_INIT.

Macro: AC_CACHE_SAVE
Записывает все кэшированные значения в кэш-файл. Этот макрос автоматически из макроса AC_OUTPUT, но полезно бывает вызывать AC_CACHE_SAVE в ключевых точке файла `configure.in’. При это кэш сохраняется на тот случай, если работа скрипта `configure’ будет прервана.


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

Comments