Следующая:Compilation, Следующая:Testing the Compilation, Предыдущая:Installing Taylor UUCP, Вверх:Installing Taylor UUCP
Компилирование Taylor UUCP
Если у вас имеются исходные коды дистрибутива, то для начала следует собрать их для вашей системы. Такие версии Unix как Linux, NetBSD, или FreeBSD, часто поставляются с пред компилированными бинарными файлами UUCP. Если Вы используете такие бинарные фалы, то можно сразу перейти к разделу просвещенному конфигурации пакета (смотрите Configuration).
Для того чтобы откомпилировать исходные тексты программы следует выполнить следующие три шага:
Makefile.in
, и установить
соответствующие значения для вашей системы. С помощью данных
переменных можно настроить каталог, в который устанавливаются
программы и пользователя системы, который является владельцем
данных программ (обычно пользователем для данной программы
является специальный пользователь uucp
, а не реальный человек;
вероятно данным владельцем программ не должен быть root
).
configure
. Данный сценарий был
сгенерирован, используя программу autoconf
, написанную Дэвидом
Макензи (David MacKenzie) из Фонда бесплатного программного
обеспечения (Free Software Foundation). На исполнение скрипта
configure требуется некоторое время. При этом будет сгенерирован
файл config.h
, основанный на config.h.in
, кроме того, для
каждого подкаталога в исходных текстах будет сгенерирован файл
Makefile
основанный на Makefile.in
.
Скрипту configure
можно передать некоторые параметры, используя
переменные окружающей среды. Так как скрипт configure
при своем
выполнении, для того чтобы проверить какие системны доступны,
компилирует небольшую тестовую программу, следует указать, как
запускается компилятор. Компилятор распознает следующие переменные
окружения:
CC
configure
находит компилятор gcc
, то используется
компилятор gcc
в противном случае используется cc
.
CFLAGS
configure
использует -g
.
LDFLAGS
configure
использует пустую строку.
LIBS
configure
использует
пустую строку.
INSTALL
configure
ищет программу BSD install
, и если такая
программа найдена, то данная переменная устанавливается в
install -c
; в противном случае будет использоваться
программа cp
.
Предположим, например что требуется установить переменную
окружения CC
в rcc
. Если используются командные оболочки sh
,
bash
, или ksh
, то для вызова скрипта configure
следует
использовать CC=rcc configure
. Если в качестве командной
оболочки используется программа csh
, то следует запустить
setenv CC rcc; sh configure
.
На некоторых системах может быть стоит использовать LIBS=-lmalloc
.
На версиях Unix от Xenix не следует указывать LIBS=-lx
, потому
что при этом будут использоваться неправильные версии
некоторых процедур; если требуется использовать -lx
, то это
следует указывать следующим образом: LIBS =-lc -lx
.
Если configure
заканчивается неудачно по некоторым причинам или
у вас имеется очень нестандартная система, то данную систему можно
настроить вручную. Для этого файл config.h.in
следует
скопировать в config.h
, и отредактировать. Затем для каждого
подкаталога (верхнего каталога, подкаталогов lib
, unix
, и
uuconf
) скопировать файл Makefile.in
в Makefile
, найти
слова, начинающиеся с символов @, и установить их правильно для
вашей системы.
configure
по умолчанию передает
-posix
компилятору gcc
. Однако, использование опции -posix
заменяет окружение на POSIX, а в ISC 3.0, значение по умолчанию
для POSIX_NO_TRUNC
равно 1. Это может вести к проблеме, когда
uuxqt
выполняет программу 'rmail'. Программа IDA sendmail
имеет конфигурационные файлы dbm, называемые mailertable.{dir,
pag}
. Отметим, что длина данных имен файлов составляет 15
символов. Когда программа uuxqt
, откомпилированная с -posix
выполняет программу rmail
, которая в свою очередь запускает
sendmail
, последняя в свою очередь выполняется также в окружении
POSIX. Это приводит к тому что sendmail
, генерирует ошибки
'error opening 'M' database: name too long' (mailertable.dir)
.
Это довольно непонятное поведение и у меня потребовался день,
чтобы выяснить причину. Не стоит использовать опцию -posix
;
а вместо этого следует запускать gcc
с опцией -D_POSIX_SOURCE
,
и добавлять -lcposix
к LIBS
.
CFLAGS
устанавливаются неправильно. Если echo ${CFLAGS--g}
выдает на
экран g
а не -g
, то CFLAGS
следует устанавливать в среде
окружения перед запуском configure
. Существует patch BSDI,
который устраняет эту ошибку. (Сообщено David Vrona).
cc -E
не работает, при этом выдается сообщение Option NOROCONST
is not valid
. Это следует проверить перед запуском configure
,
например touch /tmp/foo.c; cc -E /tmp/foo.c
. При этом может быть
выдано предупреждение о том, что файл, является пустым, но при
этом не должно быть сообщения Option NOROCONST
. The workaround
is to remove the ,noroconst
entry from the options
clause in
the cc
stanza in /etc/xlc.cfg
. (Reported by Chris Lewis).
configure
отработал нормально,
проверив файл config.h
и файлы Makefile
.
policy.h
на вашей локальной системе.
Комментарии поясняют выбор различных значений. Заданные по
умолчанию значения содержат разумные значения, так что,
вероятно, изменений не придется вносить.
Следует решить какой тип файлов конфигурации использовать, дополнительную информацию смотри в Configuration.
Также следует решить, какой тип spool каталога вы хотите использовать.
Если это новая инсталляция рекомендуется установить
SPOOLDIR_TAYLOR
; в противном случае выберите spool каталог,
соответствующий существующему UUCP пакету.
make
, для полной компиляции.
Файл tstuu.c
не является особенно портабельным; если не возможно
понять, как его откомпилировать, то нормально его просто
игнорировать, так как он используется только для тестирования.
Чтобы использовать STREAMS псевдо-терминалы, программа tstuu.c
должна быть откомпилирована с ключом -DHAVE_STREAMS_PTYS
(данный
ключ отсутствует в конфигурационном скрипте).
Если имеются, какие то другие проблемы, то, вероятно, существует
ошибка скрипте configure
.