After you have finished tuning Makefile, you are ready to build sendmail. First (especially if you are building as root), back up in the src directory run:
# ./makesendmail -n
This displays all the commands that make will generate
without actually executing them. If all looks well, run makesendmail
again, this time without the -n
.
If, when you compiled
sendmail, the linker reported _res_* routines as missing,
you need to specify the resolver library with -lresolv
:
LDADD= -ldbm -lcompat -lutil -lkvm-lresolv
This shows one way to include that library with the V8 Makefile. Another way might look like this:
# libraries required on your system LIBS= /usr/local/lib/libresolv.a
To ensure that sendmail achieves its optimum use of lookups,
make sure that your resolver library is derived from the latest BIND release:
BIND 4.9.
[9]
You will also need to include -l44bsd
on the LIBS= line
if you are running BIND 4.9.
[9] 4.8.3 is also good. 4.9 is available via anonymous FTP from ftp.vix.com.
The tricky part is finding out which resolver library your system supports. With SunOS systems, for example, resolver support in the standard C library uses nis for name resolution. Although this setup may be good for most applications, it is inappropriate for sendmail. There is a libresolv.a, but it is based on BIND 4.3 and so should probably be replaced with a newer version.
If your resolver library is not the correct one, you need to compile and install the newest version. You should do this even if it is used only by sendmail.
If you are running an old (pre V4.9) resolver library, you will see an error like the following during the loading part of your build:
ld: -l44bsd: No such file or directory
One solution is to upgrade to BIND 4.9, which will install
the lib44bsd.a library (we recommend this). Another solution
is to remove -l44bsd
from the LIBS line in your Makefile.
Some systems define sys_errlist differently than sendmail. On such systems you may see a spurious warning about sys_errlist being redefined.
In general you should never get this error. But if you are building sendmail on a system that is similar to, but not identical to, one already supported, you may see such a warning. See Section 18.8.6, ERRLIST-PREDEFINED for a description of how to use ERRLIST_PREDEFINED to fix the problem, should it occur.