Алексей Махоткин

домашняя страница

Autoconf

Go to the first, previous, next, last section, table of contents.


Запуск скриптов configure

@anchor{Invoking configure}

Ниже находятся рекомендации по настройке пакета, использующего скрипт configure. Эти рекомендации можно включить в файл `INSTALL’ вашего пакета. Текстовая версия файла `INSTALL’, которую вы можете использовать, поставляется с Autoconf.

Простая установка

@anchor{Basic Installation}

Вот основные инструкции по установке.

Скрипт configure пытается определить правильные значения для различных, зависящих от системы переменных, которые используются в процессе установки. Он использует эти переменные для создания файлов `Makefile’ в каждом из каталогов пакета. он также может создавать один или несколько файлов `.h’ содержащих зависящие от системы определения. В заключение, он создает скрипт командного процессора с именем `config.status’, который вы можете в дальнейшем запускать для воссоздания текущей настройки, также создается файл `config.cache’, который сохраняет результаты тестов, для ускорения перенастройки, и файл `config.log’, содержащий вывод компилятора (этот файл в основном полезен для отладки configure).

Если для компиляции пакета вам необходимо выполнить нетривиальные вещи, то то пожалуйста попытайтесь определить как configure мог бы проверить как выполнить их, и затем пошлите diff-файл или инструкции на адрес, данный в файле `README’, так что они могут быть рассмотрены для включения в следующий выпуск. Если в некоторых случаях `config.cache’ содержит результаты, которые вы не хотите хранить, то вы можете исправить или удалить его.

Файл `configure.in’ используется для создания скрипта `configure’ программой autoconf. Вам необходимо иметь `configure.in’ только, если вы хотите изменить его или заново создать скрипт `configure’ с помощью более новой версии autoconf.

Наиболее простым способом компиляции данного пакета являются следующие действия:

  1. перейдите в каталог, содержащий исходный код пакета и наберите `./configure’ в командной строке, для того, чтобы настроить пакет для вашей системы. Если вы используете csh на старой версии System V, то вам может понадобиться набрать `sh ./configure’ вместо предыдущего примера, для того, чтобы не допустить выполнения данного скрипта с помощью csh. Работа configure займет некоторое время. В течении выполнения скрипт выдает некоторые сообщения, о том какие свойства он проверяет.
  2. Наберите `make’ для компиляции пакета.
  3. Вы можете набрать `make check’ для запуска любых собственных тестов, которые поставляются вместе с пакетом.
  4. Наберите `make install’ для установки программ и файлов данных и документации.
  5. вы можете удалить исполнимые файлы программ и объектные файлы из каталога с исходными текстами пакета набрав `make clean’. Для удаления файлов созданных configure (так что вы можете скомпилировать пакет с помощью разных компиляторов), наберите `make distclean’. Также существует цель `make maintainer-clean’, но она в основном предназначена для разработчиков программного обеспечения. Если вы используете ее, то вы должны получить все другие программы, для того, чтобы обновлять файлы, которые поставляются с дистрибутивом.

Компиляторы и ключи

@anchor{Compilers and Options}

Некоторые системы требуют необычных ключей для компиляции или компоновки, о которых скрипт configure просто не знает. Вы можете задать начальные значения для переменных configure установив их в среде. Используя командный процессор совместимый с процессором Bourne вы можете задать эти переменные с помощью командной строки, подобной этой:

CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure

или в системах, в которых имеется программа env, вы можете выполнить следующий код:

env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure

Компиляция для нескольких архитектур

@anchor{Multiple Architectures}

Вы можете одновременно скомпилировать пакет для более одного типа компилятора, поместив объектные файлы для каждой из архитектур в отдельный каталог. Для того чтобы сделать это, вы должны использовать такую версию программы make, которая поддерживают переменную VPATH, например, такую как GNU make. Перейдите в каталог, в который вы хотите поместить объектные и исполняемые файлы и запустите оттуда скрипт configure. configure автоматически проверит исходные тексты в каталог, в котором находится configure в также в каталоге `..’.

