Вопрос в том, для чего эти переменные?
В общем смысле эти переменные предназначены для запоминания (кэширования) результатов проверок, выполненных с помощью configure
, чтобыне нужно делать их более одного раза.Вы, вероятно, помните, как видели эффект этого в выводе configure
: всякий раз, когда configure
полагается на кэшированный результат вместо фактического выполнения теста, он сообщает об этом в своем выводе, отмечая результат как «(кэшированный)».Также возможно кэшировать результаты в файл для повторного использования при configure
прогонах.
В любом случае эти переменные устанавливаются и используются различными стандартными макросами Autoconf, такими как AC_CHECK_LIBS
и т.п.,Autoconf резервирует переменные оболочки, имена которых начинаются с ac_
или AC_
для собственного использования.Не следует запускать сценарий configure
в среде, которая экспортирует любые такие переменные.
Руководство Autoconf содержит дополнительную информацию о кэшировании.
Почему бы и нетиспользование стандартных макросов конфигурации?
Конкретный пример, который вы представляете , это с использованием стандартных макросов.Рассматриваемая переменная - это та, которая отражает результат этого теста, который появляется в других местах проекта configure.ac
:
AC_CHECK_LIB([utf8proc], [utf8proc_version])
Если вы хотите получить кэшированный результат Autoconftest, затем чтение значения соответствующей переменной кэша является стандартным способом сделать это.Переменные придерживаются стандартной схемы именования, чтобы сделать это относительно легко.Это, однако, необычная вещь.
И последнее, есть ли где-то задокументированный список этих переменных или все они определяются индивидуально в проекте>
Руководство Autoconf документирует те, которые предоставляются и используются самой Autoconf, и даже имеет индекс, посвященный им .Отдельные проекты также могут создавать свои собственные, но, конечно, они не будут обсуждаться в руководстве Autoconf.