nail.1, mk-mk.in: include the VERSION in the manual
[s-mailx.git] / INSTALL
blobc919372a49ff1856df8fa2f692d905f8f1584051
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 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
16 With adjustments:
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:
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=NETSEND
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
33   identical to MINIMAL.
35 E.g.:
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.
58 . packager-install
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
80   $ make install
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).
95   gcc(1) and clang(1).
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).
113   gcc (GCC) 4.7.1.
114   clang version 3.0 (tags/RELEASE_30/final).
116 o UnixWare 7.1.4.
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