Сценарий 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 | Команда, используемая для создания логических ссылок |


