Compiling sendmail
All
sendmail(1M)
source is in the src subdirectory.
To compile sendmail, cd into the
src directory and enter:
./Build
This leaves the binary in an appropriately named subdirectory,
for example, obj.BSD-OS.2.1.i386.
It works for multiple object versions compiled out of the same directory.
Modifying the makefile
sendmail supports two different formats for the local (on disk) version of
databases,
notably the aliases database. At least one of these should be
defined if at all possible.
NDBM-
The ``new DBM'' format, available on nearly all systems around
today. This was the preferred format prior to 4.4BSD. It allows
such complex things as multiple databases and closing a currently open
database.
NEWDB-
The Berkeley DB package.
If you have this, use it. It allows
long records, multiple open databases, real in-memory caching, and so forth.
You can define this in conjunction with
NDBM;
if you do,
old alias databases are read, but when a new database is created it will be in
NEWDB format. If you have NEWDB, NDBM, and
NIS defined, and if the alias file name includes the substring
/yp/, sendmail will create both new and old versions
of the alias file during a
newaliases(1M)
command. This is required because the Sun NIS/YP system
reads the DBM version of the alias file.
If neither of these are defined, sendmail reads the alias file
into memory on every invocation. This can be slow and should be avoided.
There are also several methods for remote database access:
NIS-
Sun's Network Information Services (formerly YP).
NISPLUS-
Sun's NIS+ services.
NETINFO-
NeXT's NetInfo service.
HESIOD-
Hesiod service (from Athena).
Other compilation flags are set in <conf.h> and should be predefined
for you unless you are porting to a new environment.
Compilation and installation
After making the local system configuration described above, you should be
able to compile and install the system.
The script
Build
is the best approach on most systems:
./Build
This will use
uname(1)
to
create a custom Makefile
for your environment.
If you are installing in the standard places,
you should be able to install using:
./Build install
This should install the binary in /usr/lib and create links from
/usr/bin/newaliases and /usr/bin/mailq to
/usr/lib/sendmail. On 4.4BSD systems, it will also format
and install manual pages.
© 2000 The Santa Cruz Operation, Inc. All rights reserved.