The _CF_DIR_ m4 Macro
It can be advantageous to maintain all the files that make up your local m4 configuration separately from the sendmail distribution. This prevents new releases of sendmail from clobbering your source files. It also allows you to maintain configuration information more conveniently (perhaps under rcs(1) control) and to use programs such as make(1) to simplify configuration and installation.
Most modern versions of m4 allow you to define m4 macros on the command line, and one such m4 macro is recognized internally by the m4 technique:
_CF_DIR_
This command-line m4 macro tells m4 where the m4/cf.m4 file described earlier is located. It needs to have its value set to be the cf directory under the sendmail source distribution, and it needs to end in a slash character. For example, GNU m4 version 1.2 allows this:
%setenv CFDIR /usr/local/src/mail/sendmail/cf/
%/usr/local/gnu/bin/m4 -D_CF_DIR_=${CFDIR} ${CFDIR}m4/cf.m4 localsun.mc \
> sendmail.cf
Notice that we store the value for _CF_DIR_
in an
environment variable. Note that GNU
m4 can figure out the
_CF_DIR_
path
itself from the path of the
cf.m4 file. We include
_CF_DIR_
here
merely as an example. If your version of
m4 lacks this ability, you
should consider upgrading.
With the _CF_DIR_
m4 macro, we can further
simplify configuration and installation by using
make(1). To illustrate,
consider the following few lines from a
Makefile on a SunOS
system:
M4=/usr/local/gnu/bin/m4 CFDIR=/usr/local/src/mail/sendmail/cf/ localsun: ...
Get sendmail, 4th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.