annotate src/INSTALL @ 20828:db18625d8134 v8.2.0966

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