annotate src/INSTALL @ 16485:b870146e09e1 v8.1.1246

patch 8.1.1246: cannot handle negative mouse coordinate from urxvt commit https://github.com/vim/vim/commit/bb7e1b4ba82eaa6f8c7a59f1314056e3c404437a Author: Bram Moolenaar <Bram@vim.org> Date: Thu May 2 20:24:12 2019 +0200 patch 8.1.1246: cannot handle negative mouse coordinate from urxvt Problem: Cannot handle negative mouse coordinate from urxvt. Solution: Accept '-' where a digit is expected. (Vincent Vinel, closes #4326)
author Bram Moolenaar <Bram@vim.org>
date Thu, 02 May 2019 20:30:07 +0200
parents 6e4e0d43b20b
children 22f0dda71638
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1 INSTALL - Installation of Vim on different machines.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3 This file contains instructions for compiling Vim. If you already have an
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4 executable version of Vim, you don't need this.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6 Contents:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 1. Generic
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8 2. Unix
2834
107b03fdf1ad updated for version 7.3.191
Bram Moolenaar <bram@vim.org>
parents: 2278
diff changeset
9 3. OS/2 (with EMX 0.9b)
107b03fdf1ad updated for version 7.3.191
Bram Moolenaar <bram@vim.org>
parents: 2278
diff changeset
10 4. Atari MiNT
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11
1268
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
12 See INSTALLami.txt for Amiga
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
13 See INSTALLmac.txt for Macintosh
15034
6e4e0d43b20b patch 8.1.0528: various typos in comments
Bram Moolenaar <Bram@vim.org>
parents: 10375
diff changeset
14 See INSTALLpc.txt for PC (Windows XP/Vista/7/8/10)
1268
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
15 See INSTALLvms.txt for VMS
1622
149d8b46404c updated for version 7.2a
vimboss
parents: 1268
diff changeset
16 See INSTALLx.txt for cross-compiling on Unix
15034
6e4e0d43b20b patch 8.1.0528: various typos in comments
Bram Moolenaar <Bram@vim.org>
parents: 10375
diff changeset
17 See ../READMEdir/README_390.txt for z/OS and OS/390 Unix
1268
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
18 See ../runtime/doc/os_beos.txt for BeBox
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21 1. Generic
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22 ==========
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 If you compile Vim without specifying anything, you will get the default
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 behaviour as is documented, which should be fine for most people.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 For features that you can't enable/disable in another way, you can edit the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28 file "feature.h" to match your preferences.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31 2. Unix
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 =======
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 Summary:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 1. make run configure, compile and link
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 2. make install installation in /usr/local
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 This will include the GUI and X11 libraries, if you have them. If you want a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39 version of Vim that is small and starts up quickly, see the Makefile for how
1268
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
40 to disable the GUI and X11. If you don't have GUI libraries and/or X11, these
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
41 features will be disabled automatically.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43 See the start of Makefile for more detailed instructions about how to compile
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
44 Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
45
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46 If you need extra compiler and/or linker arguments, set $CFLAGS and/or $LIBS
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47 before starting configure. Example:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 env CFLAGS=-I/usr/local/include LIBS=-lm make
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 This is only needed for things that configure doesn't offer a specific argument
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
52 for or figures out by itself. First try running configure without extra
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53 arguments.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
54
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55 GNU Autoconf and a few other tools have been used to make Vim work on many
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
56 different Unix systems. The advantage of this is that Vim should compile
2278
0b3be97064e5 Various small fixes from Dominique Pelle.
Bram Moolenaar <bram@vim.org>
parents: 2247
diff changeset
57 on most systems without any adjustments. The disadvantage is that when
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58 adjustments are required, it takes some time to understand what is happening.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60 If configure finds all library files and then complains when linking that some
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61 of them can't be found, your linker doesn't return an error code for missing
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
62 libraries. Vim should be linked fine anyway, mostly you can just ignore these
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63 errors.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65 If you run configure by hand (not using the Makefile), remember that any
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 changes in the Makefile have no influence on configure. This may be what you
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67 want, but maybe not!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
68
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69 The advantage of running configure separately, is that you can write a script
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70 to build Vim, without changing the Makefile or feature.h. Example (using sh):
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72 CFLAGS=-DCOMPILER_FLAG ./configure --enable-gui=motif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
73
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
74 One thing to watch out for: If the configure script itself changes, running
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75 "make" will execute it again, but without your arguments. Do "make clean" and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
76 run configure again.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
77
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
78 If you are compiling Vim for several machines, for each machine:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79 a. make shadow
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
80 b. mv shadow machine_name
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
81 c. cd machine_name
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
82 d. make; make install
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
83
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
84 [Don't use a path for machine_name, just a directory name, otherwise the links
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
85 that "make shadow" creates won't work.]
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
86
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
87
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
88 Unix: COMPILING WITH/WITHOUT GUI
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
89
1268
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
90 NOTE: This is incomplete, look in Makefile for more info.
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
91
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
92 These configure arguments can be used to select which GUI to use:
1268
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
93 --enable-gui=gtk or: gtk2, motif, athena or auto
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
94 --disable-gtk-check
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
95 --disable-motif-check
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
96 --disable-athena-check
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
97
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
98 --enable-gui defaults to "auto", so it will automatically look for a GUI (in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
99 the order of GTK, Motif, then Athena). If one is found, then is uses it and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
100 does not proceed to check any of the remaining ones. Otherwise, it moves on
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
101 to the next one.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
102
1268
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
103 --enable-{gtk,gtk2,kde,motif,athena}-check all default to "yes", such that if
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
104 --enable-gui is "auto" (which it is by default), GTK, Motif, and Athena will
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
105 be checked for. If you want to *exclude* a certain check, then you use
1268
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
106 --disable-{gtk,gtk2,kde,motif,athena}-check.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
107
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
108 For example, if --enable-gui is set to "auto", but you don't want it look for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
109 Motif, you then also specify --disable-motif-check. This results in only
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
110 checking for GTK and Athena.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
111
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
112 Lastly, if you know which one you want to use, then you can just do
1268
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
113 --enable-gui={gtk,gtk2,kde,motif,athena}. So if you wanted to only use Motif,
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
114 then you'd specify --enable-gui=motif. Once you specify what you want, the
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
115 --enable-{gtk,gtk2,kde,motif,athena}-check options are ignored.
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
116
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
117 On Linux you usually need GUI "-devel" packages. You may already have GTK
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
118 libraries installed, but that doesn't mean you can compile Vim with GTK, you
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
119 also need the header files.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
120
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
121 For compiling with the GTK+ GUI, you need a recent version of glib and gtk+.
1268
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
122 Configure checks for at least version 1.1.16. An older version is not selected
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
123 automatically. If you want to use it anyway, run configure with
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
124 "--disable-gtktest".
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
125 GTK requires an ANSI C compiler. If you fail to compile Vim with GTK+ (it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
126 is the preferred choice), try selecting another one in the Makefile.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
127 If you are sure you have GTK installed, but for some reason configure says you
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
128 do not, you may have left-over header files and/or library files from an older
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
129 (and incompatible) version of GTK. if this is the case, please check
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
130 auto/config.log for any error messages that may give you a hint as to what's
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
131 happening.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
132
1268
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
133 There used to be a KDE version of Vim, using Qt libraries, but since it didn't
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
134 work very well and there was no maintainer it was dropped.
11
4424b47a0797 updated for version 7.0003
vimboss
parents: 7
diff changeset
135
4424b47a0797 updated for version 7.0003
vimboss
parents: 7
diff changeset
136
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
137 Unix: COMPILING WITH MULTI-BYTE
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
138
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
139 When you want to compile with the multi-byte features enabled, make sure you
2278
0b3be97064e5 Various small fixes from Dominique Pelle.
Bram Moolenaar <bram@vim.org>
parents: 2247
diff changeset
140 compile on a machine where the locale settings actually work, otherwise the
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
141 configure tests may fail. You need to compile with "big" features:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
142
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
143 ./configure --with-features=big
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
144
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
145 Unix: COMPILING ON LINUX
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
146
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
147 On Linux, when using -g to compile (which is default for gcc), the executable
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
148 will probably be statically linked. If you don't want this, remove the -g
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
149 option from CFLAGS.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
150
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
151 Unix: PUTTING vimrc IN /etc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
152
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
153 Some Linux distributions prefer to put the global vimrc file in /etc, and the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
154 Vim runtime files in /usr. This can be done with:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
155 ./configure --prefix=/usr
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
156 make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim MAKE="make -e"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
157
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
158 Unix: COMPILING ON NeXT
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
159
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
160 Add the "-posix" argument to the compiler by using one of these commands:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
161 setenv CC 'cc -posix' (csh)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
162 export CC='cc -posix' (sh)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
163 And run configure with "--disable-motif-check".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
164
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1622
diff changeset
165 Unix: LOCAL HEADERS AND LIBRARIES NOT IN /usr/local
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1622
diff changeset
166
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1622
diff changeset
167 Sometimes it is necessary to search different path than /usr/local for locally
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1622
diff changeset
168 installed headers (/usr/local/include) and libraries (/usr/local/lib).
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1622
diff changeset
169 To search /stranger/include and /stranger/lib for locally installed
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1622
diff changeset
170 headers and libraries, use:
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1622
diff changeset
171 ./configure --with-local-dir=/stranger
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1622
diff changeset
172 And to not search for locally installed headers and libraries at all, use:
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1622
diff changeset
173 ./configure --without-local-dir
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1622
diff changeset
174
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
175
2834
107b03fdf1ad updated for version 7.3.191
Bram Moolenaar <bram@vim.org>
parents: 2278
diff changeset
176 3. OS/2
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
177 =======
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
178
7408
1886f2863437 commit https://github.com/vim/vim/commit/e7fedb6ebe72d9a475aa65109b77d5ed4667067a
Christian Brabandt <cb@256bit.org>
parents: 6448
diff changeset
179 OS/2 support was removed in patch 7.4.1008
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
180
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
181
2834
107b03fdf1ad updated for version 7.3.191
Bram Moolenaar <bram@vim.org>
parents: 2278
diff changeset
182 4. Atari MiNT
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
183 =============
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
184
1268
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
185 [NOTE: this is quite old, it might not work anymore]
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
186
1268
c91e60e1c695 updated for version 7.1
vimboss
parents: 11
diff changeset
187 To compile Vim for MiNT you may either copy Make_mint.mak to Makefile or use
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
188 the Unix Makefile adapted for the MiNT configuration.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
189
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
190 Now proceed as described in the Unix section.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
191
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
192 Prerequisites:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
193
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
194 You need a curses or termcap library that supports non-alphanumeric
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
195 termcap names. If you don't have any, link with termlib.o.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
196
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
197 -----------------------------------------------------------------------------
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
198
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
199 The rest of this file is based on the INSTALL file that comes with GNU
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
200 autoconf 2.12. Not everything applies to Vim. Read Makefile too!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
201
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
202
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
203 Basic Installation
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
204 ==================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
205
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
206 These are generic installation instructions.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
207
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
208 The `configure' shell script attempts to guess correct values for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
209 various system-dependent variables used during compilation. It uses
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
210 those values to create a `Makefile' in each directory of the package.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
211 It may also create one or more `.h' files containing system-dependent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
212 definitions. Finally, it creates a shell script `config.status' that
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
213 you can run in the future to recreate the current configuration, a file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
214 `config.cache' that saves the results of its tests to speed up
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
215 reconfiguring, and a file `config.log' containing compiler output
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
216 (useful mainly for debugging `configure').
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
217
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
218 If you need to do unusual things to compile the package, please try
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
219 to figure out how `configure' could check whether to do them, and mail
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
220 diffs or instructions to the address given in the `README' so they can
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
221 be considered for the next release. If at some point `config.cache'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
222 contains results you don't want to keep, you may remove or edit it.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
223
10375
2055d3722c5b commit https://github.com/vim/vim/commit/3f7d0907269558cb3ea184a3083640f9e20bb21e
Christian Brabandt <cb@256bit.org>
parents: 9228
diff changeset
224 The file `configure.ac' is used to create `configure' by a program
2055d3722c5b commit https://github.com/vim/vim/commit/3f7d0907269558cb3ea184a3083640f9e20bb21e
Christian Brabandt <cb@256bit.org>
parents: 9228
diff changeset
225 called `autoconf'. You only need `configure.ac' if you want to change
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
226 it or regenerate `configure' using a newer version of `autoconf'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
227
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
228 The simplest way to compile this package is:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
229
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
230 1. `cd' to the directory containing the package's source code and type
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
231 `./configure' to configure the package for your system. If you're
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
232 using `csh' on an old version of System V, you might need to type
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
233 `sh ./configure' instead to prevent `csh' from trying to execute
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
234 `configure' itself.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
235
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
236 Running `configure' takes awhile. While running, it prints some
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
237 messages telling which features it is checking for.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
238
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
239 2. Type `make' to compile the package.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
240
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
241 3. Optionally, type `make check' to run any self-tests that come with
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
242 the package.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
243
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
244 4. Type `make install' to install the programs and any data files and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
245 documentation.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
246
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
247 5. You can remove the program binaries and object files from the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
248 source code directory by typing `make clean'. To also remove the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
249 files that `configure' created (so you can compile the package for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
250 a different kind of computer), type `make distclean'. There is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
251 also a `make maintainer-clean' target, but that is intended mainly
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
252 for the package's developers. If you use it, you may have to get
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
253 all sorts of other programs in order to regenerate files that came
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
254 with the distribution.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
255
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
256 Compilers and Options
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
257 =====================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
258
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
259 Some systems require unusual options for compilation or linking that
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
260 the `configure' script does not know about. You can give `configure'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
261 initial values for variables by setting them in the environment. Using
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
262 a Bourne-compatible shell, you can do that on the command line like
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
263 this:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
264 CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
265
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
266 Or on systems that have the `env' program, you can do it like this:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
267 env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
268
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
269 Compiling For Multiple Architectures
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
270 ====================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
271
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
272 You can compile the package for more than one kind of computer at the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
273 same time, by placing the object files for each architecture in their
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
274 own directory. To do this, you must use a version of `make' that
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
275 supports the `VPATH' variable, such as GNU `make'. `cd' to the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
276 directory where you want the object files and executables to go and run
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
277 the `configure' script. `configure' automatically checks for the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
278 source code in the directory that `configure' is in and in `..'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
279
6448
e13f8073c9f9 updated for version 7.4.553
Bram Moolenaar <bram@vim.org>
parents: 2834
diff changeset
280 If you have to use a `make' that does not support the `VPATH'
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
281 variable, you have to compile the package for one architecture at a time
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
282 in the source code directory. After you have installed the package for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
283 one architecture, use `make distclean' before reconfiguring for another
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
284 architecture.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
285
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
286 Installation Names
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
287 ==================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
288
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
289 By default, `make install' will install the package's files in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
290 `/usr/local/bin', `/usr/local/man', etc. You can specify an
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
291 installation prefix other than `/usr/local' by giving `configure' the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
292 option `--prefix=PATH'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
293
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
294 You can specify separate installation prefixes for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
295 architecture-specific files and architecture-independent files. If you
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
296 give `configure' the option `--exec-prefix=PATH', the package will use
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
297 PATH as the prefix for installing programs and libraries.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
298 Documentation and other data files will still use the regular prefix.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
299
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
300 In addition, if you use an unusual directory layout you can give
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
301 options like `--bindir=PATH' to specify different values for particular
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
302 kinds of files. Run `configure --help' for a list of the directories
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
303 you can set and what kinds of files go in them.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
304
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
305 If the package supports it, you can cause programs to be installed
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
306 with an extra prefix or suffix on their names by giving `configure' the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
307 option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
308
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
309 Optional Features
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
310 =================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
311
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
312 Some packages pay attention to `--enable-FEATURE' options to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
313 `configure', where FEATURE indicates an optional part of the package.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
314 They may also pay attention to `--with-PACKAGE' options, where PACKAGE
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
315 is something like `gnu-as' or `x' (for the X Window System). The
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
316 `README' should mention any `--enable-' and `--with-' options that the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
317 package recognizes.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
318
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
319 For packages that use the X Window System, `configure' can usually
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
320 find the X include and library files automatically, but if it doesn't,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
321 you can use the `configure' options `--x-includes=DIR' and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
322 `--x-libraries=DIR' to specify their locations.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
323
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
324 Specifying the System Type
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
325 ==========================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
326
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
327 There may be some features `configure' can not figure out
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
328 automatically, but needs to determine by the type of host the package
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
329 will run on. Usually `configure' can figure that out, but if it prints
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
330 a message saying it can not guess the host type, give it the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
331 `--host=TYPE' option. TYPE can either be a short name for the system
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
332 type, such as `sun4', or a canonical name with three fields:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
333 CPU-COMPANY-SYSTEM
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
334
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
335 See the file `config.sub' for the possible values of each field. If
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
336 `config.sub' isn't included in this package, then this package doesn't
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
337 need to know the host type.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
338
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
339 If you are building compiler tools for cross-compiling, you can also
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
340 use the `--target=TYPE' option to select the type of system they will
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
341 produce code for and the `--build=TYPE' option to select the type of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
342 system on which you are compiling the package.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
343
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
344 Sharing Defaults
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
345 ================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
346
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
347 If you want to set default values for `configure' scripts to share,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
348 you can create a site shell script called `config.site' that gives
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
349 default values for variables like `CC', `cache_file', and `prefix'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
350 `configure' looks for `PREFIX/share/config.site' if it exists, then
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
351 `PREFIX/etc/config.site' if it exists. Or, you can set the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
352 `CONFIG_SITE' environment variable to the location of the site script.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
353 A warning: not all `configure' scripts look for a site script.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
354
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
355 Operation Controls
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
356 ==================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
357
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
358 `configure' recognizes the following options to control how it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
359 operates.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
360
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
361 `--cache-file=FILE'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
362 Use and save the results of the tests in FILE instead of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
363 `./config.cache'. Set FILE to `/dev/null' to disable caching, for
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
364 debugging `configure'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
365
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
366 `--help'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
367 Print a summary of the options to `configure', and exit.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
368
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
369 `--quiet'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
370 `--silent'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
371 `-q'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
372 Do not print messages saying which checks are being made. To
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
373 suppress all normal output, redirect it to `/dev/null' (any error
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
374 messages will still be shown).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
375
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
376 `--srcdir=DIR'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
377 Look for the package's source code in directory DIR. Usually
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
378 `configure' can determine that directory automatically.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
379
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
380 `--version'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
381 Print the version of Autoconf used to generate the `configure'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
382 script, and exit.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
383
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
384 `configure' also accepts some other, not widely useful, options.