J. Общие инструкции configure
Базовая установка
==================
Общие инструкции по установке.
Скрипт `configure' пытается угадать правильные значения различных системно-зависимых переменных,
используемых в ходе компиляции. Он использует эти значения для создания файлов `Makefile' в каждой
директории пакета. Он также создаёт один или несколько файлов `.h', содержащих системно-зависимые
определения. Наконец, он создаёт скрипт `config.status', который можно запустить при необходимости
для пересоздания текущей конфигурации, файл `config.cache', в котором сохраняются результаты
проведённых тестов для ускорения переконфигурации, и файл `config.log', содержащий вывод
компилятора (полезен, в основном, для отладки `configure').
Если для компиляции пакета Вам требуется сделать какие-то нестандартные вещи, попытайтесь
выяснить, каким образом `configure' может проверить возможность их выполнения, и отправьте diff-
файлы или инструкции на адрес, данный в `README' для того, чтобы они могли быть рассмотрены в
следующих релизах. Если в файле `config.cache' содержатся результаты тестирования, которые Вы не
хотели бы сохранить, можно удалить или отредактировать его.
Файл `configure.in' используется для создания скрипта `configure' программой, называемой
`autoconf'. `configure.in' может Вам понадобиться только в случае, если Вы захотите изменить его
или пересоздать скрипт `configure', используя более новую версию `autoconf'.
Простейший путь компиляции данного пакета:
1. Выполните `cd' в директорию, содержащую исходный код пакета, и введите `./configure' для
настройки пакета под Вашу систему. Если Вы используете `csh' на старой версии System V, вместо
этого, возможно, потребуется ввести `sh ./configure', чтобы не дать `csh' самой выполнить
`configure'.
Выполнение `configure' займёт некоторое время. Во время выполнения скрипт выводит некоторые
сообщения о том, какие функции он проверяет.
2. Введите `make' для компиляции пакета.
3. При необходимости введите `make check' для запуска тестов самопроверки, поставляемых с пакетом.
4. Введите `make install' для установки программ, других файлов с данными и документацией.
5. Чтобы удалить бинарники программ и объектные файлы из директории с исходным кодом, можно
ввести `make clean'. Чтобы удалить также файлы, созданные `configure' (для того, чтобы можно
было собрать пакет для различных типов компьютеров), введите `make distclean'. Есть также
возможность запуска `make maintainer-clean', но данная возможность предназначена главным
образом для разработчиков пакета. Если Вы используете её, Вам могут понадобиться средства для
восстановления файлов, полученных с дистрибутивом.
Компиляторы и опции
=====================
Некоторые системы требуют нестандартных опций компиляции или компоновки, о которых не знает
скрипт `configure'. Вы можете дать `configure' начальные значения переменных, установив их в
окружении. При использовании Bourne-совместимых оболочек Вы можете сделать это в командной строке
таким образом:
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
На системах, в которых есть программа `env', можно сделать это таким образом:
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
Компиляция для нескольких архитектур
====================================
Вы можете компилировать пакет для более чем одного типа компьютеров одновременно путём
размещения объектных файлов для каждой архитектуры в их собственную директорию. Для этого Вам нужно
использовать версию `make', поддерживающую переменную `VPATH', такую как GNU `make'. Выполните `cd'
в директорию, объектные и запускаемые файлы из которой Вы хотите применить, и запустите скрипт
`configure'. `configure' автоматически проверит исходный код в директории, в которой он находится,
и в директории `..'.
Если Вы используете `make', не поддерживающий переменную `VPATH', Вам придётся компилировать
пакет в директории с исходным кодом для каждой архитектуры отдельно. После установки пакета для
одной архитектуры выполните `make distclean' перед переконфигурацией для другой архитектуры.
Пути и имена при установке
==================
По умолчанию `make install' будет устанавливать файлы пакета в `/usr/local/bin', `/usr/local/man',
и т.д. Можно задать префикс установки, отличный от `/usr/local' с помощью опции `--prefix=PATH'
скрипта `configure'.
Можно задать разные префиксы установки для архитектурно-зависимых и архитектурно-независимых
файлов. Если Вы передаёте `configure' опцию `--exec-prefix=PATH', PATH будет использован в пакете в
качестве префикса для установки программ и библиотек. Документация и другие файлы с данными будут
по прежнему использовать обычный префикс.
Кроме того, если Вы используете нестандартное расположение директорий, можно задать опции типа
`--bindir=PATH' для указания различных значений для конкретных типов файлов. Запустите
`configure --help' для получения списка директорий, которые Вы можете задать, и типов файлов,
которые будут помещены в них.
Если пакет поддерживает это, можно указать, чтобы программы при установке получали
дополнительный префикс или суффикс к их именам, передавая `configure' опции
`--program-prefix=PREFIX' или `--program-suffix=SUFFIX'.
Дополнительные функции
=================
Некоторые пакеты обращают внимание на опции `configure' `--enable-FEATURE', где 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', чтобы указать их местоположение.
Указание типа системы
==========================
Могут встречаться некоторые особенности, с которыми `configure' не может разобраться
автоматически, но которые требуется определить для того типа хоста, на котором пакет будет
работать. Обычно `configure' сам способен определить это, но если он выводит сообщение о том, что
не может угадать тип хоста, задайте его с помощью опции `--host=TYPE'. TYPE может быть либо
коротким именем типа системы, таким как `sun4', либо каноническим именем из трёх полей:
CPU-COMPANY-SYSTEM
В файле `config.sub' перечислены возможные значения для каждого поля. Если файла `config.sub' нет в
составе пакета, значит данному пакету не требуется знать тип хоста.
Если Вы создаёте средства для кросс-платформенной компиляции, Вы можете также воспользоваться
опцией `--target=TYPE', чтобы выбрать тип системы, для которой будет компилироваться код, и опцию
`--build=TYPE', чтобы выбрать тип системы, на которой Вы компилируете пакет.
Значения по умолчанию для использования в нескольких сборках
================
Если Вы хотите задать значения по умолчанию скрипта `configure' для дальнейшей сборки на других
компьютерах, Вы можете создать сценарий оболочки, специфичный для Вашей системы, называемый
`config.site', где задаются значения по умолчанию для переменных типа `CC', `cache_file' и
`prefix'. `configure' изучает `PREFIX/share/config.site', если таковой существует, затем
`PREFIX/etc/config.site', если таковой с уществует. Либо Вы можете задать переменную окружения
`CONFIG_SITE' для указания местонахождения специфичного для Вашей системы сценария.
Предупреждение: не все скрипты `configure' осуществляют поиск специфичного для Вашей системы
сценария.
Контроль над ходом работы
==================
`configure' распознаёт следующие опции контроля над ходом своей работы:
`--cache-file=FILE'
Использовать и сохранять результаты тестов в FILE вместо `./config.cache'. Для отключения
кэширования при отладке `configure', установите FILE в `/dev/null'.
`--help'
Вывести список всех опций `configure' и завершить работу.
`--quiet'
`--silent'
`-q'
Не выводить сообщения о выполняемых проверках. Чтобы пресечь все сообщения, поступающие на
стандартный вывод, перенаправьте его в `/dev/null' (это не пресечёт вывода сообщений об
ошибках).
`--srcdir=DIR'
Искать исходный код пакета в директории DIR. Обычно `configure' способен определить эту
директорию автоматически.
`--version'
Вывести версию Autoconf, которая использовалась для создания скрипта `configure', и завершить
работу.
`configure' также принимает некоторые другие, не используемые широко опции.