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