Don't use UI32_MAX buffer size with snprintf(3)..
[s-mailx.git] / make.rc
blob86d960a290e62d02bfe5c8ac7f6c512b6aa9a491
1 #@ make.rc can be used adjust the set of desired features, paths, etc.
2 #@ You should have read `INSTALL' first.
3 #@ Notes:
4 #@ . This file is parsed by the shell: it is in sh(1), not in make(1) syntax.
5 #@   Evaluation occurs *after* it has been read, so command line overwrites
6 #@   take effect.  The parsing is linewise, sorry for that
7 #@ . Specifying settings on the command line will take precedence over the
8 #@   variables in here (correctly triggering build updates as necessary)
9 #@ . Choosing one of the predefined CONFIG= sets overwrites a lot of items
10 #@   that can be set in here
11 #@ . Boolean values can be set via 1/0, true/false and yes/no (case doesn't
12 #@   matter), other values result in an error
13 #@ . However, the value "require" is also a true boolean, but will in addition
14 #@   cause configuration to fail if the requested feature is missing.  This
15 #@   special behaviour is only tested by a logical subset of feature tests
16 #@ . You may NOT comment out anything in here -- if you want to disable a
17 #@   feature, set it to a false boolean
19 ## FEATURE SET ##
21 # Shall S-nail try to automatically detect a compiler and provide a set of
22 # known-good compiler flags?  If so additions may still be provided by setting
23 # $ADDCFLAGS and $ADDLDFLAGS to whatever is desired.
24 # Thus: set this to false and use your normal $CC / $CFLAGS / $LDFLAGS, set
25 # this to true and pass additional flags via ADDCFLAGS / ADDLDFLAGS.
26 # Whatever you do, the configuration is fixated and updates will force rebuilds
27 WANT_AUTOCC=yes
29 # It is possible to compile S-nail as a "single-source", meaning that all
30 # source files are injected into a single compilation unit, which is then
31 # compiled.  This allows the compiler to perform much more optimizations, and
32 # also reduces the management overhead that is used for / needed by the linker.
33 WANT_AMALGAMATION=no
35 # Character set conversion enables reading and sending of mails in multiple
36 # character sets through usage of the iconv(3) library.
37 # Please read the manual section "Character sets" for the complete picture.
38 # This should usually be enabled; it can be "require"d
39 WANT_ICONV=yes
41 # Major switch to toggle *all* network related protocols (IMAP,POP3,SMTP) and
42 # related/dependent stuff (GSS-API,SSL); can be "require"d
43 WANT_SOCKETS=yes
45 # If $WANT_SOCKETS: should the IPv6 internet protocol family be searched
46 # for and enabled if found?  Can be "require"d
47 # TODO NOTE:
48 # TODO S-nail does not yet support IPv6 address notation, as in, e.g.,
49 # TODO imaps://user1@::1 (or @[::1]), but it will happily establish a
50 # TODO connection to imaps://user1@host1 if host1 listens via IPv6
51 WANT_IPV6=yes
53 # If $WANT_SOCKETS: support for SecureSocketLayer (TransportLayerSecurity,
54 # TLS), i.e., encrypted socket connections; can be "require"d.
55 # This needs OpenSSL libraries (<http://www.openssl.org>)
56 WANT_SSL=yes
58 # If $WANT_SOCKETS: support for SMTP protocol?
59 # (Directly sending mails over the network)  Can be "require"d
60 WANT_SMTP=yes
62 # If $WANT_SOCKETS: support for POP3 protocol?
63 # (Download of mails via POP protocol)  Can be "require"d
64 WANT_POP3=yes
66 # If $WANT_SOCKETS: support for IMAP protocol?
67 # (Reading of mails directly on the server)  Can be "require"d.
68 WANT_IMAP=yes
70 # If $WANT_SOCKETS: support for GSS-API (Generic Security Services Application
71 # Programming Interface) based authentication, e.g., Kerberos v5?
72 # Currently available for SMTP and IMAP; can be "require"d
73 WANT_GSSAPI=yes
75 # If $WANT_SOCKETS: support for parsing of user and password credentials from
76 # the ~/.netrc file ($NETRC; see *netrc-lookup* manual entry)
77 WANT_NETRC=yes
79 # If $WANT_SOCKETS: passwords can also be looked up through an external "agent"
80 # in order to allow for encrypted password storage (see *agent-shell-lookup*)
81 WANT_AGENT=yes
83 # IDNA (internationalized domain names for applications) offers users the
84 # possibility to use domain names in their native language, i.e., to use
85 # non-US-ASCII content, as in, e.g., <www.räksmörgåsa.example>, which the IDNA
86 # algorithm would convert to <www.xn--rksmrgsa-0zap8p.example>.  :)
87 # This needs the GNU Libidn library (<https://www.gnu.org/software/libidn/>).
88 # It can be "require"d
89 WANT_IDNA=yes
91 # IMAP-style SEARCH expressions can be supported.
92 # This addressing mode is available with all types of folders; for folders not
93 # located on IMAP servers, or for servers unable to execute the SEARCH command,
94 # the search is performed locally
95 WANT_IMAP_SEARCH=yes
97 # Regular expression (re_format(7)) support for searches, conditional
98 # expressions etc.; can be "require"d
99 WANT_REGEX=yes
101 # Command line editing and -history.
102 # S-nail actually supports three different command line editors, one builtin
103 # and two fully fledged external libraries which may offer a slightly better
104 # user experience at the cost of more memory usage and CPU time; also the
105 # interactive behaviour may not be one-to-one to what is documented.
106 # Note that these are tested in shown order, and each desired one must be
107 # enabled by itself!
108 # . WANT_READLINE
109 #   The GNU readline(3) compatible interface; can be "require"d
110 # . WANT_EDITLINE
111 #   Command line editing via BSD editline(3); can be "require"d
112 # . WANT_NCL
113 #   If ISO C (ISO/IEC 9899:1990/Amendment 1:1995) is supported on the system
114 #   then our builtin NCL (Nail Command Line editor) version can be used.
115 #   It is documented in the manual section "Command line editor".
116 #   It can be "require"d
117 WANT_READLINE=no
118 WANT_EDITLINE=no
119 WANT_NCL=yes
120 # For all command line editors we optionally support history management
121 WANT_HISTORY=yes
122 # For the NCL command line editor we optionally support "expand-on-tabulator".
123 # Turning it off shrinks the binary.  Please see the respective manual entry
124 WANT_TABEXPAND=yes
126 # Interaction with a spam email filter is possible.
127 # Refer to all commands with a `spam' prefix, and see the manual section
128 # "Handling spam" (`./nail.1')
129 WANT_SPAM=yes
131 # If given an optional argument the `help' command will print a help string
132 # only for the mentioned command; those strings take up space and so one may
133 # disable this feature
134 WANT_DOCSTRINGS=yes
136 # A simple line-based quoting mechanism can be made available via the
137 # *quote-fold* mechanism.
138 # This will be turned off automatically if the required character
139 # classification is not available on the host.
140 # TODO shouldn't wrap lines when only WS or a NL-escaping \ follows
141 WANT_QUOTE_FOLD=yes
143 # A simple form of coloured output can optionally be produced (see manual)
144 WANT_COLOUR=yes
146 # Several facilities use the MD5 message digest, but for some of them it is
147 # only used for optional features (POP3: APOP authentification, IMAP: CRAM-MD5
148 # authentification, SMTP: CRAM-MD5 authentification).
149 # If you don't need those, you may exclude MD5 from S-nail.
150 # Note that WANT_MD5 is automatically turned off if its exclusion will only
151 # affect MIME boundary strings and Message-Id: fields
152 WANT_MD5=yes
154 ## PATHS AND PROGRAMS ##
156 # General prefix where S-nail should be installed
157 PREFIX=/usr/local
159 # Fine tune individual locations, normally under $PREFIX
160 # . the place of the S-nail program
161 BINDIR="${PREFIX}/bin"
162 # . of the manual
163 MANDIR="${PREFIX}/man"
164 # . of the exemplary resource file
165 SYSCONFDIR="${PREFIX}/etc"
167 # This variable is prepended to all the paths from above at installation time;
168 # this feature can be used for, e.g., package building: if $PREFIX is
169 # `/usr/local', but $DESTDIR is set to, say, `here', then S-nail will still
170 # think its $PREFIX is `/usr/local' whereis the build system will instead use
171 # `here/usr/local'
172 DESTDIR=
174 # The directory where the local mail system stores user mail (mbox) files.
175 MAILSPOOL=`if [ -d /var/spool/mail ]; then echo /var/spool/mail; else echo /var/mail; fi`
177 # Path to the local MTA (Mail Transport Agent).
178 # Test is: /usr/sbin/sendmail -> /usr/lib/sendmail -> /usr/bin/sendmail
179 # (Only of interest if the local mail system is used)
180 SENDMAIL=`if [ -x /usr/sbin/sendmail ]; then echo /usr/sbin/sendmail; elif [ -x /usr/lib/sendmail ]; then echo /usr/lib/sendmail; else echo /usr/bin/sendmail; fi`
182 # Today a lot of systems no longer use sendmail(1), but a different MTA.
183 # To ensure compatibility with sendmail(1), a system called mailwrapper(8) is
184 # used, which selects the required service by looking at the name by which the
185 # program actually has been invoked.
186 # This variable can be used to adjust this name as necessary
187 # (Only of interest if the local mail system is used)
188 SENDMAIL_PROGNAME=sendmail
190 # Default *SHELL* (sh(1) path).
191 # Sometimes we simply invoke a command directly via execlp(2) instead of
192 # indirectly through *SHELL* -- in these cases execlp(2) may fallback to it's
193 # own builtin sh(1) path (most likely `bin/sh'), effectively bypassing *XSHELL*
194 XSHELL=/bin/sh
196 # The default *LISTER* (in the $PATH).
197 XLISTER=ls
199 # The default *PAGER* (in the $PATH).
200 XPAGER=more
202 # The following tools may be provided a.k.a. overwritten, `command -v NAME`
203 # is used to query the utility otherwise:
204 #  MAKE=, STRIP=, awk=, cat=, chmod=, cp=, cmp=, grep=, mkdir=, mv=, tee=
205 #  rm=, sed=
206 # Note that rm(1) and sed(1) are needed before this file is read, all other
207 # utilities will be checked afterwards only.
208 # For cross-compilation setting MAKE= and STRIP= may be necessary.
209 # P.S.: normally you would simply adjust $PATH, $C_INCLUDE_PATH and
210 # $LD_LIBARY_PATH (or similar) etc. instead to perform cross-compilation
212 ##  --  >8  --  8<  --  ##
213 ## Normal users should not need to read any further
215 ## PATHS AND PROGRAMS, DEVELOPMENT ##
217 # To ease the life of forkers and packagers "our" name can be changed.
218 # The name is build by concatenating $SID and $NAIL, i.e., $(SID)$(NAIL).
219 # Note that the final string must be longer than two characters and may not
220 # contain any whitespace
221 SID=s-
222 NAIL=nail
224 # The location of the exemplary resource template.
225 # Note 1: it's not overwritten if it yet exists!
226 # Note 2: it MUST be within $SYSCONFDIR!
227 # Note 3: nonetheless ${SYSCONFDIR}/ must be part of this!
228 SYSCONFRC="${SYSCONFDIR}/${SID}${NAIL}.rc"
230 ## FEATURE SET, DEVELOPMENT ##
232 # Use debug compiler flags, enable some additional commands (like `sstats',
233 # `smemtrace') and some code assertions.
234 # Note that setting this also enables our own memory canaries, which require
235 # a rather large amount of runtime memory, and forcefully disables alloca(3)
236 # stack memory usage (see WANT_NOALLOCA below), so as to be able to track usage
237 # of stack memory via our memory canaries
238 WANT_DEBUG=no
240 # We use the crypto libraries' MD5 implementation if possible unless this one
241 WANT_NOEXTMD5=no
243 # The codebase makes a lot of use of alloca(3), and this will remain since
244 # S-nail will continue to be compliant to ISO C89, which has no variable
245 # arrays, etc.  For testing purposes it is however nice to use the much slower
246 # normal S-nail heap memory allocator instead.
247 # Note: this will be forcefully set (again) if WANT_DEBUG=yes
248 WANT_NOALLOCA="${WANT_DEBUG}"
250 # Experimental code etc.
251 # Note: this will be forcefully set (again) if WANT_DEBUG=yes
252 WANT_DEVEL=no
254 # Our functions are instrumented with Not-Yet-Dead chirps, which print
255 # a function call trace when the program crashes.  Whereas NYD will be used
256 # automatically when either of WANT_DEBUG and WANT_DEVEL is defined, an
257 # extended level of NYD is compiled in only on explicit request
258 # TODO Separation in between NYD and NYD2 not yet fully done
259 WANT_NYD2=no
261 # s-it-mode