Add vok_*() family, backed by (non-final) _var_vok*()
[s-mailx.git] / INSTALL
blob8cb8ecfb842abc8514ba194ef812b6e1d8c74f43
1 I n s t a l l i n g  S - n a i l
2 ================================
4 Compilation
5 -----------
7 System specific notes can be found in the next section.
8 Any (optional) feature is adjustable and documented in `conf.rc'.
9 Adjustments may also take place, and are usually done, from the command
10 line, overriding those made in `conf.rc' (if any):
12   $ [make &&] make install
13   $ make uninstall          # Won't remove the system wide startup file!
14   $ make distclean          # *Completely* cleanup working directory
16 With adjustments:
18   $ make WANT_AUTOCC=1 WANT_IMAP=0 install
19   $ make WANT_AUTOCC=1 WANT_NCL=0 PREFIX=/some/nasty/prefix install
21 There are also some predefined restricted configuration sets available,
22 which take precedence over anything else:
24 . CONFIG=MINIMAL
25   little is left but some air to breathe; no internet connectivity, no
26   internationalized domain names, no command line editor, no
27   documentation strings.
29 . CONFIG=MEDIUM
30   Like MINIMAL, but with documentation strings, and the builtin command
31   line editor will be included if that is possible.
33 . CONFIG=NETSEND
34   WANT_SMTP and WANT_SSL settings are enabled, internationalized domain
35   names will be supported if the necessary libraries are available,
36   otherwise identical to MEDIUM.
38 E.g.:
40   $ make CONFIG=MINIMAL WANT_AUTOCC=1 DESTDIR=xtest install
42 would create a `s-nail' binary and install a `s-nail' manual etc.
43 under the prefix `/usr/local' but rooted under [./]`xtest', i.e., the
44 binary would be installed as `[./]xtest/usr/local/bin/s-nail'.
46 The `WANT_AUTOCC=1' switch allows the S-nail(1) build system to not only
47 detect, but also adjust CFLAGS and LDFLAGS settings -- if you want to
48 add specific locale additions, use `ADDCFLAGS=' and `ADDLDFLAGS=', e.g.
50   $ make WANT_AUTOCC=1 ADDCFLAGS=-pipe ADDLDFLAGS="-Wl,-O1,--sort-common"
52 By default it doesn't dare to overwrite CFLAGS and LDFLAGS, because it
53 cannot distinguish where the value comes from, a general user
54 environment or a specific command line overwrite, making use cases like
56   $ make CFLAGS='-O1 -g -pipe'
58 impossible.  The following make(1) target exists, and note that you can
59 use a VERBOSE=1 command line option to gain more (or a different kind
60 of) verbosity:
62 . all         Create / check and update configuration, build.
63 . install     Create / check and update configuration, build, install.
64 . clean       Remove anything which can be rebuild.
65 . distclean   Remove anything which can be rebuild or reconfigured.
66 . uninstall   Uninstall (if configured).
68 . config      Only create or check and update the configuration.
69 . build       Only build (using the existing configuration).
70 . test        Run ./cc-test.sh in --check-only mode on the built binary.
71 . packager-install
72               Only install using the built files of the existing
73               configuration.  It is possible to overwrite DESTDIR= when
74               using this target nonetheless (a following `uninstall'
75               won't know about that overwritten value, however).
77 If some libraries are missing that you know are installed on your
78 system, or if other errors occur due to missing files but which you know
79 exist, please ensure that the environment variable `C_INCLUDE_PATH'
80 includes the necessary `include/' paths and the environment variable
81 `LD_LIBRARY_PATH' includes the necessary `lib/'rary paths.
83 The S-nail make system will inspect these two environment variables and
84 *automatically* convert them to cc(1) (c99(1)) -I and -L options (since
85 these environment variables are, different to the command line options,
86 not part of the POSIX standard).
87 To set these environment variables, the following can be done in
88 a Bourne/Korn/POSIX compatible shell:
90   $ C_INCLUDE_PATH="${C_INCLUDE_PATH}:/usr/local/include"
91   $ LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib"
92   $ export C_INCLUDE_PATH LD_LIBRARY_PATH
93   $ make WANT_AUTOCC=1 install
95 The S-nail make system will also automatically integrate pkgsrc(7) paths
96 into this mechanism.  pkgsrc(7) is used to handle building (compilation),
97 installation and removal of software packages on a lot of operating
98 systems, including all BSD systems, Linux, Solaris ...
100 Notes for S-nail(1) v14.5*
101 --------------------------
103 S-nail(1) has been or is used regulary on these systems (`uname -srm').
104 Note first that MAILSPOOL is by default `/var/mail' (see `conf.rc').
106 Also, i'm (compile) testing manually with WANT_AUTOCC=1, WANT_DEBUG=[01]
107 and WANT_AMALGAMATION=[01] (and WANT_GSSAPI=1), which is what is
108 reflected by the following statements.
110 . Mac OS X <https://www.apple.com/>
111   (Snow Leopard) Darwin 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun
112   7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386.
113   - gcc-mp-4.8 (MacPorts gcc48 4.8.2_0) 4.8.2.
114     + Note: with WANT_AMALGAMATION there is a single warning on 'signed
115       overflow'.  I think it's wrong.
116   - clang version 3.4 (branches/release_34 197314)
117     Target: x86_64-apple-darwin10.8.0
118     Thread model: posix.
119   - i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666)
120     (dot 3).
121   - Apple clang version 1.7 (tags/Apple/clang-77) (based on LLVM
122     2.9svn).
124 . ArchLinux <https://www.archlinux.org/>
125   Linux 3.12.6-1-ARCH x86_64
126   - gcc (GCC) 4.8.2 20131219 (prerelease)
127     + Note: warnings on unused results, just ignore (for now).
129 . NetBSD <https://www.netbsd.org/>
130   NetBSD 6.99.24 NetBSD 6.99.24 (GENERIC) #0: Tue Oct 29 08:23:21 UTC
131   2013 amd64.
132   - gcc (NetBSD nb1 20120916) 4.5.4.
133     + Note: with WANT_AMALGAMATION there are many warnings on 'signed
134       overflow', all referring to the same code, and i think it's wrong.
136 . CRUX Linux <http://www.crux.nu/>
137   Linux 3.6.11 #1 SMP Sun Sep 15 17:47:31 UTC 2013 x86_64.
138   - gcc (CRUX-x86_64-multilib) 4.7.2.
139     + Note: there is a single warning on 'signed overflow'.  I think it's
140       wrong.
142 . OpenBSD <http://www.openbsd.org/>
143   OpenBSD 5.4 i386.
144   - gcc (GCC) 4.2.1 20070719.
146 . FreeBSD <https://www.freebsd.org/>
147   FreeBSD 10.0-CURRENT amd64.
148   - FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610
149     Target: x86_64-unknown-freebsd10.0
150     Thread model: posix.
152 . Void Linux <http://www.voidlinux.eu/>
153   Linux 3.10.19_1 i686.
154   - gcc (GCC) 4.7.3.
155     + Note: there is a single warning on 'signed overflow'.  I think it's
156       wrong.
158 . DragonFly BSD <https://www.dragonflybsd.org/>
159   DragonFly 3.6-RELEASE x86_64
160   - gcc 4.7.3 [DragonFly] Release/2013-04-11.
161     + Note: harmless iconv(3) warning again (as if we didn't had to treat it
162       specially already).
163     + Note: there is a single warning on 'signed overflow'.  I think it's
164       wrong.
166 . UnixWare 7.1.4.
167   + Note: this make(1) requires the -e option to pass values to make(1)
168     subprocesses, so, if you want to overwrite DESTDIR= when doing
169     `packager-install', you better say '$ make -e DESTDIR=xy ...'.
170   + You'll see some harmless and ignorable warnings.
172 . Slackware Linux <http://www.slackware.com/>
173   Slackware 14 3.2.29-smp (i386).
174   + Note: not tested for v14.5, machine disappeared.  (Will install a VM
175     with the new release before the next minor.)
176   - gcc (GCC) 4.7.1.
177   - clang version 3.0 (tags/RELEASE_30/final).
179 OpenIndiana is targeted for v14.6.
180 And i'm very interested in reports from other combinations.
181 (It should work practically everywhere, generally speaking.)
183 Program features yet to be overhauled
184 -------------------------------------
186 Since i've forked Heirloom mailx(1) (for real) as S-nail(1) on
187 2012-09-18 i make my way through the codebase, but have not yet taken
188 a look (rather: at all) into the following modules/parts:
190   [List view/threading], Maildir, SSL, IMAP, POP3, SMTP, GSSAPI, Caching
192 These will remain features of S-nail(1) and they will be looked at, and
193 of course i will fix bugs when i notice them, but they are not yet part
194 of the overhauled "S-nail core" (though SMTP and POP are in daily use,
195 and IMAP is slowly coming along).
197 I'll hope to be able to release S-nail v20 on 2018-03-25, the 40th
198 anniversary of Mail, as a good one, then.  Also see `TODO'.
200 vim:set fenc=utf-8:s-ts-mode