Autoconf - Autoconf
Оригинальный автор (ы) | Дэвид Маккензи |
---|---|
Разработчики) | Проект GNU |
изначальный выпуск | 1991 |
Стабильный выпуск | 2.69 / 24 апреля 2012 г. |
Репозиторий | |
Операционная система | Кроссплатформенность |
Тип | Инструмент программирования |
Лицензия | GNU GPL |
Интернет сайт | www |
GNU Autoconf инструмент для производства настроить скрипты для создания, установки и упаковки программного обеспечения в компьютерных системах, где Оболочка Борна доступен.
Autoconf не зависит от используемых языков программирования, но часто используется для проектов, использующих C, C ++, Фортран, Фортран 77, Erlang или Цель-C.
Сценарий configure настраивает программный пакет для установка на конкретной целевой системе. После выполнения серии тестов в целевой системе сценарий настройки генерирует файлы заголовков и makefile из шаблонов, таким образом настраивая программный пакет для целевой системы. Вместе с Automake и Libtool, Autoconf формирует Система сборки GNU, который включает несколько других инструментов, в частности Autoheader.
Обзор использования
Разработчик указывает желаемое поведение скрипта настройки, записывая список инструкций в GNU m4 язык в файле "configure.ac". Библиотека предопределенных m4 макросы доступен для описания общих инструкций сценария настройки. Autoconf преобразует инструкции в "configure.ac" в переносимый сценарий конфигурации. Система, которая будет выполнять сборку, не должна иметь установленного autoconf: autoconf необходим только для сборки сценария конфигурации, который обычно поставляется с программным обеспечением.
История
Autoconf был основан летом 1991 года Дэвидом Маккензи для поддержки его работы в Фонд свободного программного обеспечения. В последующие годы она расширилась, включив в нее улучшения от различных авторов, и стала наиболее широко используемой системой конфигурации сборки для написания переносимых бесплатных или программное обеспечение с открытым исходным кодом.
Подход
Autoconf похож на пакет Metaconfig, используемый Perl. В я делаю система, ранее использовавшаяся X Window System (до X11R6.9) тесно связан, но имеет другую философию.
Подход Autoconf к переносимость это проверить на Особенности, не для версии. Например, собственный компилятор C в SunOS 4 не поддерживает ISO C. Однако пользователь или администратор может установить компилятор, совместимый с ISO C. Подход, основанный исключительно на версиях, не обнаружит присутствие компилятора ISO C, но подход с тестированием функций сможет обнаружить компилятор ISO C, установленный пользователем. Обоснование этого подхода заключается в получении следующих преимуществ:
- сценарий настройки может получить приемлемые результаты в новых или неизвестных системах
- Это позволяет администраторы для настройки своих компьютеров и использования сценария настройки
- нет необходимости отслеживать мельчайшие детали версий, номеров патчей и т. д., чтобы выяснить, поддерживается ли конкретная функция или нет
Autoconf предоставляет обширную документацию о непереносимости многих конструкций оболочки POSIX на более старые оболочки и ошибки в них. Он также предоставляет M4SH, замену синтаксиса оболочки на основе макросов.[1]
Критика
Существует некоторая критика, утверждающая, что Autoconf использует устаревшие технологии, имеет множество устаревших ограничений и излишне усложняет простые сценарии для автора configure.ac скрипты. В частности, часто упоминаемыми слабыми местами Autoconf являются:
- Общая сложность используемой архитектуры, в большинстве проектов используется многократное повторение.[2][3]
- Сгенерированный 'configure' записывается в Оболочка Борна и поэтому создание Makefile происходит медленно.
- Некоторые люди думают, что скрипты configure, сгенерированные autoconf, предоставляют только управляемый вручную интерфейс командной строки без какой-либо стандартизации.[4] Хотя это правда, что некоторые разработчики не соблюдают общие соглашения, такие соглашения существуют и широко используются.[5]
- M4 необычен и неизвестен многим разработчикам. Разработчикам нужно будет изучить его, чтобы расширить autoconf с помощью нестандартных проверок.[4][6]
- Для слабой обратной и прямой совместимости требуется сценарий-оболочка.[7]
- Скрипты, созданные Autoconf, обычно большие и довольно сложные. Несмотря на то, что они производят обширное ведение журнала, их отладка может быть сложной.
Из-за этих ограничений несколько проектов, в которых использовалась система сборки GNU, перешли на другие системы сборки, такие как CMake и SCons.[2][8]
Смотрите также
- CMake - Альтернативная система сборки
- Мезон Другая система сборки
- Настроить скрипт
- Система сборки GNU
- pkg-config - Обнаружение зависимостей пакетов
использованная литература
- ^ «Портативный снаряд». Autoconf. Получено 20 января 2020.
- ^ а б Нойндорф, Александр (21.06.2006). «Почему проект KDE перешел на CMake - и как».
- ^ Камп, Поул-Хеннинг (15 августа 2012 г.). «Поколение, потерянное на базаре». Очередь ACM. 10 (8).
- ^ а б Макколл, Эндрю (21.06.2003). «Остановите безумие autoconf! Зачем нам нужна новая система сборки».
- ^ «Стандарты кодирования GNU».
- ^ Камп, Поул-Хеннинг (20 апреля 2010 г.). "Ты позвонил им автокреп инструменты?". Архивировано из оригинал на 2017-09-11. Получено 2017-08-16.
- ^ Дики, Томас. "почему я до сих пор использую autoconf 2.13".
- ^ «Архивная копия». Архивировано из оригинал на 2008-12-02. Получено 2009-06-10.CS1 maint: заархивированная копия как заголовок (ссылка на сайт)
внешняя ссылка
- Официальный веб-сайт
- Архив макросов GNU Autoconf
- Козья книга домашняя страница (также известная как Autobook)
- Использование Automake и Autoconf с C ++
- Использование библиотек C / C ++ с Automake и Autoconf.
- Домашняя страница Autotoolset
- Autotools: руководство по Autoconf, Automake и Libtool для практиков.
- Автоинструменты Mythbuster