Введение

Автоматический конструктор скриптов конфигурации. GNU Autoconf — это инструмент для создания скриптов конфигурации, необходимых для сборки, установки и упаковки программного обеспечения на компьютерных системах с доступной оболочкой Bourne. Autoconf не зависит от используемых языков программирования, но часто применяется в проектах, использующих C, C++, Fortran, Fortran 77, Erlang или Objective C.

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

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

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

История

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

Критика

Существует критика, утверждающая, что Autoconf использует устаревшие технологии, имеет множество устаревших ограничений и неоправданно усложняет простые сценарии для автора скриптов `configure.ac`. В частности, к часто упоминаемым слабым сторонам Autoconf относятся:
Общая сложность используемой архитектуры, при которой большинство проектов используют множество повторений. Некоторые считают, что скрипты `configure`, генерируемые Autoconf, предоставляют только управляемый вручную интерфейс командной строки без какой-либо стандартизации. M4 является необычным и неизвестным многим разработчикам. Для расширения Autoconf нестандартными проверками разработчикам потребуется его изучить. Слабая обратная и прямая совместимость требует использования оберточного скрипта. Скрипты, генерируемые Autoconf, обычно велики и достаточно сложны. Несмотря на подробное ведение логов, их отладка все еще может быть затруднительной. Из-за этих ограничений несколько проектов, использовавших GNU Build System, перешли на другие системы сборки, такие как CMake и SCons.