Autotools

Autotools
Логотип проекта GNU

Autotools, или система сборки GNU,— это набор программных средств, предназначенных для поддержки переносимости исходного кода программ между UNIX-подобными системами[1].

Перенос кода с одной системы на другую может оказаться непростой задачей. Различные реализации компилятора языка Си могут существенно отличаться: некоторые функции языка могут отсутствовать, иметь другое имя или находиться в разных библиотеках. Программист может решить эту задачу, используя макросы и директивы препроцессора, например #if, #ifdef и прочие. Но в таком случае пользователь, компилирующий программу на своей системе должен будет определить все эти макросы, что не так просто, поскольку существует множество разных дистрибутивов и вариаций систем. Autotools вызываются последовательностью команд ./configure && make && make install и решают эти проблемы автоматически.

Система сборки GNU Autotools является частью GNU toolchain и широко используется во многих проектах с открытым исходным кодом. Средства сборки распространяются в соответствии с GNU General Public License с возможностью использования их в коммерческих проектах[2][3].

Содержание

Компоненты GNU Autotools

Схема работы autoconf и automake

В средства сборки входят Autoconf, Automake, и Libtool [4]. Другие средства, используемые с GNU Autotools: make, gettext, pkg-config, и, конечно, GNU Compiler Collection, также называемый GCC.

GNU Autoconf

Autoconf читает файлы configure.in или, что то же, configure.ac, (хотя configure.ac новое название и оно более предпочтительно[5]) и генерирует скрипт для настройки под названием configure. Для обработки файлов autoconf использует GNU реализацию языка макрокоманд m4.

Сгенерированный скрипт настройки запускается пользователем. Он читает файлы с расширением ".in", например Makefile.in, обрабатывает их (выясняя все особенности системы) и получает конечный результат — Makefile.

Autoconf использует некоторые вспомогательные программы, написанные для упрощения работы. Например, Autoheader работает с заголовочными файлами, autoscan исследует код на наличие типичных проблем переносимости и создаёт изначальный файл configure.in.

GNU Automake

Automake читает файлы Makefile.am и создаёт переносимый Makefile, то есть Makefile.in, который затем после обработки скриптом конфигурации становится Makefile и используется утилитой make.

GNU Libtool

Libtool управляет созданием статических и динамических библиотек на разных UNIX-подобных операционных системах.

Gnulib

Gnulib упрощает процесс создания переносимых программ, использующих Autoconf и Automake.

Ограничения средств сборки GNU

Средства сборки используют bash-скрипты для настройки при сборке.

Средства сборки можно использовать как для создания программ для той же архитектуры, на которой производится сборка, так и для кросс-компиляции для иной архитектуры. [1]. Также возможно настроить сборку для компиляции на Windows, используя MinGW или установив Cygwin или MSYS поверх Windows чтобы обеспечить необходимый уровень совместимости для выполнения скрипта настройки.

Средства сборки и скрипт настройки работают, как правило, медленно, потому что вызывают различные программы, такие как компилятор С много раз для проверки наличия различных библиотек, заголовочных файлов, и особенностей языка.

См. также

Сноски

Внешние ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "Autotools" в других словарях:

  • Autotools — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

  • Autotools — Logo GNU Autotools (ou GNU build system) est un terme général utilisé par la communauté anglosaxonne pour désigner l ensemble des outils de build du projet GNU. Autotools n est pas un projet GNU, mais l expression est souvent utilisée à l… …   Wikipédia en Français

  • GNU Autotools — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

  • GNU autotools — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

  • Autoconf — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

  • Autoheader — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

  • Automake — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

  • Configure — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

  • Libtool — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia

  • Makefile.am — Programmablaufplan von autoconf und automake, zwei Tools im GNU Build System Das GNU Build System, auch bekannt als Autotools, ist eine Sammlung von Tools für die Computerprogrammierung, die vom GNU Projekt entwickelt wurden. Diese Tools sind für …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»