Если вы используете программу make, которая не поддерживает переменную VPATH, то вы должны одновременно компилировать программу только для одной архитектуры. После того, как вы установили пакет для конкретной архитектуры, используйте правило `make distclean’ до выполнения настройки для другой архитектуры.

Имена для установки

@anchor{Installation Names}

По умолчанию `make install’ установит файлы пакета в `/usr/local/bin’, `/usr/local/man’, и т.д.. Вы можете задать префикс установки, который отличается от `/usr/local’. Это выполняется передачей configure ключа командной строки `–prefix=path.

Вы можете указать разные префиксы установки для специфических архитектуры файлов, и для файлов не зависящих от архитектуры. Если вы зададите configure ключ `–exec-prefix=path, то пакет будет использовать path как префикс для установки программ и библиотек. Документация и другие файлы данных будут использовать обычный префикс.

В добавок, если вы используете необычное расположение каталогов, то вы можете задать ключи, подобные `–bindir=path, для того, чтобы указать различные значения для отдельных типов файлов. Запустите `configure –help’ для получения списка каталогов, которые вы можете задать в командной строке, и списка типов файлов устанавливаемых в каждый из каталогов.

Если пакет поддерживает это, то вы можете установить программу с дополнительными суффиксами или префиксами в имени программы.Это выполняется заданием configure ключа `–program-prefix=PREFIX или `–program-suffix=SUFFIX.

Дополнительные возможности

@anchor{Optional Features}

Некоторые пакеты обращают внимание на ключи `–enable-feature переданные configure, где feature показывает дополнительную часть пакета. Они также могут обращать внимание на ключи `–with-package, где package является чем-то подобным `gnu-as’ или `x’ (для X Window System). В файле `README’ должны быть описаны распознаваемые пакетом ключи `–enable-’ и `–with-’.

Для пакетов, которые использую X Window System, configure обычно может автоматически найти заголовочные файлы и библиотеки X, однако если скрипт не смог определить их расположение, то вы можете запустить configure с ключами `–x-includes=dir и `–x-libraries=dir и указав правильные значения.

Указание типа системы

@anchor{System Type}

Может быть много возможностей, которые configure не сможет определить автоматически, но которые нужны для определения типа системы на которой будет запускать пакет. Обычно configure может выполнить определение типа системы, но если в случае неудачи скрипт выдаст сообщение, говорящее о том, что он не смог определить тип системы, то задайте тип с помощью ключа `–host=type. type может являть либо коротким именем, определяющим тип системы, таким как `sun4’, либо каноническим именем, содержащим 3 поля:

cpu-company-system

загляните в файл `config.sub’ для того, чтобы узнать возможные значения для каждого из полей. Если файл `config.sub’ не включен в состав пакета, то данному пакету не нужно знать тип системы.

Если вы собираете утилиты компилятора для кросс-компиляции, то вы также можете использовать ключ `–target=type для выбора типа системы, для которой эти утилиты будут создавать код, а также ключ `–build=type для выбора типа системы на которой вы компилируете пакет.

Совместное использование значений по умолчанию

@anchor{Sharing Defaults}

Если вы хотите чтобы значения по умолчанию для скриптов configure использовались совместно, то вы можете создать локальный скрипт с именем `config.site’, который задаст значения по умолчанию для таких переменных как CC, cache_file и prefix. configure ищет `prefix/share/config.site’, если он существует, а затем `prefix/etc/config.site’ если он существует. Или вы можете установить переменную среды CONFIG_SITE равную пути к этому скрипту. Предупреждение: не все скрипты configure производят поиск этого скрипта.

Контроль выполнения

@anchor{Operation Controls}

configure распознает следующие ключи командной строки, которые контролируют как он выполняется.

–cache-file=file
Использовать и сохранять результаты тестов в файле file вместо файла `./config.cache’. Для запрещения кэширования установите file равным `/dev/null’, при отладке configure.
–help
Выдает список ключей командной строки configure и прекращает работу.
–quiet
–silent
-q
Не выдает сообщений о том, какие проверки выполняются. Для запрещения всего вывода, перенаправьте вывод в файл `/dev/null’ (сообщения об ошибках все равно будут отображаться).
–srcdir=dir
Ищет исходный текст пакета в каталоге dir. Обычно configure может автоматически определить этот каталог.
–version
Выдает номер версии Autoconf использовавшейся для создания скрипта configure и прекращает работу.

configure также принимает некоторые другие, не так сильно полезные ключи.


Go to the first, previous, next, last section, table of contents.

Comments