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.
57 . config Only create / check + update configuration.
58 . build Only build using the existing configuration.
59 . test Run ./cc-test.sh in --check-only mode on built binary.
61 Only install using the build of the existing
62 configuration. It is possible to overwrite DESTDIR= when
63 using this target (a following `uninstall' won't know
64 about that overwritten value, however).
66 If some libraries are missing that you know are installed on your
67 system, or if other errors occur due to missing files but which you know
68 exist, please ensure that the environment variable `C_INCLUDE_PATH'
69 includes the necessary `include/' paths and the environment variable
70 `LD_LIBRARY_PATH' includes the necessary `lib/'rary paths.
72 The S-nail make system will inspect these two environment variables and
73 *automatically* convert them to cc(1) (c99(1)) -I and -L options (since
74 these environment variables are, different to the command line options,
75 not part of the POSIX standard).
76 To set these environment variables, the following can be done in
77 a Bourne/Korn/POSIX compatible shell:
79 $ C_INCLUDE_PATH="${C_INCLUDE_PATH}:/usr/local/include"
80 $ LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib"
81 $ export C_INCLUDE_PATH LD_LIBRARY_PATH
84 The S-nail make system will also automatically integrate pkgsrc(7) paths
85 into this mechanism. pkgsrc(7) is used to handle building (compilation),
86 installation and removal of software packages on a lot of operating
87 systems, including all BSD systems, Linux, Solaris ...
89 Notes for S-nail(1) v14.*
90 -------------------------
92 S-nail(1) is known to be driven without errors by the `./cc-test.sh'
93 shell script, with the extended CFLAGS and WARN variables uncommented in
94 the Makefile, on the following operating systems:
96 o Mac OS X Snow Leopard (x86_64).
99 o FreeBSD 10.0 (amd64; 2013-06-23).
100 clang version 3.3 (tags/RELEASE_33/final 183502) 20130610.
102 o NetBSD 6.99.23 (amd64).
103 gcc (NetBSD nb1 20120916) 4.5.4 (forgot to look: ID as of 6.99.19).
105 o DragonFly BSD v3.4.1-RELEASE.
106 gcc 4.7.2 [DragonFly] Release/2012-09-20.
108 o OpenBSD 5.4 (5.4 GENERIC#36 i386).
109 gcc (GCC) 4.2.1 20070719.
111 o CRUX 3.0 (mLinux 3.6.11).
112 gcc (CRUX-x86_64-multilib) 4.7.2.
114 o Slackware 14 3.2.29-smp (i386).
116 clang version 3.0 (tags/RELEASE_30/final).
119 You need to pass "CFLAGS='-v -O'" to the make(1) run.
120 And because the UnixWare make(1) doesn't pass those flags through to
121 recursively invoked make(1)s (and because the S-nail build system
122 doesn't track CC and CFLAGS in `conf.rc' for updates), you need to use
123 the -e option, as in:
125 $ make -e CFLAGS='-v -O'
127 Due to this you possibly want to use env(1) to be on the safe side...
128 Also, `conf.rc' sets `MAILSPOOL=/var/mail' by default, whereas
129 UnixWare uses `/var/spool/mail', so you need to overwrite it (either
130 in `conf.rc', or from within the command line).
132 OpenIndiana is targeted for v14.5.
133 And i'm very interested in reports from other combinations.
134 (It should work practically everywhere, generally speaking.)
136 Program features yet to be overhauled
137 -------------------------------------
139 Since i've forked Heirloom mailx(1) (for real) as S-nail(1) on
140 2012-09-18 i make my way through the codebase, but have not yet taken
141 a look (rather: at all) into the following modules/parts:
143 [List view/threading], Maildir, SSL, IMAP, POP3, SMTP, GSSAPI, Caching
145 These will remain features of S-nail(1) and they will be looked at, and
146 of course i will fix bugs when i notice them, but they are not yet part
147 of the overhauled "S-nail core" (though SMTP and POP are in daily use,
148 and IMAP is slowly coming along).
150 I'll hope to be able to release S-nail v20 on 2018-03-25, the 40th
151 anniversary of Mail, as a good one, then. Also see `TODO'.
153 vim:set fenc=utf-8:s-ts-mode