Автор (ы) оригинала | Дэвид Маккензи |
---|---|
Разработчик (и) | Проект 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.
Разработчик указывает желаемое поведение скрипта 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:
Из-за этих ограничений несколько проектов, в которых использовалась система сборки GNU, перешли на другие системы сборки, такие как CMake и SCons.