1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
|
##################################################
# The Exim mail transport agent #
##################################################
# Generic default make file containing settings that relate to the OS or
# to selectable features within the OS. The configuration options for Exim
# itself live in Local/Makefile, which is constructed by editing src/EDITME.
# These settings are basic defaults which may be overridden, either by the
# generic OS-specific files, or by site-specific files. Do not edit this file.
# Instead, edit or create suitable OS-specific and/or site specific files.
# See the manual for details.
# MAKE_SHELL contains the name of the shell to be used for executing commands
# from the make files. Normally /bin/sh should be used.
MAKE_SHELL=/bin/sh
# BASENAME_COMMAND contains the path to the "basename" command, which varies
# from OS to OS. This is used when building the Exim monitor script only. (See
# also HOSTNAME_COMMAND.) If BASENAME_COMMAND is set to "look_for_it" then the
# script checks for /usr/bin/basename and /bin/basename, and if neither is
# found, it uses /usr/ucb/basename. This copes with Solaris 2 and Linux, both
# of which come in different versions.
BASENAME_COMMAND=/usr/bin/basename
# If you set STRIP_COMMAND to the path of the "strip" command, it will be run
# on every binary that is built. It is left unset by default, which leaves
# the binaries unstripped.
# STRIP_COMMAND=/usr/bin/strip
# Some of the following commands live in different places in different OS. We
# include them all here for generality.
CHOWN_COMMAND=/usr/bin/chown
CHGRP_COMMAND=/usr/bin/chgrp
CHMOD_COMMAND=/usr/bin/chmod
MV_COMMAND=/bin/mv
RM_COMMAND=/bin/rm
TOUCH_COMMAND=/usr/bin/touch
# Some operating systems have different ways of building libraries of
# functions. This macro defines the command to do this, defaulting to
# the "ar" command with options "cq".
AR=ar cq
# Not all operating systems have the iconv() function. Those that do have
#
# HAVE_ICONV=yes
#
# in their OS-specific Makefiles. On those that don't it is possible to
# install an independent implementation of iconv(). If you've done this,
# add "HAVE_ICONV=yes" to your Local/Makefile.
# Perl is not necessary for running Exim itself, except when EXIM_PERL
# is set to cause Perl embedding. However, some Perl utilities are provided
# for processing the logs. Perl 5 is assumed.
PERL_COMMAND=/usr/bin/perl
# CC contains the name of the C compiler to be used.
CC=gcc
# CFLAGS contains flags to be passed to the compiler. Nothing is defaulted
# here; instead each OS-dependent Makefile contains a default setting.
# CFLAGS=-O
# LFLAGS contains flags to be passed to the link editor. Nothing is defaulted
# here; instead each OS-dependent Makefile contains a default setting if one
# is needed.
# LFLAGS=
# PCRE_LIBS contains the library to be linked for PCRE
PCRE_LIBS=-lpcre
# LIBS and EXTRALIBS contain library settings that are used on linking
# commands to build binaries. The OS-dependent Makefile may contain a default
# setting for LIBS, leaving EXTRALIBS available for adding further libraries
# that are required for optional extras.
# LIBS=
# EXTRALIBS=
# LIBS_EXIM and EXTRALIBS_EXIM contain library settings that are used
# only when linking the Exim binary. They are not used for other binaries.
# One possible use is for the TCP wrappers library.
# LIBS_EXIM=
# EXTRALIBS_EXIM=
# LIBS_EXIMON and EXTRALIBS_EXIMON contain library settings that are
# used only when linking the Exim monitor binary. They are not used for
# other binaries.
# LIBS_EXIMON=
# EXTRALIBS_EXIMON=
# The error name for quota exceeded varies among operating systems, and
# even, unfortunately, in different versions of the same operating system.
# EDQUOT was not in Sys V, but is in SPEC 1170, apparently. It was used
# in SunOS4, but got taken out for SunOS5, where ENOSPC was given if a quota
# was exceeded. However, it got put back into SunOS5 with a patch to 5.4 in
# order to comply with SPEC 1170. Thus even different patch levels of the same
# system (SunOS5) may use different numbers.
#
# If you don't have quotas or are not interested in handling quota errors
# specially, just set this variable to 0. If it is not set, it defaults to
# EDQUOT if that is defined for the OS; otherwise it defaults to ENOSPC.
# ERRNO_QUOTA=EDQUOT
# The exiwhat utility script finds all the processes running Exim, and sends
# them a SIGUSR1 signal to get them to write their status to a file. There are
# two ways in which this can be done:
#
# (1) If the OS has a command to find processes and signal them, that can be
# used. Linux has "killall"; Solaris has "pkill". (Note: "killall" on Solaris
# does something very different - and disastrous.) The following are set in the
# OS-specific Makefiles for those OS where this can be done:
# EXIWHAT_MULTIKILL_CMD=
# EXIWHAT_MULTIKILL_ARG=
# (2) For other operating systems, exiwhat calls the ps command and egreps the
# output in order to find all the processes running Exim. The arguments for the
# various commands needed to do this vary from OS to OS. These defaults work on
# Solaris 2, HPUX, and IRIX. The OS-specific Makefiles have different versions
# for other systems, and you can override with your own requirements in your
# private Makefiles in the Local directory. The most commonly found
# alternatives are -ax instead of -e for the ps argument, and / instead of a
# blank before the name exim for the egrep argument on systems whose ps output
# shows the full path name. The quotes for the egrep argument are specified
# here so that leading white space can be used. This value should always be
# given in single quotes.
EXIWHAT_PS_CMD=/bin/ps
EXIWHAT_PS_ARG=-e
EXIWHAT_EGREP_ARG=' exim( |$$|-)'
# For both kinds of exiwhat usage, the next setting specifies the signal that
# is sent.
EXIWHAT_KILL_SIGNAL=-USR1
# IPv6 is gradually spreading more and more widely. Most operating systems seem
# to support it nowadays. If you set this option, IPv6 support will be included
# in the Exim binary. As well as the basic enabling option, there are
# parameters for include and library directories that may be needed for IPv6 on
# some systems, where the support is not yet in the standard library.
# HAVE_IPV6=YES
# IPV6_INCLUDE=-I /usr/ipv6/include
# IPV6_LIBS=-L/usr/ipv6/libs -linet6
# Exim uses the function getaddrinfo() for converting IPv6 addresses in text
# form to binary. Apparently some operating systems do not support this, or not
# correctly, and require the use of the function inet_pton() instead. The
# following setting enables this. Note, however, the inet_pton() has reduced
# functionality compared with getaddrinfo(). In particular, it does not
# recognize the percent convention for identifying scopes (interfaces) that is
# used by some operating systems.
# IPV6_USE_INET_PTON=yes
# Setting the next option brings in support for A6 DNS records for IPV6. These
# were at one time expected to supplant AAAA records, but were eventually
# rejected. The code remains in Exim, but has not been compiled or tested for
# quite some time. Do not set this unless you know what you are doing.
# SUPPORT_A6=yes
# HOSTNAME_COMMAND contains the path to the "hostname" command, which varies
# from OS to OS. This is used when building the Exim monitor script only. (See
# also BASENAME_COMMAND.) If HOSTNAME_COMMAND is set to "look_for_it" then the
# script checks for /usr/bin/hostname and /bin/hostname, and if neither is
# found, it uses /usr/ucb/basename. This copes with Solaris 2, which comes in
# different versions.
HOSTNAME_COMMAND=/bin/hostname
# INCLUDE contains arbitrary include parameters that you may need to use
# when building exim. It is added to every compile command.
# INCLUDE=-I /some/special/include-directory
# Some OS require a separate library to be quoted when linking programs that
# call name resolver functions. This can be set in LIBRESOLV, which is left
# unset here, but is set is some of the OS-specific Makefiles.
# LIBRESOLV=
# Additional libraries and include directories may be required for some
# lookup styles, e.g. LDAP or SQL. LOOKUP_LIBS is included only on the
# command for linking Exim itself, not on any auxiliary programs. You
# don't need to set LOOKUP_INCLUDE if the relevant directories are already
# specified in INCLUDE.
# LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/sql/include
# LOOKUP_LIBS=-L/usr/local/lib -lldap -llber
# RANLIB should be set to something that does nothing on systems that do not
# have the ranlib command or do not need to run it on library files.
RANLIB=ranlib
# EXIM_CHMOD is available to specify a command that is automatically applied
# to the Exim binary immediately it is compiled. (I find this useful when
# building test versions.)
EXIM_CHMOD=@true
# LOCAL_SCAN_SOURCE defines the file in which the function local_scan() is
# defined. This provides the administrator with a hook for including C code
# for scanning incoming mails. The path that is defined must be relative to
# the Exim distribution directory. For example
# LOCAL_SCAN_SOURCE=Local/local_scan.c
# The default setting points to a template function that doesn't actually do
# any scanning, but just accepts the message.
LOCAL_SCAN_SOURCE=src/local_scan.c
# If you want to specify options for your local_scan() that can be set from
# the main Exim configuration file, you need to uncomment the following line,
# and then provide a table of options in your local_scan() source, as described
# in the reference manual.
# LOCAL_SCAN_HAS_OPTIONS=yes
#############################################################################
# The following are all concerned with configuring the way Exim handles its
# database (hints) and other dbm files.
# Some systems require a separate library to be supplied when linking programs
# that make use of DBM library calls. This can be set in DBMLIB, which is unset
# by default, but is set in some of the OS-specific Makefiles. Setting it in
# your Local/Makefile will override any other setting.
# DBMLIB=
# When Exim is attempting to lock one of its database (hints) files, it
# applies a timeout which can be altered here.
# EXIMDB_LOCK_TIMEOUT=60
# By default, Exim uses traditional ndbm function calls to handle its indexed
# hints databases. On systems that have Berkeley db installed, this still
# works via the compatibility interface. However, by defining USE_DB you can
# make it use native db function calls.
# USE_DB=YES
# Similarly, if you are using gdbm, Exim will by default use the ndbm
# compatibility interface. However, by defining USE_GDBM you can make it
# use the native gdbm function calls.
# USE_GDBM=YES
#############################################################################
# The following definitions are relevant only when compiling the Exim monitor
# program, which requires an X11 display. See the varible EXIM_MONITOR in
# src/EDITME for how to suppress this compilation.
# X11 contains the location of the X11 libraries and include files.
X11=/usr/X11R6
# XINCLUDE contains options for header inclusion when compiling functions
# that call X11 functions.
XINCLUDE=-I$(X11)/include
# XLFLAGS contains flags to be passed to the linker when linking the monitor.
XLFLAGS=-L$(X11)/lib
# X11_LD_LIB contains the name of the X11 library that is to be added to
# LD_LIBRARY_PATH when running the monitor program.
X11_LD_LIB=$(X11)/lib
# A modified version of the Athena TextPop module is supplied with Exim. The
# modification is to remove the "replace" part of the "search and replace"
# operation because it isn't wanted. TextPop is only one of a number of
# modules that make up the Text widget. Some antique link editors cannot handle
# the case of a replacement module for one of a set of modules. To allow
# the monitor to be linked in such cases, set the value of EXIMON_TEXTPOP
# to be empty. The search operations will then contain a useless "replace"
# option, which is untidy, but does no harm.
EXIMON_TEXTPOP=em_TextPop.o
# End
|