1 I n s t a l l i n g S - n a i l
2 ================================
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
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:
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.
30 Like MINIMAL, but with documentation strings, and the builtin command
31 line editor will be included if that is possible.
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.
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
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.
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
119 - i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666)
121 - Apple clang version 1.7 (tags/Apple/clang-77) (based on LLVM
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
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
142 . OpenBSD <http://www.openbsd.org/>
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
152 . Void Linux <http://www.voidlinux.eu/>
153 Linux 3.10.19_1 i686.
155 + Note: there is a single warning on 'signed overflow'. I think it's
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
163 + Note: there is a single warning on 'signed overflow'. I think it's
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.)
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