The keywords usually define a subdirectory of /usr/share/sendmail-cf in which themacro may be found and the subdirective is usually the name of the macro file itself.So in the example, the macro name is /usr/share/sendmail-cf/feature/virtusertable.m4, and the instruction `\ hash -o /etc/mail/virtusertable.db'is being passed to it.Notice that sendmail is sensitive to the quotation marks used in the m4 macrodirectives. They open with a grave mark and end with a single quote.
Some keywords, such as define for the definition of certain sendmail variables andMASQUERADE_DOMAIN, have no corresponding directories with matchingmacro files. The macros in the /usr/share/sendmail-cf/m4 directory deal with these.Once you finish editing the sendmail.mc file, you can then execute the makecommand while in the /etc/mail directory to regenerate the new sendmail.cf file.
[root@bigboy tmp]# cd /etc/mail[root@bigboy mail]# make
If there have been no changes to the files in /etc/mail since the last time make wasrun, then you'll get an error like this:
[root@bigboy mail]# make make: Nothing to be done for `all'.[root@bigboy mail]#
The make command actually generates the sendmail.cf file using the m4 command.The m4 usage is simple, you just specify the name of the macro file as the argument,in this case sendmail.mc, and redirect the output, which would normally go to thescreen, to the sendmail.cf file with the ">" redirector symbol.
[root@bigboy tmp]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
I'll discuss many of the features of the sendmail.mc file later in the chapter.
Most RedHat and Fedora Linux software products are available in the RPMformat. You will need to make sure that the sendmail, sendmail-cf, and m4 softwareRPMs are installed. (Chapter 6, "Installing RPM Software", will tell you how.)When searching for the RPMs, remember that the filename usually starts with thesoftware package name by a version number, as in sendmail-8.12.10-1.1.1.i386.rpm.