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
.
Наиболее простым способом компиляции данного пакета являются следующие действия:
csh
на старой версии System V,
то вам может понадобиться набрать `sh ./configure' вместо предыдущего
примера, для того, чтобы не допустить выполнения данного скрипта с помощью
csh
.
Работа configure
займет некоторое время. В течении выполнения скрипт
выдает некоторые сообщения, о том какие свойства он проверяет.
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
configure
.
--help
configure
и прекращает
работу.
--quiet
--silent
-q
--srcdir=dir
configure
может автоматически определить этот каталог.
--version
configure
и прекращает работу.
configure
также принимает некоторые другие, не так сильно
полезные ключи.
Go to the first, previous, next, last section, table of contents.