In Table 3-2, we list all the compile-time macros that are available.
Note that the Tune column of Table 3-2 recommends whether you should adjust (tune) the values for any particular macro. Those marked tune can be adjusted from within your Build m4 file. Those marked with port should be changed only in the rare event that you need to port sendmail to a new operating system.[2] Those marked with debug should be defined only during porting to help debug the new binary but (for security reasons) should never be defined for the final production version.
[2] But note that final porting should be done in include/sm/config.h, include/sm/conf.h, sendmail/conf.h, and sendmail/conf.c instead.
Also note that the -d column shows which debugging switches (-d0.1) can be used to determine whether the corresponding compile-time macro was defined when the sendmail binary was compiled. For most, if the name appears in the output, it was defined with a non-zero value.
Compile-time macro |
§ |
Tune |
-d |
Description |
---|---|---|---|---|
ARBPTR_T |
...T |
port |
How to cast an arbitrary pointer |
|
AUTO_NIS_ALIASES |
AUTO_NIS_ALIASES |
tune |
0.10 |
Add fallback alias techniques |
BROKEN_RES_SEARCH |
...IS_BROKEN |
port |
Broken resolver fix (e.g., Ultrix) |
|
BSD4_3 |
BSD4_3 |
port |
BSD 4.3-style signal handling |
|
BSD4_4 |
BSD4_4 |
port |
Compile for BSD 4.4 Unix |
|
DATA_PROGRESS_TIMEOUT |
DATA_PROGRESS_TIMEOUT |
tune |
Timeout inbound DATA phase |
|
DNSMAP |
DNSMAP |
tune |
0.1 |
Enable use of dns databases |
DSN |
DSN |
tune |
Support DSN |
|
EGD |
EGD |
port |
0.1 |
Enable use of the EGD daemon |
ERRLIST_PREDEFINED |
ERRLIST_PREDEFINED |
port |
Correct sys_errlist types |
|
FAST_PID_RECYCLE |
FAST_PID_RECYCLE |
port |
0.10 |
Quick reuse of pids |
_FFR_... |
_FFR... |
tune |
0.13 |
Try using future features |
FORK |
FORK |
port |
The type of fork(5) to use |
|
GIDSET_T |
...T |
port |
2nd argument to getgroups(2) |
|
HAS... |
HAS... |
port |
0.10 |
Has specific system call support |
HESIOD |
HESIOD |
tune |
0.1 |
Support hesiod database maps |
HES_GETMAILHOST |
HES_GETMAILHOST |
tune |
0.1 |
Use hesiod hes_getmailhost(3) |
IDENTPROTO |
IDENTPROTO |
port |
0.10 |
See Timeout.ident |
IP_SRCROUTE |
IP_SRCROUTE |
tune |
0.10 |
Add IP source-routing to $_ |
...IS_BROKEN |
...IS_BROKEN |
port |
Things that can be broken |
|
LA_TYPE |
LA_TYPE |
port |
3.5 |
Define load-average support |
LDAPMAP |
LDAPMAP |
tune |
0.1 |
Enable use of ldap databases |
LOG |
LOG |
tune |
0.1 |
Perform logging |
MAP_NSD |
MAP_NSD |
tune |
1.0 |
Support Irix nsd maps |
MAP_REGEX |
MAP_REGEX |
tune |
1.0 |
Use regular expression maps |
MATCHGECOS |
MATCHGECOS |
tune |
0.1 |
Support fuzzy name matching |
MAX... |
MAX... |
tune |
Redefine maximums |
|
MEMCHUNKSIZE |
MEMCHUNKSIZE |
tune |
Specify memory malloc size |
|
MILTER |
MILTER |
tune |
0.1 |
Enable the X config command |
MIME7TO8 |
MIME7TO8 |
tune |
0.1 |
Support MIME 7- to 8-bit |
MIME8TO7 |
MIME8TO7 |
tune |
0.1 |
Support MIME 8- to 7-bit |
NAMED_BIND |
NAMED_BIND |
tune |
0.1 |
Support DNS |
NDBM |
NDBM |
tune |
0.1 |
Support Unix ndbm(3) maps |
NEED... |
NEED... |
port |
Something amiss with your OS? |
|
NET... |
NET... |
tune |
0.1 |
Select network type |
NETINFO |
NETINFO |
tune |
0.1 |
Support NeXT netinfo(3) maps |
NEWDB |
NEWDB |
tune |
0.1 |
Support Berkeley db(3) maps |
NIS |
NIS |
tune |
0.1 |
Support nis maps |
NISPLUS |
NISPLUS |
tune |
0.1 |
Support nisplus maps |
NOFTRUNCATE |
NOFTRUNCATE |
port |
0.10 |
Lack ftruncate(2) support |
NO_GROUP_SET |
NO_GROUP_SET |
port |
Prevent multi-group file access |
|
NOTUNIX |
NOTUNIX |
tune |
30.2 |
Exclude "From " line support |
_PATH... |
_PATH... |
tune |
Hard-code paths inside sendmail |
|
PH_MAP |
PH_MAP |
tune |
0.1 |
Support for PH maps |
PICKY_HELO_CHECK |
PICKY_HELO_CHECK |
tune |
Become picky about HELO |
|
PIPELINING |
PIPELINING |
tune |
0.1 |
Enable PIPELINING extension |
PSBUFSIZ |
PSBUFSIZ |
tune |
Size of prescan( ) buffer |
|
QUEUE |
QUEUE |
tune |
Enable queueing (prior to V8.12) |
|
QUEUESEGSIZE |
QUEUESEGSIZE |
tune |
41 |
Amount to grow queue work list |
REQUIRES_DIR_FSYNC |
REQUIRES_DIR_FSYNC |
port |
0.10 |
fsync( ) for directory updates |
SAFENFSPATHCONF |
...IS_BROKEN |
port |
0.10 |
pathconf(2) is broken |
SASL |
SASL |
tune |
0.1 |
Support AUTH (V8.10 and above) |
SCANF |
SCANF |
tune |
0.1 |
Support scanf(3) with F command |
SECUREWARE |
SECUREWARE |
port |
0.10 |
Support SecureWare C2 security |
SFS_TYPE |
SFS_TYPE |
port |
How to determine free disk space |
|
SHARE_V1 |
SHARE_V1 |
port |
0.10 |
Support for the fair share scheduler |
SIOCGIFCONF_IS_BROKEN |
...IS_BROKEN |
port |
0.10 |
SIOCGIFCONF ioctl(2) is broken |
SIOCGIFNUM_IS_BROKEN |
...IS_BROKEN |
port |
0.10 |
SIOCGIFNUM ioctl(2) is broken |
SLEEP_T |
...T |
port |
Type of return value for sleep2 |
|
SM_... |
SM_... |
port |
0.12 |
Sendmail porting settings (V8.12 and above) |
SM_HEAP_CHECK |
SM_HEAP_CHECK |
port |
0.12 |
Memory-leak detection (V8.12 and above) |
SM_CONF_SHM |
SM_CONF_SHM |
tune |
0.12 |
Use shared memory (V8.12 and above) |
SMTP |
SMTP |
tune |
Enable SMTP (prior to V8.12) |
|
SMTPDEBUG |
SMTPDEBUG |
debug |
Enable remote debugging |
|
SMTPLINELIM |
SMTPLINELIM |
n/a |
Default for obsolete F=L flag |
|
SOCKADDR_LEN_T |
...T |
port |
Accept's 3rd argument type |
|
SOCKOPT_LEN_T |
...T |
port |
getsockopt(2)'s 5th arg type |
|
SPT_TYPE |
SPT_TYPE |
port |
Process title support |
|
STARTTLS |
STARTTLS |
tune |
0.4 |
Enable TLS (V8.11 and above) |
SUID_ROOT_FILES_OK |
SUID_ROOT_FILES_OK |
debug |
0.1 |
Allow root delivery to files |
SYSLOG_BUFSIZE |
SYSLOG_BUFSIZE |
port |
Limit syslog(3) buffer size |
|
SYSTEM5 |
SYSTEM5 |
port |
0.10 |
Support SysV-derived machines |
SYS5SIGNALS |
SYSTEM5 |
port |
0.10 |
Use SysV-style signals |
TCPWRAPPERS |
TCPWRAPPERS |
tune |
0.1 |
Use libwrap.a (V8.8 and above) |
TLS_NO_RSA |
TLS_NO_RSA |
port |
0.1 |
Turn off RSA (V8.12 and above) |
TOBUFSIZE |
TOBUFSIZE |
tune |
Set buffer for recipient list |
|
TTYNAME |
TTYNAME |
debug |
35.9 |
Set $y to tty name (obsolete) |
...T |
...T |
port |
The types returned by functions |
|
UDB_DEFAULT_SPEC |
UDB_DEFAULT_SPEC |
tune |
Default User Database location |
|
USE_DOUBLE_FORK |
USE_DOUBLE_FORK |
port |
0.10 |
Fork twice (V8.12 and above) |
USE_ENVIRON |
USE_ENVIRON |
port |
0.10 |
Use environ (V8.12 and above) |
USING_NETSCAPE_LDAP |
USING_NETSCAPE_LDAP |
tune |
0.10 |
Netscape ldap (V8.10 and above) |
USERDB |
USERDB |
tune |
0.1 |
Support the User Database |
USESETEUID |
USESETEUID |
port |
0.10 |
Support seteuid(2) changes |
WILDCARD_SHELL |
WILDCARD_SHELL |
debug |
Redefine wild card shell |
|
XDEBUG |
XDEBUG |
debug |
0.1 |
Support sanity checks |