Сценарий Build самостоятельно определяет архитектуру системы и создает корректный для данной системы файл сборки Makefile. Затем выполняется компиляция sendmail при помощи созданного Makefile.
Если верить документации, выполнение Build - все, что нужно для компиляции sendmail в большинстве систем. Такой способ работает в Red Hat Linux и Solaris 8. Однако гарантий никаких нет. В вашей системе могут использоваться нестандартные каталоги или отсутствовать определенные библиотеки. Может потребоваться уточнить флаги компилятора для вашей системы.
Если у вас есть опыт компиляции sendmail, вы можете испытать соблазн заглянуть в поисках параметров компиляции в файл Makefile, расположенный в каталоге исходных текстов дистрибутива. Возможно, вы даже вспомните, что некогда указывали параметры компиляции именно в этом файле.
Но теперь все иначе. Параметры компилятора устанавливаются в файлах, расположенных в каталоге devtools дистрибутива исходных текстов sendmail.
Параметры компилятора, принимаемые по умолчанию, обычно устанавлива-ются в специальных для каждой ОС файлах из каталога devtools/OS и изме-няются в файлах, создаваемых непосредственно для вашего сервера в катало-ге devtools/Site. Имена файлов devtools/OS основаны на названиях операционных систем; к примеру, файл настройки Solaris 8 называется SunOS5.8.
Если ваша система Solaris 8 отличается от стандартной, создайте собственный файл в каталоге devtools/Site, дайте ему имя site.SunOS5.8.m4. В этом файле сохраните скорректированные настройки. Кроме того, вы можете создать файл site.config.m4 в каталоге devtools/Site, если устанавливаемые параметры компилятора относятся более к особенностям сервера, чем к поправкам на операционную систему. Build находит и использует файлы с такими именами.
Как следует из расширений ,т4 имен данных файлов, команды, используемые для установки параметров компилятора, являются макроопределениями т4, а не простыми параметрами компилятора. В табл. Е.1 перечислены команды т4, используемые в sendmail 8.11.3 для управления процессом компиляции.
Таблица Е.1. т4, параметры компилятора
Команда | Назначение |
confBEFORE | Указывает файлы, которые необходимо создать перед компиляцией |
ConfBLOVARIANT | Запрашивает варианты сборки OPTIMIZED, DEBUG или PURIFY |
COnfBUILDBIN | Путь к вспомогательным исполняемым файлам сборки |
confCC | Имя компилятора С |
Команда | Назначение |
confCCOPTS | Параметры, передаваемые компилятору |
confCOPY | Имя программы, копирующей файлы |
COnfDEPEND.TYPE | Имя файла из devtools/M4/depend, определяющего способ построения зависимостей |
ConfDEPLIBS | Зависимые библиотеки для разделяемых объектов |
confEBINDIR | Путь к программе, исполняемой другими программами |
ConfENVDEF | Флаги -D, передаваемые компилятору |
ConfFORCE_RHAIL | Принудительная установка rmail |
ConfHFDIR | Путь к файлу справки sendmail |
confHFFILE | Имя файла справки |
ConflNCDIRS | Флаги -I, передаваемые компилятору |
COnflNCGRP | Идентификатор группы для включаемых файлов |
conflNCMODE | Файловые права доступа для включаемых файлов |
confINCOWN | Идентификатор пользователя для включаемых файлов |
COnflNCLUDEDIR | Путь установки включаемых файлов |
COnflNSTALL | Программа установки |
COnfINSTALL_RAWMAN | Устанавливать неформатированные страницы руководства |
confLDOPTS | Параметры для редактора связей |
ConfllBDIR | Путь к файлам библиотеки установки |
confLIBDIRS | Флаги -L для редактора связей |
confLIBGRP | Идентификатор группы для библиотек |
confLIBMODE | Файловые права доступа для библиотек |
COnfLIBOWN | Идентификатор пользователя для библиотек |
confLIBS | Флаги -I, передаваемые редактору связей |
COnfLIBSEARCH | Имена библиотек, используемых при связывании |
COnfLIBSEARCHPATH | Путь к библиотекам, используемым при связывании |
confLINKS | Имена логических ссылок на sendmail, к примеру, newaliases |
confLN | Команда, используемая для создания логических ссылок |