Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru

Система конфигурирования и сборки GNU

Система конфигурирования и сборки GNU

Иан Ланс Тейлор

Файлы

Сборочные файлы

В этом разделе описываются файлы, которые создаются программой configure во время сборки. Эти файлы будет видеть тот, кто будет собирать пакет.

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

Схема сборочных файлов

На схеме изображены файлы, которые создаются во время сборки. Файл `config.status' одновременно является создаваемым файлом и шелл-скриптом, который запускается для создания других файлов, что и пытается отобразить рисунок.

Схема сборочных файлов

Описание сборочных файлов

Здесь описываются файлы, которые создаются во время сборки.

`config.status'
Первый шаг при сборке пакета — это запуск скрипта `configure'. Скрипт `configure' создает файл `config.status', который сам является шелл-скриптом. Когда вы впервые запускаете `configure', он автоматически запустит `config.status'. `Makefile', созданный из сгенерированного automake-ом `Makefile.in', будет содержать правила по повторному автоматическому запуску `config.status' всякий раз, когда понадобится пересоздание каких-то файлов, у которых изменились входные данные.
`Makefile'
Это — файл, который читается программой make при сборке программы. Скрипт `config.status' преобразовывает `Makefile.in' в `Makefile'.
`config.h'
Этот файл определяет макрос препроцессора C, который может использовать код C для корректировки его поведения на различных системах. Скрипт `config.status' преобразовывает `config.in' в `config.h'.
`config.cache'
Этот файл не укладывается в чёткую схему и я опустил его. Он используется скриптом `configure' для кэширования результатов между запусками. Это может значительно увеличить скорость. Если вы так изменяете `configure.in', что результаты старых тестов должны измениться (может быть добавили новую библиотеку в `LDFLAGS'), то вам нужно удалить `config.cache', чтобы заставить тесты перезапуститься.
В руководстве по autoconf объясняется, как установить файл кэша для местной специфики. Это может ускорить запуск скриптов `configure' на вашей системе.
`stamp.h'
Этот файл, который я опустил на схеме, похож на `stamp-h.in'. Он используется как файл, содержащий отметку времени и показывающий, является ли `config.h' актуальным. Это полезно, поскольку `config.h' зависит от `config.status', а `config.status' можно легко изменить таким способом, который никак не проявится в `config.h'.

Файлы поддержки

Система конфигурирования и сборки GNU требует, чтобы в вашу дистрибуцию были включены несколько файлов поддержки. Обычно вам нет необходимости делать это самостоятельно. Если вы используете систему Cygnus, они, скорее всего, уже включены. В противном случае они должны быть инсталлированы в ваших исходниках с помощью `automake' (с опцией `--add-missing') и `libtoolize'.

Вам не следует помещать файлы поддержки в директорию верхнего уровня. Вы должны положить их в поддиректорию и использовать макрос `AC_CONFIG_AUX_DIR' в `configure.in', чтобы сообщить `automake' и скрипту `configure', где их искать.

В этом разделе я опишу файлы поддержки для того, чтобы вы знали об их существовании и знали, зачем они нужны.

`ABOUT-NLS'
Добавляется automake, если вы используете gettext. Является файлом документации о проекте gettext.
`ansi2knr.c'
Используется сгенерированным automake `Makefile'-ом, если в `Makefile.am' вы указали `ansi2knr' в `AUTOMAKE_OPTIONS'. Это разрешает компилировать код ANSI C компилятором K&R.
`ansi2knr.1'
Страница man, которая сопровождает `ansi2knr.c'.
`config.guess'
Шелл-скрипт, который определяет конфигурационное имя для той системы, в которой запускается.
`config.sub'
Шелл-скрипт, который приводит введённое пользователем конфигурационное имя в соответствие со стандартом.
`elisp-comp'
Используется для компиляции файлов Emacs LISP.
`install-sh'
Шелл скрипт, который устанавливает программу. Он используется в том случае, если скрипт configure не может найти куда установить бинарник.
`ltconfig'
Используется libtool. Является шелл-скриптом, который конфигурирует libtool под конкретную систему, на которой используется.
`ltmain.sh'
Используется libtool. Он, фактически, является скриптом libtool, который после конфигурирования с помощью `ltconfig' используется для сборки библиотеки.
`mdate-sh'
Шелл-скрипт, используемый сгенерированным automake `Makefile'-ом для красивого вывода времени модификации файла. Это используется для ведения номеров версий файлов texinfo.
`missing'
Шелл-скрипт, который используется при отсутствии какой-нибудь утилиты. Он используется automake при генерации `Makefile' во избежание временных проблем некоторого рода.
`mkinstalldirs'
Шелл-скрипт, который создает директорию вместе со всеми ее родительскими директориями. Он используется для инсталляции `Makefile' при его генерации с помощью automake.
`texinfo.tex'
Требуется, если у вас есть какие-то файлы Texinfo. Он используется при конвертации файлов в DVI с помощью `texi2dvi' и TeX.
`ylwrap'
Шелл-скрипт, используемый сгенерированным automake `Makefile'-ом для запуска таких программ как `bison', `yacc', `flex' и `lex'. Эти программы используются для создания выходных файлов с фиксированными именами, а скрипт `ylwrap' запускает их в поддиректории во избежание конфликтов, связанных с именами файлов, при параллельной сборке программ.

Назад Вперед
Файлы Имена конфигурации

Перевод: Дмитрий Скоробогатов, 10.12.2011.
Оригинальный текст можно найти по адресу http://www.airs.com/ian/configure/configure_3.html.


Предыдущие публикации:

Биржа долевых инвестиций SIMEX.

Последнее редактирование: 2011-12-10 17:24:07

Метки материала: файлы, gnu, система конфигурирования, сборочные файлы, файлы поддержки, система конфигурирования и сборки, компиляция, проект gnu, разработка по, soft, программное обеспечение, software, спо, документация для программиста, программное обеспечение по

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2017, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.