Autoconf

редактировать
Autoconf
Heckert GNU white.svg
Автор (ы) оригинала Дэвид Маккензи
Разработчик (и) Проект GNU
Первоначальный выпуск1991
Стабильный выпуск 2.69 / 24 апреля 2012 г.; 8 лет назад (24.04.2012)
Репозиторий Отредактируйте это в Викиданных
Операционная система Кросс-платформенная
Тип Инструмент программирования
Лицензия GNU GPL
Веб-сайтwww.gnu.org / software / autoconf /

GNU Autoconf - это инструмент для создания скриптов конфигурации для сборки, установки и упаковки программного обеспечения в компьютерных системах, где доступна оболочка Борна.

Autoconf не зависит от используемых языков программирования, но он часто используется для проектов, использующих C, C ++, Fortran, Fortran 77, Erlang или Objective-C.

Сценарий конфигурации настраивает программный пакет для установки в конкретной целевой системе. После выполнения серии тестов в целевой системе сценарий configure генерирует файлы заголовков и makefile из шаблонов, таким образом настраивая программный пакет для целевой системы. Вместе с Automake и Libtool Autoconf образует GNU Build System, которая включает несколько других инструментов, в частности Autoheader.

Содержание
  • 1 Обзор использования
  • 2 История
  • 3 Подход
  • 4 Критика
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки
Обзор использования
Блок-схема autoconf и automake. Обратите внимание, что «configure.ac» назывался «configure.in» в ранних версиях autoconf.

Разработчик указывает желаемое поведение скрипта configure, написав список инструкций на языке GNU m4 в файле "configure.ac". Библиотека предопределенных макросов m4 доступна для описания общих инструкций сценария настройки. Autoconf преобразует инструкции в "configure.ac" в переносимый сценарий конфигурации. В системе, которая будет выполнять сборку, не обязательно должен быть установлен autoconf: autoconf нужен только для сборки скрипта configure, который обычно поставляется с программным обеспечением.

История

Autoconf был основан летом 1991 года Дэвидом Маккензи для поддержки его работы в Free Software Foundation. В последующие годы в нее были внесены усовершенствования различных авторов, и она стала наиболее широко используемой системой конфигурации сборки для написания переносимого бесплатного программного обеспечения или программного обеспечения с открытым исходным кодом.

Подход

Autoconf похож на Пакет Metaconfig, используемый Perl. Система imake, ранее использовавшаяся в X Window System (до X11R6.9), тесно связана, но имеет другую философию.

Подход Autoconf к переносимости заключается в проверке функций, а не для версий. Например, собственный компилятор C в SunOS 4 не поддерживает ISO C. Однако пользователь или администратор может установить компилятор, совместимый с ISO C. Подход, основанный исключительно на версиях, не обнаружит наличие компилятора ISO C, но подход с тестированием функций сможет обнаружить компилятор ISO C, установленный пользователем. Обоснование этого подхода состоит в том, чтобы получить следующие преимущества:

  • сценарий настройки может получить приемлемые результаты в новых или неизвестных системах
  • он позволяет администраторам настраивать свои машины и настраивать скрипт использует преимущества настроек
  • , нет необходимости отслеживать мельчайшие детали версий, номеров патчей и т. д., чтобы выяснить, поддерживается ли конкретная функция или нет

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

Критика

Существует некоторая критика, в которой говорится, что Autoconf использует устаревшие технологии, имеет множество устаревших ограничений и усложняет простые сценарии без надобности для автора скриптов configure.ac. В частности, часто упоминаются слабые места Autoconf:

  • Общая сложность используемой архитектуры, в большинстве проектов используется несколько повторений.
  • Сгенерированный 'configure' записывается в оболочке Bourne и, следовательно, в Makefile генерация выполняется медленно.
  • Некоторые люди думают, что сценарии 'configure', сгенерированные autoconf, предоставляют только управляемый вручную интерфейс командной строки без какой-либо стандартизации. Хотя это правда, что некоторые разработчики не соблюдают общие соглашения, такие соглашения действительно существуют и широко используются.
  • M4 необычен и неизвестен многим разработчикам. Разработчикам нужно будет изучить его, чтобы расширить autoconf с помощью нестандартных проверок.
  • Для слабой обратной и прямой совместимости требуется сценарий-оболочка.
  • Сценарии, созданные Autoconf, обычно большие и довольно сложные. Несмотря на то, что они производят обширное ведение журнала, их отладка может быть затруднена.

Из-за этих ограничений несколько проектов, в которых использовалась система сборки GNU, перешли на другие системы сборки, такие как CMake и SCons.

См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-12 19:11:18
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте