GNU Autoconf 2.70

Autoconf — утилита для создания конфигурационных скриптов (configure), которые автоматически настраивают пакеты с исходным кодом для работы в Unix-подобных операционных системах. 

В новую версию программы Autoconf включены изменения, которые потенциально могут привести к нарушению совместимости с существующими скриптами Autoconf. Перед переходом на Autoconf 2.70 пользователям рекомендуется протестировать свои скрипты на предмет корректности их работы. 

В новой версии:

  • Обеспечена совместимость с выпущенными в 2011 году стандартами C и C++.
  • Добавлена поддержка повторяемых сборок, результат которых будет одинаковым на разных системах.
  • Улучшена поддержка кросс-компиляции.
  • Улучшена совместимость с современными версиями компиляторов и вызываемых утилит.
  • Повышена эффективность работы генерируемого shell-кода.
  • В скрипт configure добавлена опция '--runstatedir' для определения пути к каталогу /run с pid-файлами.
  • В autoreconf добавлена поддержка запуска утилит gtkdocize и intltoolize, а также обеспечена обработка макроса AM_GNU_GETTEXT_REQUIRE_VERSION, определяющего минимальную версию gettext.
  • В autoheader улучшена поддержка дополнительных файлов конфигурации, в которых теперь не обязательно дублировать шаблоны AC_DEFINE.
  • Добавлен макрос AC_C__GENERIC для проверки поддержки ключевого слова _Generic, определённого в спецификации C2011. Реализация макроса AC_C_VARARRAYS приведена в соответствие со спецификацией C2011.
  • Добавлен макрос AC_CONFIG_MACRO_DIRS для определения списка каталогов, в которых размещаются локальные макросы M4.
  • В макрос AC_USE_SYSTEM_EXTENSIONS добавлена информация о дополнительных системных расширениях, которые включены для HP-UX, macOS и MINIX.
  • Добавлен макрос AC_CHECK_INCLUDES_DEFAULT для выполнения проверок, выполняемых при обработке макроса AC_INCLUDES_DEFAULT.
  • Объявлены устаревшими макросы AC_PROG_CC_STDC, AC_PROG_CC_C89, AC_PROG_CC_C99, вместо которых следует использовать AC_PROG_CC.
  • Изменения, потенциально нарушающие совместимость:
    • Обеспечено экранирование аргументов config.log в заголовочном комментарии. Улучшена читаемость вывода "config.status --config".
    • В autoreconf прекращена поддержка версий automake и aclocal, выпущенных раньше 1.8.
    • Рекомендовано использовать printf вместо echo, макросы AS_ECHO и AS_ECHO_N теперь преобразуются в 'printf "%s\n"' и 'printf %s'. Переведены в разряд устаревших недокументированные переменные $as_echo и $as_echo_n, вместо которых следует использовать макросы AS_ECHO и AS_ECHO_N.
    • Многие макросы изменены для раскрытия аргументов только один раз для ускорения выполнения autoconf, что может сказаться на совместимости с некоторыми скриптами, не выполняющими корректных квотинг аргументов.
    • Некоторые макросы, такие как AC_PROG_CC, обычно используемые на начальной стадии работы скрипта configure, оптимизированы и больше не вызывают так много вторичных макросов. Изменение позволяет выявить несколько классов ошибок, как правило, вызванных использованием макроса AC_REQUIRE.
    • Макросы, принимающие списки аргументов, разделённых пробелом, теперь всегда раскрываются с каждым из перечисленных аргументов. Изменение затрагивает макросы AC_CHECK_FILES, AC_CHECK_FUNCS, AC_CHECK_FUNCS_ONCE, AC_CHECK_HEADERS, AC_CHECK_HEADERS_ONCE, AC_CONFIG_MACRO_DIRS, AC_CONFIG_SUBDIRS и AC_REPLACE_FUNCS.
    • В макросе AC_PROG_CC при наличии теперь выбирается компилятор с поддержкой C11 (с откатом до C99 и C89, если не найден), а в AC_PROG_CXX - C++11 с откатом до C++98.

Для каждого пакета программного обеспечения, который использует Autoconf, из шаблона создаётся скрипт настройки, который перечисляет системные возможности, в которых нуждается данный пакет или которые он может использовать.

 

Последние материалы