Mercurial > vim
annotate src/INSTALL @ 25835:55592629062e
Added tag v8.2.3452 for changeset a89664a64d6292c76c4aceecc955f43d47fb781b
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 21 Sep 2021 19:45:06 +0200 |
parents | d4faa2c5211b |
children | 2295ee9c025d |
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 | |
24520 | 42 To build Vim on Ubuntu from scratch on a clean system using git: |
23796
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
43 Install tools required to be able to get and build Vim: |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
44 % sudo apt install git |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
45 % sudo apt install make |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
46 % sudo apt install clang |
25700 | 47 % sudo apt install libtool-bin |
23796
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
48 |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
49 Build Vim with default features: |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
50 % git clone https://github.com/vim/vim.git |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
51 % cd vim/src |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
52 % make |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
53 |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
54 Run tests to check there are no problems: |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
55 % make test |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
56 |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
57 Install Vim in /usr/local: |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
58 % sudo make install |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
59 |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
60 Add X windows clipboard support (also needed for GUI): |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
61 % sudo apt install libxt-dev |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
62 % make reconfig |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
63 |
24103 | 64 Add GUI support: |
65 % sudo apt install libgtk-3-dev | |
23796
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
66 % make reconfig |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
67 |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
68 Add Python 3 support: |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
69 % sudo apt install libpython3-dev |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
70 Uncomment this line in Makefile: |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
71 "CONF_OPT_PYTHON3 = --enable-python3interp" |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
72 % make reconfig |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
73 |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
74 Debugging: |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
75 % sudo apt install valgrind |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
76 Uncomment this line in Makefile: |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
77 CFLAGS = -g -Wall -Wextra -Wshadow -Wmissing-prototypes -Wunreachable-code -Wno-deprecated-declarations -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
78 % make reconfig |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
79 % make test_{test-name} |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
80 See output in testdir/valgrind.test_{test-name} |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
81 |
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
82 |
7 | 83 See the start of Makefile for more detailed instructions about how to compile |
84 Vim. | |
85 | |
86 If you need extra compiler and/or linker arguments, set $CFLAGS and/or $LIBS | |
87 before starting configure. Example: | |
88 | |
23796
4284b0a2b901
patch 8.2.2439: not easy to figure out what packages to get
Bram Moolenaar <Bram@vim.org>
parents:
21329
diff
changeset
|
89 env CFLAGS=-I/usr/local/include LIBS=-lm make |
7 | 90 |
91 This is only needed for things that configure doesn't offer a specific argument | |
92 for or figures out by itself. First try running configure without extra | |
93 arguments. | |
94 | |
95 GNU Autoconf and a few other tools have been used to make Vim work on many | |
96 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
|
97 on most systems without any adjustments. The disadvantage is that when |
7 | 98 adjustments are required, it takes some time to understand what is happening. |
99 | |
100 If configure finds all library files and then complains when linking that some | |
101 of them can't be found, your linker doesn't return an error code for missing | |
102 libraries. Vim should be linked fine anyway, mostly you can just ignore these | |
103 errors. | |
104 | |
105 If you run configure by hand (not using the Makefile), remember that any | |
106 changes in the Makefile have no influence on configure. This may be what you | |
107 want, but maybe not! | |
108 | |
109 The advantage of running configure separately, is that you can write a script | |
110 to build Vim, without changing the Makefile or feature.h. Example (using sh): | |
111 | |
112 CFLAGS=-DCOMPILER_FLAG ./configure --enable-gui=motif | |
113 | |
114 One thing to watch out for: If the configure script itself changes, running | |
115 "make" will execute it again, but without your arguments. Do "make clean" and | |
116 run configure again. | |
117 | |
118 If you are compiling Vim for several machines, for each machine: | |
119 a. make shadow | |
120 b. mv shadow machine_name | |
121 c. cd machine_name | |
122 d. make; make install | |
123 | |
124 [Don't use a path for machine_name, just a directory name, otherwise the links | |
125 that "make shadow" creates won't work.] | |
126 | |
127 | |
128 Unix: COMPILING WITH/WITHOUT GUI | |
129 | |
1268 | 130 NOTE: This is incomplete, look in Makefile for more info. |
131 | |
7 | 132 These configure arguments can be used to select which GUI to use: |
1268 | 133 --enable-gui=gtk or: gtk2, motif, athena or auto |
7 | 134 --disable-gtk-check |
135 --disable-motif-check | |
136 --disable-athena-check | |
137 | |
24103 | 138 This configure argument can be used to disable the GUI, even when the necessary |
139 files are found: | |
140 --disable-gui | |
141 | |
7 | 142 --enable-gui defaults to "auto", so it will automatically look for a GUI (in |
24103 | 143 the order of GTK, Motif, then Athena). If one is found, then it is used and |
7 | 144 does not proceed to check any of the remaining ones. Otherwise, it moves on |
145 to the next one. | |
146 | |
1268 | 147 --enable-{gtk,gtk2,kde,motif,athena}-check all default to "yes", such that if |
7 | 148 --enable-gui is "auto" (which it is by default), GTK, Motif, and Athena will |
149 be checked for. If you want to *exclude* a certain check, then you use | |
1268 | 150 --disable-{gtk,gtk2,kde,motif,athena}-check. |
7 | 151 |
152 For example, if --enable-gui is set to "auto", but you don't want it look for | |
153 Motif, you then also specify --disable-motif-check. This results in only | |
154 checking for GTK and Athena. | |
155 | |
156 Lastly, if you know which one you want to use, then you can just do | |
1268 | 157 --enable-gui={gtk,gtk2,kde,motif,athena}. So if you wanted to only use Motif, |
158 then you'd specify --enable-gui=motif. Once you specify what you want, the | |
159 --enable-{gtk,gtk2,kde,motif,athena}-check options are ignored. | |
160 | |
161 On Linux you usually need GUI "-devel" packages. You may already have GTK | |
162 libraries installed, but that doesn't mean you can compile Vim with GTK, you | |
163 also need the header files. | |
7 | 164 |
165 For compiling with the GTK+ GUI, you need a recent version of glib and gtk+. | |
1268 | 166 Configure checks for at least version 1.1.16. An older version is not selected |
167 automatically. If you want to use it anyway, run configure with | |
168 "--disable-gtktest". | |
7 | 169 GTK requires an ANSI C compiler. If you fail to compile Vim with GTK+ (it |
170 is the preferred choice), try selecting another one in the Makefile. | |
171 If you are sure you have GTK installed, but for some reason configure says you | |
172 do not, you may have left-over header files and/or library files from an older | |
173 (and incompatible) version of GTK. if this is the case, please check | |
174 auto/config.log for any error messages that may give you a hint as to what's | |
175 happening. | |
176 | |
1268 | 177 There used to be a KDE version of Vim, using Qt libraries, but since it didn't |
178 work very well and there was no maintainer it was dropped. | |
11 | 179 |
180 | |
7 | 181 Unix: COMPILING WITH MULTI-BYTE |
182 | |
183 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
|
184 compile on a machine where the locale settings actually work, otherwise the |
7 | 185 configure tests may fail. You need to compile with "big" features: |
186 | |
187 ./configure --with-features=big | |
188 | |
189 Unix: COMPILING ON LINUX | |
190 | |
191 On Linux, when using -g to compile (which is default for gcc), the executable | |
192 will probably be statically linked. If you don't want this, remove the -g | |
193 option from CFLAGS. | |
194 | |
195 Unix: PUTTING vimrc IN /etc | |
196 | |
197 Some Linux distributions prefer to put the global vimrc file in /etc, and the | |
198 Vim runtime files in /usr. This can be done with: | |
199 ./configure --prefix=/usr | |
200 make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim MAKE="make -e" | |
201 | |
202 Unix: COMPILING ON NeXT | |
203 | |
204 Add the "-posix" argument to the compiler by using one of these commands: | |
205 setenv CC 'cc -posix' (csh) | |
206 export CC='cc -posix' (sh) | |
207 And run configure with "--disable-motif-check". | |
208 | |
1668 | 209 Unix: LOCAL HEADERS AND LIBRARIES NOT IN /usr/local |
210 | |
211 Sometimes it is necessary to search different path than /usr/local for locally | |
212 installed headers (/usr/local/include) and libraries (/usr/local/lib). | |
213 To search /stranger/include and /stranger/lib for locally installed | |
214 headers and libraries, use: | |
215 ./configure --with-local-dir=/stranger | |
216 And to not search for locally installed headers and libraries at all, use: | |
217 ./configure --without-local-dir | |
218 | |
7 | 219 |
2834 | 220 3. OS/2 |
7 | 221 ======= |
222 | |
7408
1886f2863437
commit https://github.com/vim/vim/commit/e7fedb6ebe72d9a475aa65109b77d5ed4667067a
Christian Brabandt <cb@256bit.org>
parents:
6448
diff
changeset
|
223 OS/2 support was removed in patch 7.4.1008 |
7 | 224 |
225 | |
2834 | 226 4. Atari MiNT |
7 | 227 ============= |
228 | |
21329
bb3f60b0aca0
patch 8.2.1215: Atari MiNT support is outdated
Bram Moolenaar <Bram@vim.org>
parents:
20758
diff
changeset
|
229 Atari MiNT support was removed in patch 8.2.1215. |