Jump to content

Автоконф.

Оригинальный автор(ы) Дэвид Маккензи
Разработчик(и) Проект GNU
Первоначальный выпуск 1991
Стабильная версия
2.72 [ 1 ]  Отредактируйте это в Викиданных / 22 декабря 2023 г .; 7 месяцев назад ( 22 декабря 2023 г. )
Репозиторий
Написано в Перл
Операционная система Кросс-платформенный
Тип Инструмент программирования
Лицензия GNU GPL
Веб-сайт www .gnu .org /программное обеспечение /автоконф /

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

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

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

Обзор использования

[ редактировать ]
Блок-схема Autoconf и Automake . Обратите внимание, что в ранних версиях Autoconf «configure.ac» назывался «configure.in».

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

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, замену синтаксиса оболочки на основе макросов. [ 2 ]

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

  • Общая сложность используемой архитектуры, в большинстве проектов используется многократное повторение. [ 3 ] [ 4 ]
  • Некоторые люди думают, что сценарии настройки, созданные Autoconf, предоставляют только управляемый вручную интерфейс командной строки без какой-либо стандартизации. [ 5 ] Хотя это правда, что некоторые разработчики не соблюдают общепринятые соглашения, такие соглашения существуют и широко используются. [ 6 ]
  • m4 необычен и неизвестен многим разработчикам. Разработчикам необходимо будет изучить его, чтобы расширить Autoconf нестандартными проверками. [ 5 ] [ 7 ]
  • Для слабой обратной и прямой совместимости требуется сценарий-оболочка. [ 8 ]
  • Скрипты, создаваемые Autoconf, обычно большие и довольно сложные. Хотя они ведут обширное журналирование, их отладка все равно может быть затруднена.

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

См. также

[ редактировать ]
  1. ^ Закари Вайнберг (22 декабря 2023 г.). «autoconf-2.72 выпущен [стабильный]» . Проверено 25 декабря 2023 г.
  2. ^ «Портативная оболочка» . Автоконф . Проверено 20 января 2020 г. .
  3. ^ Jump up to: а б Нойндорф, Александр (21 июня 2006 г.). «Почему проект KDE перешел на CMake — и как» .
  4. ^ Камп, Пол-Хеннинг (15 августа 2012 г.). «Поколение, потерянное на базаре» . Очередь АКМ . 10 (8): 20–23. дои : 10.1145/2346916.2349257 . S2CID   11656592 .
  5. ^ Jump up to: а б МакКолл, Эндрю (21 июня 2003 г.). «Остановите безумие autoconf! Зачем нам нужна новая система сборки» .
  6. ^ «Стандарты кодирования GNU» .
  7. ^ Камп, Пол-Хеннинг (20 апреля 2010 г.). «Вы назвали их инструментами для автокрапа . Архивировано из оригинала 11 сентября 2017 г. Проверено 16 августа 2017 г.
  8. ^ Дикки, Томас. «почему я до сих пор использую autoconf 2.13» .
  9. ^ «Blender.org — Системы сборки» . Архивировано из оригинала 2 декабря 2008 г. Проверено 10 июня 2009 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 122b905f2da32ef8b04649cc4417e668__1717838760
URL1:https://arc.ask3.ru/arc/aa/12/68/122b905f2da32ef8b04649cc4417e668.html
Заголовок, (Title) документа по адресу, URL1:
Autoconf - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)