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 from the command line, overriding
10 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_IMAP=0 install
19 $ make WANT_LINE_EDITOR=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 WANT_SMTP and WANT_SSL settings are enabled, internationalized domain
31 names will be supported if the necessary libraries are available, the
32 builtin command line editor will be used if possible, otherwise
37 $ make CONFIG=MINIMAL DESTDIR=xtest install
39 would create a `s-nail' binary and install a `s-nail' manual etc.
40 under the prefix `/usr/local' but rooted under [./]`xtest', i.e., the
41 binary would be installed as `[./]xtest/usr/local/bin/s-nail'.
43 Note that, due to the way the S-nail(1) build system is designed, the
44 only safe way to overwrite compiler and linker flags, i.e., CFLAGS and
45 LDFLAGS, is from within (`conf.rc' or) the make(1) command line:
47 $ make CFLAGS='-O2' LDFLAGS='-Wl,--sort-common'
49 The following make(1) target exists:
51 . all Create / check + update configuration, build.
52 . install Create / check + update configuration, build + install.
53 . clean Remove anything which can be rebuild.
54 . distclean Remove anything which can be rebuild or reconfigured.
55 . uninstall Uninstall if configured.
56 . config Only create / check + update configuration.
57 . build Only build using the existing configuration.
59 Only install using the build of the existing
60 configuration. It is possible to overwrite DESTDIR= when
61 using this target (a following `uninstall' won't know
62 about that overwritten value, however).
64 If some libraries are missing that you know are installed on your
65 system, or if other errors occur due to missing files but which you know
66 exist, please ensure that the environment variable `C_INCLUDE_PATH'
67 includes the necessary `include/' paths and the environment variable
68 `LD_LIBRARY_PATH' includes the necessary `lib/'rary paths.
70 The S-nail make system will inspect these two environment variables and
71 *automatically* convert them to cc(1) (c99(1)) -I and -L options (since
72 these environment variables are, different to the command line options,
73 not part of the POSIX standard).
74 To set these environment variables, the following can be done in
75 a Bourne/Korn/POSIX compatible shell:
77 $ C_INCLUDE_PATH="${C_INCLUDE_PATH}:/usr/local/include"
78 $ LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib"
79 $ export C_INCLUDE_PATH LD_LIBRARY_PATH
82 The S-nail make system will also automatically integrate pkgsrc(7) paths
83 into this mechanism. pkgsrc(7) is used to handle building (compilation),
84 installation and removal of software packages on a lot of operating
85 systems, including all BSD systems, Linux, Solaris ...
87 Notes for S-nail(1) v14.*
88 -------------------------
90 S-nail(1) is known to be driven without errors by the `./cc-test.sh'
91 shell script, with the extended CFLAGS and WARN variables uncommented in
92 the Makefile, on the following operating systems:
94 o Mac OS X Snow Leopard (x86_64).
97 o FreeBSD 10.0 (amd64; 2013-06-23).
98 clang version 3.3 (tags/RELEASE_33/final 183502) 20130610.
100 o NetBSD 6.99.23 (amd64).
101 gcc (NetBSD nb1 20120916) 4.5.4 (forgot to look: ID as of 6.99.19).
103 o DragonFly BSD v3.4.1-RELEASE.
104 gcc 4.7.2 [DragonFly] Release/2012-09-20.
106 o OpenBSD 5.4 (5.4 GENERIC#36 i386).
107 gcc (GCC) 4.2.1 20070719.
109 o CRUX 3.0 (mLinux 3.6.11).
110 gcc (CRUX-x86_64-multilib) 4.7.2.
112 o Slackware 14 3.2.29-smp (i386).
114 clang version 3.0 (tags/RELEASE_30/final).
117 You need to pass "CFLAGS='-v -O'" to the make(1) run.
118 And because the UnixWare make(1) doesn't pass those flags through to
119 recursively invoked make(1)s (and because the S-nail build system
120 doesn't track CC and CFLAGS in `conf.rc' for updates), you need to use
121 the -e option, as in:
123 $ make -e CFLAGS='-v -O'
125 Due to this you possibly want to use env(1) to be on the safe side...
126 Also, `conf.rc' sets `MAILSPOOL=/var/mail' by default, whereas
127 UnixWare uses `/var/spool/mail', so you need to overwrite it (either
128 in `conf.rc', or from within the command line).
130 OpenIndiana is targeted for v14.5.
131 And i'm very interested in reports from other combinations.
132 (It should work practically everywhere, generally speaking.)
134 Program features yet to be overhauled
135 -------------------------------------
137 Since i've forked Heirloom mailx(1) (for real) as S-nail(1) on
138 2012-09-18 i make my way through the codebase, but have not yet taken
139 a look (rather: at all) into the following modules/parts:
141 [List view/threading], Maildir, SSL, IMAP, POP3, SMTP, GSSAPI, Caching
143 These will remain features of S-nail(1) and they will be looked at, and
144 of course i will fix bugs when i notice them, but they are not yet part
145 of the overhauled "S-nail core" (though SMTP and POP are in daily use,
146 and IMAP is slowly coming along).
148 I'll hope to be able to release S-nail v20 on 2018-03-25, the 40th
149 anniversary of Mail, as a good one, then. Also see `TODO'.
151 vim:set fenc=utf-8:s-ts-mode