Следующая:Compilation, Следующая:, Предыдущая:Installing Taylor UUCP, Вверх:Installing Taylor UUCP



Compiling Taylor UUCP

Компилирование Taylor UUCP

Если у вас имеются исходные коды дистрибутива, то для начала следует собрать их для вашей системы. Такие версии Unix как Linux, NetBSD, или FreeBSD, часто поставляются с пред компилированными бинарными файлами UUCP. Если Вы используете такие бинарные фалы, то можно сразу перейти к разделу просвещенному конфигурации пакета (смотрите Configuration).

Для того чтобы откомпилировать исходные тексты программы следует выполнить следующие три шага:

  1. Просмотреть самый верхний файл Makefile.in, и установить соответствующие значения для вашей системы. С помощью данных переменных можно настроить каталог, в который устанавливаются программы и пользователя системы, который является владельцем данных программ (обычно пользователем для данной программы является специальный пользователь uucp, а не реальный человек; вероятно данным владельцем программ не должен быть root).
  2. Выполнить скрипт оболочки configure. Данный сценарий был сгенерирован, используя программу autoconf, написанную Дэвидом Макензи (David MacKenzie) из Фонда бесплатного программного обеспечения (Free Software Foundation). На исполнение скрипта configure требуется некоторое время. При этом будет сгенерирован файл config.h, основанный на config.h.in, кроме того, для каждого подкаталога в исходных текстах будет сгенерирован файл Makefile основанный на Makefile.in.

    Скрипту configure можно передать некоторые параметры, используя переменные окружающей среды. Так как скрипт configure при своем выполнении, для того чтобы проверить какие системны доступны, компилирует небольшую тестовую программу, следует указать, как запускается компилятор. Компилятор распознает следующие переменные окружения:

    CC
    Компилятор C. Если данная переменная не установлена, то если configure находит компилятор gcc, то используется компилятор gcc в противном случае используется cc.
    CFLAGS
    Флаги, передаваемые C компилятору при компилировании фактического кода. Если данный параметр не установлен, то configure использует -g.
    LDFLAGS
    Флаги передаваемые С компилятору при линковке. Если данная переменная окружающей среды не установлена, configure использует пустую строку.
    LIBS
    Libraries to pass to the C compiler. If this is not set, Библиотеки передаваемые 'C' компилятору. Если данная переменная не установлена, то скрипт configureиспользует пустую строку.
    INSTALL
    Программа, запускаемая для того, чтобы установить бинарные файлы UUCP. Если данная переменная окружения не установлена, то 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, найти слова, начинающиеся с символов @, и установить их правильно для вашей системы.

  3. 3. Игорь В. Семенюк предоставил данное (слегка отредактированное) замечание о ISC UNIX 3.0. Скрипт 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.
  4. На некоторых версиях BSDI в командной оболочке есть ошибка, которая приводит к тому, что значение по умолчанию для CFLAGS устанавливаются неправильно. Если echo ${CFLAGS--g} выдает на экран g а не -g, то CFLAGS следует устанавливать в среде окружения перед запуском configure. Существует patch BSDI, который устраняет эту ошибку. (Сообщено David Vrona).
  5. На AIX 3.2.5, и возможно на других версиях, последовательность 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).
  6. Следует проверить, что скрипт configure отработал нормально, проверив файл config.h и файлы Makefile.
  7. Отредактируйте policy.h на вашей локальной системе. Комментарии поясняют выбор различных значений. Заданные по умолчанию значения содержат разумные значения, так что, вероятно, изменений не придется вносить.

    Следует решить какой тип файлов конфигурации использовать, дополнительную информацию смотри в Configuration.

    Также следует решить, какой тип spool каталога вы хотите использовать. Если это новая инсталляция рекомендуется установить SPOOLDIR_TAYLOR; в противном случае выберите spool каталог, соответствующий существующему UUCP пакету.

  8. Наберите make, для полной компиляции.

    Файл tstuu.c не является особенно портабельным; если не возможно понять, как его откомпилировать, то нормально его просто игнорировать, так как он используется только для тестирования. Чтобы использовать STREAMS псевдо-терминалы, программа tstuu.c должна быть откомпилирована с ключом -DHAVE_STREAMS_PTYS (данный ключ отсутствует в конфигурационном скрипте).

    Если имеются, какие то другие проблемы, то, вероятно, существует ошибка скрипте configure.

  9. Пожалуйста, сообщайте о существующих проблемах. Если это, возможно, присылайте patch-и, которые решают возникшие проблемы (смотри смотрите Patches).