27.01.2021

Доступен GNU Autoconf 2.70


После восьми лет с момента публикации версии 2.69 представлен выпуск пакета GNU Autoconf 2.70, в котором поставляется набор M4-макросов для создания скриптов автоконфигурации для сборки приложений в различных Unix-подобных системах (на основе подготовленного шаблона выполняется генерация скрипта «configure»).

В новую версию включены изменения, которые потенциально могут привести к нарушению совместимости с существующими скриптами 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 «%sn»‘ и ‘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.

Источник: https://www.opennet.ru/opennews/art.shtml?num=54226

Добавить комментарий