Autoconf

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Autoconf
Логотип программы Autoconf
Скриншот программы Autoconf
Autoconf 2.68 настраивает Wine для сборки
Тип инструментальное программное обеспечение
Разработчик проект GNU
Написана на perl, m4
Операционная система кроссплатформенное программное обеспечение
Первый выпуск 1991
Последняя версия
Репозиторий git.savannah.gnu.org/cgi…
Лицензия GPL
Сайт gnu.org/software/autocon…
Логотип Викисклада Медиафайлы на Викискладе

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

Схема взаимодействия autoconf и automake

Скрипты конфигурации, созданные Autoconf, при работе не требуют вмешательства пользователя; обычно они даже не требуют, чтобы были заданы аргументы, указывающие тип системы. Вместо этого такие скрипты тестируют наличие каждого средства, которое может понадобиться данному пакету. В ходе выполнения каждой из проверок скрипты печатают отчёт о проводимых проверках. Таким образом эти скрипты хорошо справляются с системами, которые являются гибридами или специализированными вариантами большинства видов UNIX. Таким образом, пропадает необходимость в сопровождении файлов со списком всех возможностей всех версий каждого варианта UNIX.

Для каждого пакета программного обеспечения, который использует Autoconf, из шаблона создаётся скрипт настройки, который перечисляет системные возможности, в которых нуждается данный пакет или которые он может использовать. После того, как код на языке командного процессора, распознающий и обрабатывающий ту или иную возможность, написан, Autoconf позволяет использовать этот код во всех пакетах, которые могут использовать (или нуждаются) в соответствующей возможности. Если позже по каким-то причинам понадобится изменить код командного процессора, то изменения необходимо будет внести только в одно место; все скрипты настройки могут быть автоматически пересозданы, чтобы отразить изменения кода.

Существует несколько разных задач, относящихся к созданию переносимого программного обеспечения, которые в настоящее время нельзя решить средствами Autoconf. Среди них — автоматическое создание файлов Makefile со всеми необходимыми стандартными целями, а также предоставление замены стандартных библиотечных функций и заголовочных файлов в тех системах, в которых эти функции или файлы отсутствуют. Однако работа в этом направлении ведётся и эти возможности могут появиться в будущих версиях.

Autoconf навязывает некоторые ограничения на имена макросов, которые используются в директивах #ifdef программ на языке C.

Для создания скриптов с помощью Autoconf требуется наличие программы GNU m4. Он пользуется возможностями, которых нет в некоторых UNIX-версиях программы m4. Он также превышает внутренние ограничения некоторых версий m4, включая GNU m4 версии 1.0. Вам необходимо использовать версию 1.1 (или более позднюю) программы GNU m4. Версии 1.3 и более поздние будут работать гораздо быстрее, чем версии 1.1 или 1.2.

CFLAGS и CXXFLAGS являются или именами переменных среды, или переменными Makefile, которые устанавливаются для указания дополнительных параметров, передаваемых компилятору в процессе создания программного обеспечения.

Эти переменные обычно указываются внутри Makefile и затем выполняют вспомогательную роль по отношению к командной строке при вызове компилятора. Если они не указаны в Makefile, то они будут считаны из среды, если они там указаны. Инструменты наподобие конфигурационного скрипта ./configure утилиты autoconf обычно берут их из среды и записывают их в создаваемые Makefiles.

CFLAGS позволяет добавлять параметры для компилятора языка Си, а CXXFLAGS предполагается, что будет использоваться при вызове компилятора языка C++. Аналогично, переменная CPPFLAGS указывается для параметров, передаваемых препроцессору Си.

Эти переменные в основном используются для указания параметров компилятора при оптимизации или отладке, например: -g, -O2 или (что специфично для GCC) -march=athlon.

Утилита, предоставляющая интерфейс для получения информации об установленных программных библиотеках, включающую в себя параметры для C или C++ компилятора, параметры для компоновщика, а также версию пакета[2]. Информация берется из .pc-файла, создаваемого менеджером пакетов (к примеру RPM или deb). Изначально написана James Henstridge, затем переписана Хэвоком Пеннингтоном.

Примечания

[править | править код]
  1. Weinberg Z. autoconf-2.72 released [stable] — 2023.
  2. John Calcote. Using pkg-config with Autotools // Autotools: A Practitioner's Guide to GNU Autoconf, Automake, and Libtool. — No Starch Press, 2010. — P. 299. — 332 p. — ISBN 9781593272067.

Литература

[править | править код]