WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
Логотип проекта 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, и, конечно, GCC и binutils.

GNU Autoconf

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

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

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

GNU Automake

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

GNU Libtool

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

Gnulib

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

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

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

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

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

См. также

Сноски

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

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии