blob: 184dc3e9cda89adfea8c22d970447ee7e08b3ea5 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001INSTALLpc.txt - Installation of Vim on PC
2
3This file contains instructions for compiling Vim. If you already have an
4executable version of Vim, you don't need this.
5
Bram Moolenaar18cfa942017-10-08 17:58:44 +02006You can find the lastest here: https://github.com/vim/vim-win32-installer
7This page also has links to install support for interfaces such as Perl,
8Python, Lua, etc.
Bram Moolenaar071d4272004-06-13 20:20:40 +00009
10The file "feature.h" can be edited to match your preferences. You can skip
11this, then you will get the default behavior as is documented, which should
12be fine for most people.
13
Bram Moolenaar02cfac82016-04-21 14:34:58 +020014This document assumes that you are building Vim for Win32 or later (Windows
15XP/2003/Vista/7/8/10). There are also instructions for pre-XP systems, but
16they might no longer work.
Bram Moolenaar362e1a32006-03-06 23:29:24 +000017
Bram Moolenaar18cfa942017-10-08 17:58:44 +020018The recommended way is to build a 32 bit Vim, also on 64 bit systems. You can
Bram Moolenaar3bf8c3c2017-11-05 16:04:43 +010019build a 64 bit Vim if you like, the executable will be bigger and Vim won't be
Bram Moolenaar18cfa942017-10-08 17:58:44 +020020any faster, but you can edit files larger than 2 Gbyte.
21
Bram Moolenaar071d4272004-06-13 20:20:40 +000022
23Contents:
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000241. Microsoft Visual C++
252. Using MinGW
263. Cygwin
274. Borland
285. Cross compiling for Win32 from a Linux machine
296. Building with Python support
Bram Moolenaar30a89472016-01-10 14:35:58 +0100307. Building with Python3 support
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200318. Building with Racket or MzScheme support
Bram Moolenaar30a89472016-01-10 14:35:58 +0100329. Building with Lua support
3310. Building with Perl support
3411. Building with Ruby support
3512. Building with Tcl support
Bram Moolenaar8f84c3a2017-07-22 16:14:44 +02003613. Building with Terminal support
3714. Windows 3.1
3815. MS-DOS
Bram Moolenaar362e1a32006-03-06 23:29:24 +000039
Bram Moolenaar8f84c3a2017-07-22 16:14:44 +02004016. Installing after building from sources
Bram Moolenaar734d9982011-07-15 13:52:04 +020041
42
Bram Moolenaar18cfa942017-10-08 17:58:44 +020043The currently recommended way (that means it has been verified to work) is
44using the "Visual Studio Community 2015" installation. This includes the SDK
Bram Moolenaar3bf8c3c2017-11-05 16:04:43 +010045needed to target Windows XP. But not older Windows versions (95, 98), see
Bram Moolenaar18cfa942017-10-08 17:58:44 +020046|msvc-2008-express| below for that
Bram Moolenaar071d4272004-06-13 20:20:40 +000047
48
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000491. Microsoft Visual C++
50=======================
51
Bram Moolenaar73f44392017-10-07 18:38:43 +020052We do not provide download links, since Microsoft keeps changing them. You
Bram Moolenaar18cfa942017-10-08 17:58:44 +020053can search for "Visual Studio Community 2015", for example. You will need to
Bram Moolenaar73f44392017-10-07 18:38:43 +020054create a Microsoft account (it's free).
55
Bram Moolenaar3bf8c3c2017-11-05 16:04:43 +010056When installing "Visual Studio Community 2015 with Update 3" make sure to
57select "custom" and check "Windows XP Support for C++" and all checkboxes
58under "Universal Windows App Development Tools"
59
Bram Moolenaar73f44392017-10-07 18:38:43 +020060
Bram Moolenaar362e1a32006-03-06 23:29:24 +000061Visual Studio
62-------------
63
Bram Moolenaar30a89472016-01-10 14:35:58 +010064Building with Visual Studio (VS 98, VS .NET, VS .NET 2003, VS 2005, VS 2008,
65VS2010, VS2012, VS2013 and VS2015) is straightforward. (These instructions
66should also work for VS 4 and VS 5.)
Bram Moolenaar362e1a32006-03-06 23:29:24 +000067
Bram Moolenaar73f44392017-10-07 18:38:43 +020068Using VS C++ 2008 Express is recommended if you need the binary to run on
69Windows 95 or 97, see |msvc-2008-express| below.
Bram Moolenaar97cc2382012-10-03 21:46:54 +020070
Bram Moolenaar362e1a32006-03-06 23:29:24 +000071To build Vim from the command line with MSVC, use Make_mvc.mak.
72Visual Studio installed a batch file called vcvars32.bat, which you must
73run to set up paths for nmake and MSVC.
74
Bram Moolenaarc9b4b052006-04-30 18:54:39 +000075nmake -f Make_mvc.mak console Win32 SDK or Microsoft Visual C++
76nmake -f Make_mvc.mak GUI=yes GUI Microsoft Visual C++
77nmake -f Make_mvc.mak OLE=yes OLE Microsoft Visual C++
Bram Moolenaar362e1a32006-03-06 23:29:24 +000078nmake -f Make_mvc.mak PERL=C:\Perl PYTHON=C:\Python etc.
Bram Moolenaarc9b4b052006-04-30 18:54:39 +000079 Perl, Python, etc.
Bram Moolenaar362e1a32006-03-06 23:29:24 +000080
81Make_mvc.mak allows a Vim to be built with various different features and
82debug support. Debugging with MS Devstudio is provided by Make_dvc.mak.
83For a description of the use of Make_dvc.mak, look in Make_mvc.mak.
84
85For compiling Gvim with IME support on far-east Windows, add IME=yes
86to the parameters you pass to Make_mvc.mak.
87
88To build Vim from within the Visual Studio IDE, open the Make_ivc.mak project.
89(Note: Make_ivc.mak is not as rich as Make_mvc.mak, which allows for
90far more configuration.) Make_ivc.mak can also be built with nmake.
91
92nmake -f Make_ivc.mak CFG="Vim - Win32 Release gvim"
Bram Moolenaarc9b4b052006-04-30 18:54:39 +000093 GUI Microsoft Visual C++ 4.x or later
Bram Moolenaar362e1a32006-03-06 23:29:24 +000094nmake -f Make_ivc.mak CFG="Vim - Win32 Release gvim OLE"
Bram Moolenaarc9b4b052006-04-30 18:54:39 +000095 OLE Microsoft Visual C++ 4.x or later
Bram Moolenaar362e1a32006-03-06 23:29:24 +000096
97See the specific files for comments and options.
98
99These files have been supplied by George V. Reilly, Ben Singer, Ken Scott and
100Ron Aaron; they have been tested.
101
102
Bram Moolenaar02cfac82016-04-21 14:34:58 +0200103Visual C++ 2008 Express Edition *msvc-2008-express*
104-------------------------------
105
106Visual C++ 2008 Express Edition can be downloaded for free from:
107 http://www.microsoft.com/express/downloads/
108This includes the IDE and the debugger.
109
110To set the environment execute the msvc2008.bat script. You can then build
111Vim with Make_mvc.mak.
112
113For building 64 bit binaries you also need to install the SDK:
114"Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1"
115You don't need the examples and documentation.
116
117If you get an error that Win32.mak can't be found, you have to set the
118variable SDK_INCLUDE_DIR. For example, on Windows 10, installation of MSVC
119puts include files in the following directory:
120 set SDK_INCLUDE_DIR=C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include
121
122
123Visual C++ 2010 Express Edition *msvc-2010-express*
124-------------------------------
125
126Visual C++ 2010 Express Edition can be downloaded for free from:
127 http://www.microsoft.com/express/vc/Default.aspx
128This includes the IDE and the debugger.
129
130To set the environment execute the msvc2010.bat script. You can then build
131Vim with Make_mvc.mak.
132
133
Bram Moolenaar73f44392017-10-07 18:38:43 +0200134Targeting Windows XP with MSVC 2012 and later *new-msvc-windows-xp*
135---------------------------------------------
Bram Moolenaar02cfac82016-04-21 14:34:58 +0200136
137Beginning with Visual C++ 2012, Microsoft changed the behavior of LINK.EXE
138so that it targets Windows 6.0 (Vista) by default. In order to override
139this, the target Windows version number needs to be passed to LINK like
140follows:
141 LINK ... /subsystem:console,5.01
142
143Make_mvc.mak now supports a macro SUBSYSTEM_VER to pass the Windows version.
Bram Moolenaar73f44392017-10-07 18:38:43 +0200144Use lines like follows to target Windows XP x86 (assuming using Visual C++
1452012 under 64-bit Windows):
Bram Moolenaar02cfac82016-04-21 14:34:58 +0200146 set WinSdk71=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A
Bram Moolenaar02cfac82016-04-21 14:34:58 +0200147 set INCLUDE=%WinSdk71%\Include;%INCLUDE%
148 set LIB=%WinSdk71%\Lib;%LIB%
Bram Moolenaar02cfac82016-04-21 14:34:58 +0200149 set CL=/D_USING_V110_SDK71_
150 nmake -f Make_mvc.mak ... WINVER=0x0501 SUBSYSTEM_VER=5.01
151
Bram Moolenaar73f44392017-10-07 18:38:43 +0200152To target Windows XP x64 instead of x86, you need to change the settings of
153LIB and SUBSYSTEM_VER:
154 ...
155 set LIB=%WinSdk71%\Lib\x64;%LIB%
156 ...
157 nmake -f Make_mvc.mak ... WINVER=0x0501 SUBSYSTEM_VER=5.02
158
159If you use Visual C++ 2015 (either Express or Community Edition), executing
160msvc2015.bat will set them automatically. For x86 builds run this without
161options:
162 msvc2015
163For x64 builds run this with the "x86_amd64" option:
164 msvc2015 x86_amd64
165
Bram Moolenaar02cfac82016-04-21 14:34:58 +0200166The following Visual C++ team blog can serve as a reference page:
167 http://blogs.msdn.com/b/vcblog/archive/2012/10/08/windows-xp-targeting-with-c-in-visual-studio-2012.aspx
168
169
170OLDER VERSIONS
171
172The minimal supported version is Windows XP. Building with older compilers
173might still work, but these instructions might be outdated.
174
175If you need the executable to run on Windows 98 or ME, use the 2003 one
176|msvc-2003-toolkit|.
177
Bram Moolenaarc236c162008-07-13 17:41:49 +0000178Visual C++ Toolkit 2003 *msvc-2003-toolkit*
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000179-----------------------
180
Bram Moolenaarc236c162008-07-13 17:41:49 +0000181You could download the Microsoft Visual C++ Toolkit 2003 from
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000182 http://msdn.microsoft.com/visualc/vctoolkit2003/
Bram Moolenaarc236c162008-07-13 17:41:49 +0000183Unfortunately this URL is no longer valid. Inofficial downloads appear to be
184available from links mentioned on these pages (use at your own risk):
185 http://www.filewatcher.com/m/VCToolkitSetup.exe.32952488.0.0.html
186 http://feargame.net/wiki/index.php?title=Building_Source_with_the_VC2003_Toolkit
187
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000188This contains the command-line tools (compiler, linker, CRT headers,
189and libraries) for Visual Studio .NET 2003, but not the Visual Studio IDE.
190To compile and debug Vim with the VC2003 Toolkit, you will also need
191|ms-platform-sdk|, |dotnet-1.1-redist|, |dotnet-1.1-sdk|,
192and |windbg-download|.
193
Bram Moolenaar0fde2902008-03-16 13:54:13 +0000194It's easier to download Visual C++ 2008 Express Edition, |msvc-2008-express|,
195which is freely available in perpetuity.
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000196
197The free Code::Blocks IDE works with the VC2003 Toolkit, as described at
198 http://wiki.codeblocks.org/index.php?title=Integrating_Microsoft_Visual_Toolkit_2003_with_Code::Blocks_IDE
199(This site also takes you through configuring a number of other
200free C compilers for Win32.)
201
202To compile Vim using the VC2003 Toolkit and Make_mvc.mak, you must first
203execute the following commands in a cmd.exe window (the msvcsetup.bat batch
204file can be used):
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000205
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000206 set PATH=%SystemRoot%\Microsoft.NET\Framework\v1.1.4322;%PATH%
207 call "%VCToolkitInstallDir%vcvars32.bat"
208 set MSVCVer=7.1
209 call "%ProgramFiles%\Microsoft Platform SDK\SetEnv.Cmd"
210 set LIB=%ProgramFiles%\Microsoft Visual Studio .NET 2003\Vc7\lib;%LIB%
211
212Now you can build Vim with Make_mvc.mak.
213
214
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000215Getting the Windows Platform SDK *ms-platform-sdk*
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000216
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200217You will also need a copy of the Windows Platform SDK. Specifically, you need
218the Windows Core SDK subset of the Platform SDK, which contains the Windows
219headers and libraries. You need to search for it, Microsoft keeps changing
220the URL.
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000221
222
223Getting the .NET Framework 1.1 Runtime *dotnet-1.1-redist*
224
225You need the .NET Framework 1.1 Redistributable Package from
226 http://www.microsoft.com/downloads/details.aspx?familyid=262d25e3-f589-4842-8157-034d1e7cf3a3
227or from Windows Update:
228 http://windowsupdate.microsoft.com/
229This is needed to install |dotnet-1.1-sdk|. It also contains cvtres.exe,
230which is needed to link Vim.
231
232
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000233Getting the .NET Framework 1.1 SDK *dotnet-1.1-sdk*
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000234
235You need the .NET Framework 1.1 SDK from
236 http://www.microsoft.com/downloads/details.aspx?familyid=9b3a2ca6-3647-4070-9f41-a333c6b9181d
237This contains some additional libraries needed to compile Vim,
238such as msvcrt.lib. You must install |dotnet-1.1-redist| before
239installing the .NET 1.1 SDK.
240
241
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000242Getting the WinDbg debugger *windbg-download*
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000243
244The Debugging Tools for Windows can be downloaded from
245 http://www.microsoft.com/whdc/devtools/debugging/default.mspx
246This includes the WinDbg debugger, which you will want if you ever need
247to debug Vim itself. An earlier version of the Debugging Tools
248is also available through the Platform SDK, |ms-platform-sdk|.
249
250
Bram Moolenaar98385dc2008-06-20 14:52:32 +0000251Visual C++ 2005 Express Edition *msvc-2005-express*
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000252-------------------------------
253
Bram Moolenaarfc1421e2006-04-20 22:17:20 +0000254Visual C++ 2005 Express Edition can be downloaded for free from:
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000255 http://msdn.microsoft.com/vstudio/express/visualC/default.aspx
256This includes the IDE and the debugger. You will also need
257|ms-platform-sdk|. You can build Vim with Make_mvc.mak.
258
259Instructions for integrating the Platform SDK into VC Express:
260 http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx
261
262
Bram Moolenaarce2f2e02014-08-22 18:12:57 +0200263
Bram Moolenaar362e1a32006-03-06 23:29:24 +00002642. MinGW
265========
266
267(written by Ron Aaron: <ronaharon@yahoo.com>)
268
269This is about how to produce a Win32 binary of gvim with MinGW.
270
271First, you need to get the 'mingw32' compiler, which is free for the download
272at:
273
274 http://www.mingw.org/
275
Bram Moolenaar4f7e8212014-11-05 13:53:32 +0100276or you can use 'MinGW-w64' compiler.
277
278 http://mingw-w64.sourceforge.net/
279
Bram Moolenaar3c6f92e2016-01-02 20:26:36 +0100280Or a compiler provided on msys2:
281
282 https://msys2.github.io/
283
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000284Once you have downloaded the compiler binaries, unpack them on your hard disk
285somewhere, and put them on your PATH. If you are on Win95/98 you can edit
286your AUTOEXEC.BAT file with a line like:
287
Bram Moolenaar4f7e8212014-11-05 13:53:32 +0100288 set PATH=C:\MinGW\bin;%PATH%
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000289
290or on NT/2000/XP, go to the Control Panel, (Performance and Maintenance),
Bram Moolenaar3c6f92e2016-01-02 20:26:36 +0100291System, Advanced, and edit the environment from there. If you use msys2
Bram Moolenaar3bf8c3c2017-11-05 16:04:43 +0100292compilers, set your installed paths (normally one of the following):
Bram Moolenaar3c6f92e2016-01-02 20:26:36 +0100293
Bram Moolenaar3bf8c3c2017-11-05 16:04:43 +0100294 C:\msys32\mingw32\bin (32-bit msys2, targeting 32-bit builds)
295 C:\msys64\mingw32\bin (64-bit msys2, targeting 32-bit builds)
296 C:\msys64\mingw64\bin (64-bit msys2, targeting 64-bit builds)
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000297
298Test if gcc is on your path. From a CMD (or COMMAND on '95/98) window:
299
300 C:\> gcc --version
Bram Moolenaar4f7e8212014-11-05 13:53:32 +0100301 gcc (GCC) 4.8.1
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000302
Bram Moolenaar4f7e8212014-11-05 13:53:32 +0100303 C:\> mingw32-make --version
304 GNU Make 3.82.90 (...etc...)
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000305
306Now you are ready to rock 'n' roll. Unpack the vim sources (look on
307www.vim.org for exactly which version of the vim files you need).
308
309Change directory to 'vim\src':
310
311 C:\> cd vim\src
312 C:\VIM\SRC>
313
314and you type:
315
Bram Moolenaar4f7e8212014-11-05 13:53:32 +0100316 mingw32-make -f Make_ming.mak gvim.exe
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000317
318After churning for a while, you will end up with 'gvim.exe' in the 'vim\src'
319directory.
320
321You should not need to do *any* editing of any files to get vim compiled this
322way. If, for some reason, you want the console-mode-only version of vim (this
Bram Moolenaar5e3dae82010-03-02 16:19:40 +0100323is NOT recommended on Win32, especially on '95/'98!!!), you can use:
Bram Moolenaard8e21d32010-01-06 21:16:31 +0100324
Bram Moolenaar4f7e8212014-11-05 13:53:32 +0100325 mingw32-make -f Make_ming.mak GUI=no vim.exe
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000326
327If you are dismayed by how big the EXE is, I strongly recommend you get 'UPX'
328(also free!) and compress the file (typical compression is 50%). UPX can be
329found at
330 http://www.upx.org/
331
Bram Moolenaar91856272012-02-29 16:56:39 +0100332As of 2011, UPX still does not support compressing 64-bit EXE's; if you have
333built a 64-bit vim then an alternative to UPX is 'MPRESS'. MPRESS can be found
334at:
335 http://www.matcode.com/mpress.htm
336
337
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000338ADDITION: NLS support with MinGW
339
340(by Eduardo F. Amatria <eferna1@platea.pntic.mec.es>)
341
342If you want National Language Support, read the file src/po/README_mingw.txt.
343You need to uncomment lines in Make_ming.mak to have NLS defined.
344
345
3463. Cygwin
347=========
348
349Use Make_cyg.mak with Cygwin's GCC. See
350 http://users.skynet.be/antoine.mechelynck/vim/compile.htm
351
Bram Moolenaar4f7e8212014-11-05 13:53:32 +0100352With Cygnus gcc you should use the Unix Makefile instead (you need to get the
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000353Unix archive then). Then you get a Cygwin application (feels like Vim is
Bram Moolenaar48f80c22010-02-24 15:08:27 +0100354running on Unix), while with Make_cyg.mak you get a Windows application (like
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000355with the other makefiles).
356
357
3584. Borland
359===========
360
361Use Make_bc5.mak with Borland C++ 5.x. See
362 http://users.skynet.be/antoine.mechelynck/vim/compile.htm
363
364
3655. Cross compiling for Win32 from a Linux machine
366=================================================
367
368[Update of 1) needs to be verified]
369
370If you like, you can compile the 'mingw' Win32 version from the comfort of
371your Linux (or other unix) box. To do this, you need to follow a few steps:
372 1) Install the mingw32 cross-compiler. See
Bram Moolenaard8e21d32010-01-06 21:16:31 +0100373 http://www.mingw.org/wiki/LinuxCrossMinGW
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000374 http://www.libsdl.org/extras/win32/cross/README.txt
Bram Moolenaara7241f52008-06-24 20:39:31 +0000375 2) Get and unpack both the Unix sources and the extra archive
Bram Moolenaar4f7e8212014-11-05 13:53:32 +0100376 3) in 'Make_cyg_ming.mak', set 'CROSS' to 'yes' instead of 'no'.
377 Make further changes to 'Make_cyg_ming.mak' and 'Make_ming.mak' as you
378 wish. If your cross-compiler prefix differs from the predefined value,
Bram Moolenaard8e21d32010-01-06 21:16:31 +0100379 set 'CROSS_COMPILE' corresponding.
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000380 4) make -f Make_ming.mak gvim.exe
381
382Now you have created the Windows binary from your Linux box! Have fun...
383
384
3856. Building with Python support
386===============================
387
Bram Moolenaar97cc2382012-10-03 21:46:54 +0200388For building with MSVC 2008 the "Windows Installer" from www.python.org
389works fine.
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000390
Bram Moolenaar30a89472016-01-10 14:35:58 +0100391When building, you need to set the following variables at least:
392
393 PYTHON: Where Python is installed. E.g. C:\Python27
394 DYNAMIC_PYTHON: Whether dynamic linking is used. Usually, set to yes.
395 PYTHON_VER: Python version. E.g. 27 for Python 2.7.X.
396
397E.g. When using MSVC (as one line):
398
399 nmake -f Make_mvc.mak
400 PYTHON=C:\Python27 DYNAMIC_PYTHON=yes PYTHON_VER=27
401
Bram Moolenaar97cc2382012-10-03 21:46:54 +0200402(rest written by Ron Aaron: <ronaharon@yahoo.com>)
403
404Building with the mingw32 compiler, and the ActiveState ActivePython:
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000405 http://www.ActiveState.com/Products/ActivePython/
406
407After installing the ActivePython, you will have to create a 'mingw32'
408'libpython20.a' to link with:
Bram Moolenaar3c6f92e2016-01-02 20:26:36 +0100409 cd $PYTHON/libs
410 pexports python20.dll > python20.def
411 dlltool -d python20.def -l libpython20.a
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000412
413Once that is done, edit the 'Make_ming.mak' so the PYTHON variable points to
414the root of the Python installation (C:\Python20, for example). If you are
415cross-compiling on Linux with the mingw32 setup, you need to also convert all
416the 'Include' files to *unix* line-endings. This bash command will do it
417easily:
Bram Moolenaar3c6f92e2016-01-02 20:26:36 +0100418 for fil in *.h ; do vim -e -c 'set ff=unix|w|q' $fil
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000419
420Now just do:
Bram Moolenaar3c6f92e2016-01-02 20:26:36 +0100421 make -f Make_ming.mak gvim.exe
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000422
Bram Moolenaar3c6f92e2016-01-02 20:26:36 +0100423And if you use msys2 to build python support (as one line):
424
425 mingw32-make -f Make_ming.mak PYTHON=c:/msys64/mingw64
426 PYTHON_HOME=c:/msys64/mingw64
427 PYTHONINC=-Ic:/msys64/mingw64/include/python2.7
428 DYNAMIC_PYTHON=yes
429 PYTHON_VER=27
430 DYNAMIC_PYTHON_DLL=libpython2.7.dll
Bram Moolenaar3c6f92e2016-01-02 20:26:36 +0100431 STATIC_STDCPLUS=yes
432
Bram Moolenaar3bf8c3c2017-11-05 16:04:43 +0100433(This is for 64-bit builds. For 32-bit builds, replace mingw64 with mingw32.)
Bram Moolenaar3c6f92e2016-01-02 20:26:36 +0100434You will end up with a Python-enabled, Win32 version. Enjoy!
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000435
436
Bram Moolenaar30a89472016-01-10 14:35:58 +01004377. Building with Python3 support
438================================
439
440For building with MSVC 2008 the "Windows Installer" from www.python.org
Bram Moolenaar59eb0162017-12-10 18:17:44 +0100441works fine. Python 3.6 is recommended.
Bram Moolenaar30a89472016-01-10 14:35:58 +0100442
443When building, you need to set the following variables at least:
444
Bram Moolenaar59eb0162017-12-10 18:17:44 +0100445 PYTHON3: Where Python3 is installed. E.g. C:\Python36
Bram Moolenaar30a89472016-01-10 14:35:58 +0100446 DYNAMIC_PYTHON3: Whether dynamic linking is used. Usually, set to yes.
Bram Moolenaar59eb0162017-12-10 18:17:44 +0100447 PYTHON3_VER: Python3 version. E.g. 36 for Python 3.6.X.
Bram Moolenaar30a89472016-01-10 14:35:58 +0100448
449E.g. When using MSVC (as one line):
450
451 nmake -f Make_mvc.mak
Bram Moolenaar59eb0162017-12-10 18:17:44 +0100452 PYTHON3=C:\Python36 DYNAMIC_PYTHON3=yes PYTHON3_VER=36
453
454
455When using msys2 and link with Python3 bundled with msys2 (as one line):
456
457 mingw32-make -f Make_ming.mak PYTHON3=c:/msys64/mingw64
458 PYTHON3_HOME=c:/msys64/mingw64
459 PYTHON3INC=-Ic:/msys64/mingw64/include/python3.6m
460 DYNAMIC_PYTHON3=yes
461 PYTHON3_VER=36
462 DYNAMIC_PYTHON3_DLL=libpython3.6m.dll
463 STATIC_STDCPLUS=yes
464
465(This is for 64-bit builds. For 32-bit builds, replace mingw64 with mingw32.)
Bram Moolenaar30a89472016-01-10 14:35:58 +0100466
467
Bram Moolenaar18cfa942017-10-08 17:58:44 +02004688. Building with Racket or MzScheme support
Bram Moolenaar4e640bd2016-01-16 16:20:38 +0100469========================================
470
Bram Moolenaar18cfa942017-10-08 17:58:44 +02004711) Building with Racket support (newest)
Bram Moolenaar4e640bd2016-01-16 16:20:38 +0100472
473MzScheme and PLT Scheme names have been rebranded as Racket. Vim with Racket
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200474support can be built with either MSVC or MinGW (or Cygwin).
475Get it from https://download.racket-lang.org/
Bram Moolenaar4e640bd2016-01-16 16:20:38 +0100476
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200477Copy lib/libracket{version}.dll to your Windows system directory. The system
478directory depends on your Windows bitness and Vim bitness:
479 32-bit Vim on 32-bit Windows: C:\Windows\System32
480 32-bit Vim on 64-bit Windows: C:\Windows\SysWOW64
481 64-bit Vim on 64-bit Windows: C:\Windows\System32
482
483For building you need to set the following variables:
Bram Moolenaar4e640bd2016-01-16 16:20:38 +0100484
485 MZSCHEME: Where Racket is installed.
486 E.g. C:\Program Files (x86)\Racket
487 DYNAMIC_MZSCHEME: Whether dynamic linking is used. Usually, set to yes.
Bram Moolenaarf55e4c82017-08-01 20:44:53 +0200488 MZSCHEME_VER: Racket DLL version which is used for the file name.
Bram Moolenaar73f44392017-10-07 18:38:43 +0200489 See below for a list of MZSCHEME_VER.
Bram Moolenaarf55e4c82017-08-01 20:44:53 +0200490 The DLL can be found under the lib directory. E.g.
491 C:\Program Files (x86)\Racket\lib\libracket3m_XXXXXX.dll
Bram Moolenaar4e640bd2016-01-16 16:20:38 +0100492 MZSCHEME_COLLECTS: (Optional) Path of the collects directory used at
493 runtime. Default: $(MZSCHEME)\collects
494 User can override this with the PLTCOLLECTS environment
495 variable.
496
Bram Moolenaar73f44392017-10-07 18:38:43 +0200497List of MZSCHEME_VER (incomplete):
498
499 Racket ver. | MZSCHEME_VER
500 ==========================
501 6.3 | 3m_9z0ds0
502 6.6 | 3m_a0solc
503 6.8 | 3m_a1zjsw
504 6.10 | 3m_a36fs8
505
506
Bram Moolenaar4e640bd2016-01-16 16:20:38 +0100507E.g. When using MSVC (as one line):
508
509 nmake -f Make_mvc.mak
510 MZSCHEME="C:\Program Files (x86)\Racket" DYNAMIC_MZSCHEME=yes
511 MZSCHEME_VER=3m_9z0ds0
512
513Or when using MinGW (as one line):
514
515 mingw32-make -f Make_ming.mak
516 MZSCHEME='C:/Program\ Files\ (x86)/Racket' DYNAMIC_MZSCHEME=yes
517 MZSCHEME_VER=3m_9z0ds0
518
519 Spaces should be escaped with '\'.
520
521
Bram Moolenaar18cfa942017-10-08 17:58:44 +02005222) Building with MzScheme support (older)
523
524(written by Sergey Khorev <sergey.khorev@gmail.com>)
525
526Vim with MzScheme (http://www.plt-scheme.org/software/mzscheme) support can
527be built with either MSVC, or MinGW, or Cygwin. Supported versions are 205 and
528above (including 299 and 30x series).
529
530The MSVC build is quite straightforward. Simply invoke (in one line)
531nmake -fMake_mvc.mak MZSCHEME=<Path-to-MzScheme>
532 [MZSCHEME_VER=<MzScheme-version>] [DYNAMIC_MZSCHEME=<yes or no>]
533where <MzScheme-version> is the last seven characters from MzScheme dll name
534(libmzschXXXXXXX.dll).
535If DYNAMIC_MZSCHEME=yes, resulting executable will not depend on MzScheme
536DLL's, but will load them in runtime on demand.
537
538Building dynamic MzScheme support on MinGW and Cygwin is similar. Take into
539account that <Path-to-MzScheme> should contain slashes rather than backslashes
540(e.g. d:/Develop/MzScheme)
541
542"Static" MzScheme support (Vim executable will depend on MzScheme DLLs
543explicitly) on MinGW and Cygwin requires additional step.
544
545libmzschXXXXXXX.dll and libmzgcXXXXXXX.dll should be copied from
546%WINDOWS%\System32 to other location (either build directory, some temporary
547dir or even MzScheme home).
548
549Pass that path as MZSCHEME_DLLS parameter for Make. E.g.,
550make -f Make_cyg.mak MZSCHEME=d:/Develop/MzScheme MZSCHEME_VER=209_000
551 MZSCHEME_DLLS=c:/Temp DYNAMIC_MZSCHEME=no
552
553After a successful build, these dlls can be freely removed, leaving them in
554%WINDOWS%\System32 only.
555
556
557
Bram Moolenaar30a89472016-01-10 14:35:58 +01005589. Building with Lua support
559============================
560
Bram Moolenaar4e640bd2016-01-16 16:20:38 +0100561Vim with Lua support can be built with either MSVC or MinGW (or maybe Cygwin).
562You can use binaries from LuaBinaries: http://luabinaries.sourceforge.net/
563This also applies to when you get a Vim executable and don't build yourself,
564do the part up to "Build".
Bram Moolenaar30a89472016-01-10 14:35:58 +0100565
5661) Download and install LuaBinaries
Bram Moolenaar4e640bd2016-01-16 16:20:38 +0100567
Bram Moolenaar30a89472016-01-10 14:35:58 +0100568Go to the Download page of LuaBinaries:
Bram Moolenaar4e640bd2016-01-16 16:20:38 +0100569 http://luabinaries.sourceforge.net/download.html
Bram Moolenaar30a89472016-01-10 14:35:58 +0100570
571Download lua-X.Y.Z_Win32_dllw4_lib.zip for x86 or
Bram Moolenaar4e640bd2016-01-16 16:20:38 +0100572lua-X.Y.Z_Win64_dllw4_lib.zip for x64. You can use them both for MSVC and
Bram Moolenaar30a89472016-01-10 14:35:58 +0100573MinGW.
574
575Unpack it to a working directory. E.g. C:\projects\lua53.
576Lua's header files will be installed under the include directory.
577
Bram Moolenaar4e640bd2016-01-16 16:20:38 +0100578Copy luaXY.dll to your Windows system directory. The system directory depends
579on your Windows bitness and Vim bitness:
580 32-bit Vim on 32-bit Windows: C:\Windows\System32
581 32-bit Vim on 64-bit Windows: C:\Windows\SysWOW64
582 64-bit Vim on 64-bit Windows: C:\Windows\System32
583
584Or another option is copying luaXY.dll to the directory where gvim.exe
585(or vim.exe) is.
586
Bram Moolenaar30a89472016-01-10 14:35:58 +0100587
5882) Build
Bram Moolenaar30a89472016-01-10 14:35:58 +0100589
Bram Moolenaar4e640bd2016-01-16 16:20:38 +0100590You need to set LUA, DYNAMIC_LUA and LUA_VER.
591
592 LUA: Where Lua's header files are installed. E.g. C:\projects\lua53.
593 DYNAMIC_LUA: Whether dynamic linking is used. Set to yes.
594 LUA_VER: Lua version. E.g. 53 for Lua 5.3.X.
Bram Moolenaar30a89472016-01-10 14:35:58 +0100595
596E.g. When using MSVC (as one line):
597
598 nmake -f Make_mvc.mak
599 LUA=C:\projects\lua53 DYNAMIC_LUA=yes LUA_VER=53
600
601Or when using MinGW (as one line):
602
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200603 mingw32-make -f Make_ming.mak
Bram Moolenaar3bf8c3c2017-11-05 16:04:43 +0100604 LUA=C:/projects/lua53 DYNAMIC_LUA=yes LUA_VER=53
Bram Moolenaar30a89472016-01-10 14:35:58 +0100605
Bram Moolenaar4e640bd2016-01-16 16:20:38 +0100606
607Or when using Cygwin (as one line) (untested):
Bram Moolenaar30a89472016-01-10 14:35:58 +0100608
609 make -f Make_cyg.mak
610 LUA=/cygdrive/c/projects/lua53 DYNAMIC_LUA=yes LUA_VER=53
611
612
61310. Building with Perl support
614==============================
615
616Vim with Perl support can be built with either MSVC or MinGW (or Cygwin).
617You can use binaries from ActiveState (ActivePerl) or Strawberry Perl.
618
619 http://www.activestate.com/activeperl
620 http://strawberryperl.com/
621
622When building, you need to set the following variables:
623
624 PERL: Where perl is installed. E.g. C:\Perl, C:\Strawberry\perl
625 DYNAMIC_PERL: Whether dynamic linking is used. Usually, set to yes.
626 PERL_VER: Perl version. E.g. 522 for Perl 5.22.X.
627
628E.g. When using MSVC (as one line):
629
630 nmake -f Make_mvc.mak
631 PERL=C:\Perl DYNAMIC_PERL=yes PERL_VER=522
632
633Or when using MinGW (as one line):
634
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200635 mingw32-make -f Make_ming.mak
Bram Moolenaar3bf8c3c2017-11-05 16:04:43 +0100636 PERL=C:/Perl DYNAMIC_PERL=yes PERL_VER=522
Bram Moolenaar30a89472016-01-10 14:35:58 +0100637
638
63911. Building with Ruby support
640==============================
641
642Vim with Ruby support can be built with either MSVC or MinGW (or Cygwin).
643Ruby doesn't provide the official Windows binaries. The most widely used
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200644Windows binaries might be RubyInstaller. Currently Ruby 2.4 is recommended.
Bram Moolenaar30a89472016-01-10 14:35:58 +0100645
646 http://rubyinstaller.org/
647
648If you use MinGW you can easily build with RubyInstaller, but if you use MSVC
649you need some tricks described below.
650(Another binary distribution is ActiveScriptRuby:
651 http://www.artonx.org/data/asr/)
652
653When building, you need to set the following variables at least:
654
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200655 RUBY: Where ruby is installed. E.g. C:\Ruby24
Bram Moolenaar6384c5d2016-09-06 22:06:35 +0200656 DYNAMIC_RUBY: Whether dynamic linking is used. Usually, set to yes.
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200657 RUBY_VER: Ruby version. E.g. 24 for Ruby 2.4.X.
Bram Moolenaar6384c5d2016-09-06 22:06:35 +0200658 RUBY_API_VER_LONG: Ruby API version in a long format.
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200659 E.g. 2.4.0 for Ruby 2.4.X.
Bram Moolenaar30a89472016-01-10 14:35:58 +0100660
661Ruby version vs. Ruby API version:
662
663 Ruby ver. | Ruby API ver.
664 =========================
665 1.8.X | 1.8
666 1.9.[1-3] | 1.9.1
667 2.0.0 | 2.0.0
668 2.X.Y | 2.X.0
669
670(Ruby 1.9.0 is excluded from the table because it is an unstable version.)
671
672
673A) Using MSVC
674
675If you want to link with ruby, normally you must use the same compiler as
676which was used to build the ruby binary. RubyInstaller is built with MinGW,
677so normally you cannot use MSVC for building Vim if you want to link with
Bram Moolenaar02cfac82016-04-21 14:34:58 +0200678RubyInstaller. If you use a different compiler, there are mainly two problems:
Bram Moolenaar30a89472016-01-10 14:35:58 +0100679config.h and Ruby's DLL name. Here are the steps for working around them:
680
681 1) Download and Install RubyInstaller.
682 You can install RubyInstaller with the default options and directory.
683 E.g.:
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200684 C:\Ruby24 (32-bit) or C:\Ruby24-x64 (64-bit)
Bram Moolenaar30a89472016-01-10 14:35:58 +0100685
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200686 Ruby 2.4.X is used in this example.
Bram Moolenaar30a89472016-01-10 14:35:58 +0100687
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200688 2) Download Ruby 2.4.X's source code and generate config.h:
Bram Moolenaar30a89472016-01-10 14:35:58 +0100689
690 cd C:\projects
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200691 git clone https://github.com/ruby/ruby.git -b ruby_2_4
Bram Moolenaar30a89472016-01-10 14:35:58 +0100692 cd ruby
693 win32\configure.bat
694 nmake .config.h.time
695
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200696 Note that ruby_2_4 is the branch name for Ruby 2.4.X's source code.
Bram Moolenaar30a89472016-01-10 14:35:58 +0100697 There is no need to build whole Ruby, just config.h is needed.
Bram Moolenaar3bf8c3c2017-11-05 16:04:43 +0100698 If you use 32-bit MSVC 2015, the config.h is generated in the
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200699 .ext\include\i386-mswin32_140 directory.
Bram Moolenaar59eb0162017-12-10 18:17:44 +0100700 If you use 64-bit MSVC 2015, the config.h is generated in the
701 .ext\include\x64-mswin64_140 directory.
Bram Moolenaar30a89472016-01-10 14:35:58 +0100702
703 3) Install the generated config.h.
704
Bram Moolenaar59eb0162017-12-10 18:17:44 +0100705 For 32-bit version:
706
Bram Moolenaar3bf8c3c2017-11-05 16:04:43 +0100707 xcopy /s .ext\include C:\Ruby24\include\ruby-2.4.0
Bram Moolenaar30a89472016-01-10 14:35:58 +0100708
Bram Moolenaar59eb0162017-12-10 18:17:44 +0100709 For 64-bit version:
710
711 xcopy /s .ext\include C:\Ruby24-x64\include\ruby-2.4.0
712
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200713 Note that 2.4.0 is Ruby API version of Ruby 2.4.X.
714 You may need to close the console and reopen it to pick up the new $PATH.
Bram Moolenaar30a89472016-01-10 14:35:58 +0100715
716 4) Build Vim. Note that you need to adjust some variables (as one line):
717
Bram Moolenaar59eb0162017-12-10 18:17:44 +0100718 For 32-bit version:
719
Bram Moolenaar30a89472016-01-10 14:35:58 +0100720 nmake -f Make_mvc.mak
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200721 RUBY=C:\Ruby24 DYNAMIC_RUBY=yes RUBY_VER=24 RUBY_API_VER_LONG=2.4.0
Bram Moolenaar30a89472016-01-10 14:35:58 +0100722 RUBY_MSVCRT_NAME=msvcrt
Bram Moolenaar02cfac82016-04-21 14:34:58 +0200723 WINVER=0x501
Bram Moolenaar30a89472016-01-10 14:35:58 +0100724
Bram Moolenaar59eb0162017-12-10 18:17:44 +0100725 For 64-bit version, replace RUBY=C:\Ruby24 with RUBY=C:\Ruby24-x64.
726
Bram Moolenaar02cfac82016-04-21 14:34:58 +0200727 If you set WINVER explicitly, it must be set to >=0x500, when building
728 with Ruby 2.1 or later. (Default is 0x501.)
Bram Moolenaar30a89472016-01-10 14:35:58 +0100729 When using this trick, you also need to set RUBY_MSVCRT_NAME to msvcrt
730 which is used for the Ruby's DLL name.
731
732B) Using MinGW
733
734Using MinGW is easier than using MSVC when linking with RubyInstaller.
735After you install RubyInstaller, just type this (as one line):
736
737 mingw32-make -f Make_ming.mak
Bram Moolenaar3bf8c3c2017-11-05 16:04:43 +0100738 RUBY=C:/Ruby24 DYNAMIC_RUBY=yes RUBY_VER=24 RUBY_API_VER_LONG=2.4.0
Bram Moolenaar02cfac82016-04-21 14:34:58 +0200739 WINVER=0x501
Bram Moolenaar30a89472016-01-10 14:35:58 +0100740
Bram Moolenaar59eb0162017-12-10 18:17:44 +0100741For 64-bit version, replace RUBY=C:/Ruby24 with RUBY=C:/Ruby24-x64.
Bram Moolenaar02cfac82016-04-21 14:34:58 +0200742If you set WINVER explicitly, it must be set to >=0x500, when building with
743Ruby 2.1 or later. (Default is 0x501.)
744
Bram Moolenaar30a89472016-01-10 14:35:58 +0100745
746
74712. Building with Tcl support
748=============================
749
750Vim with Tcl support can be built with either MSVC or MinGW (or Cygwin).
751You can use binaries from ActiveState (ActiveTcl).
752
753 http://www.activestate.com/activetcl
754
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200755For MSVC 2015 use version 8.6.6 or later.
Bram Moolenaar30a89472016-01-10 14:35:58 +0100756When building, you need to set the following variables:
757
758 TCL: Where tcl is installed. E.g. C:\Tcl86
759 DYNAMIC_TCL: Whether dynamic linking is used. Usually, set to yes.
760 TCL_VER: Tcl version in a short format. E.g. 86 for Tcl 8.6.X.
761 TCL_VER_LONG: Tcl version in a long format. E.g. 8.6 for Tcl 8.6.X.
762
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200763Sometimes the Tcl dll name changes. E.g. ActiveTcl 8.6.4 comes with tcl86.dll,
764but ActiveTcl 8.6.6 comes with tcl86t.dll. You can set the dll name by setting
765the TCL_DLL variable:
766 TCL_DLL=tcl86t.dll
767
Bram Moolenaar30a89472016-01-10 14:35:58 +0100768E.g. When using MSVC (as one line):
769
770 nmake -f Make_mvc.mak
771 TCL=C:\Tcl86 DYNAMIC_TCL=yes TCL_VER=86 TCL_VER_LONG=8.6
772
773Or when using MinGW (as one line):
774
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200775 mingw32-make -f Make_ming.mak
Bram Moolenaar3bf8c3c2017-11-05 16:04:43 +0100776 TCL=C:/Tcl86 DYNAMIC_TCL=yes TCL_VER=86 TCL_VER_LONG=8.6
Bram Moolenaar30a89472016-01-10 14:35:58 +0100777
778
Bram Moolenaar8f84c3a2017-07-22 16:14:44 +020077913. Building with Terminal support
780==================================
781
Bram Moolenaar8a773062017-07-24 22:29:21 +0200782Vim with Terminal support can be built with either MSVC, MinGW or Cygwin.
Bram Moolenaar2aeaf3f2017-07-23 17:11:15 +0200783This uses the included libvterm and winpty. No extra header files or
Bram Moolenaar8a773062017-07-24 22:29:21 +0200784libraries are needed for building. Just set TERMINAL to yes.
Bram Moolenaar2aeaf3f2017-07-23 17:11:15 +0200785
Bram Moolenaar8a773062017-07-24 22:29:21 +0200786E.g. When using MSVC:
Bram Moolenaar8f84c3a2017-07-22 16:14:44 +0200787
Bram Moolenaar8a773062017-07-24 22:29:21 +0200788 nmake -f Make_mvc.mak TERMINAL=yes
Bram Moolenaar8f84c3a2017-07-22 16:14:44 +0200789
Bram Moolenaar8a773062017-07-24 22:29:21 +0200790Or when using MinGW (as one line):
Bram Moolenaar8f84c3a2017-07-22 16:14:44 +0200791
Bram Moolenaar18cfa942017-10-08 17:58:44 +0200792 mingw32-make -f Make_ming.mak TERMINAL=yes
Bram Moolenaar8f84c3a2017-07-22 16:14:44 +0200793
794
79514. Windows 3.1x
Bram Moolenaar30a89472016-01-10 14:35:58 +0100796================
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000797
Bram Moolenaar6e722e22016-02-26 19:58:58 +0100798The Windows 3.1x support was removed in patch 7.4.1364.
Bram Moolenaar362e1a32006-03-06 23:29:24 +0000799
800
Bram Moolenaar8f84c3a2017-07-22 16:14:44 +020080115. MS-DOS
Bram Moolenaar30a89472016-01-10 14:35:58 +0100802==========
Bram Moolenaar071d4272004-06-13 20:20:40 +0000803
Bram Moolenaar3bf8c3c2017-11-05 16:04:43 +0100804The MS-DOS support was removed in patch 7.4.1399. Only very old Vim versions
805work on MS-DOS because of the limited amount of memory available.
Bram Moolenaar734d9982011-07-15 13:52:04 +0200806
807
Bram Moolenaar8f84c3a2017-07-22 16:14:44 +020080816. Installing after building from sources
Bram Moolenaar734d9982011-07-15 13:52:04 +0200809==========================================
810
Bram Moolenaar3bf8c3c2017-11-05 16:04:43 +0100811[provided by Michael Soyka, updated by Ken Takata]
Bram Moolenaar734d9982011-07-15 13:52:04 +0200812
813After you've built the Vim binaries as described above, you're ready to
814install Vim on your system. However, if you've obtained the Vim sources
Bram Moolenaar30a89472016-01-10 14:35:58 +0100815using Git, Mercurial or by downloading them as a unix tar file, you must
Bram Moolenaarbbe917d2016-09-21 22:41:24 +0200816first create a "vim80" directory. If you instead downloaded the sources as
Bram Moolenaar734d9982011-07-15 13:52:04 +0200817zip files, you can skip this setup as the zip archives already have the
Bram Moolenaar3c6f92e2016-01-02 20:26:36 +0100818correct directory structure.
Bram Moolenaar734d9982011-07-15 13:52:04 +0200819
Bram Moolenaarbbe917d2016-09-21 22:41:24 +0200820 A. Create a Vim "runtime" subdirectory named "vim80"
Bram Moolenaar734d9982011-07-15 13:52:04 +0200821 -----------------------------------------------------
Bram Moolenaar3c6f92e2016-01-02 20:26:36 +0100822 If you obtained your Vim sources as zip files, you can skip this step.
Bram Moolenaar734d9982011-07-15 13:52:04 +0200823 Otherwise, continue reading.
824
825 Go to the directory that contains the Vim "src" and "runtime"
Bram Moolenaarbbe917d2016-09-21 22:41:24 +0200826 directories and create a new subdirectory named "vim80".
Bram Moolenaar3c6f92e2016-01-02 20:26:36 +0100827
Bram Moolenaarbbe917d2016-09-21 22:41:24 +0200828 Copy the "runtime" files into "vim80":
829 copy runtime\* vim80
Bram Moolenaar734d9982011-07-15 13:52:04 +0200830
Bram Moolenaarbbe917d2016-09-21 22:41:24 +0200831 B. Copy the new binaries into the "vim80" directory
Bram Moolenaar734d9982011-07-15 13:52:04 +0200832 ----------------------------------------------------
833 Regardless of how you installed the Vim sources, you need to copy the
Bram Moolenaarbbe917d2016-09-21 22:41:24 +0200834 new binaries you created above into "vim80":
Bram Moolenaar734d9982011-07-15 13:52:04 +0200835
Bram Moolenaarbbe917d2016-09-21 22:41:24 +0200836 copy src\*.exe vim80
Bram Moolenaar3bf8c3c2017-11-05 16:04:43 +0100837 copy src\tee\tee.exe vim80
Bram Moolenaarbbe917d2016-09-21 22:41:24 +0200838 copy src\xxd\xxd.exe vim80
Bram Moolenaar734d9982011-07-15 13:52:04 +0200839
Bram Moolenaar3bf8c3c2017-11-05 16:04:43 +0100840 To install the "Edit with Vim" popup menu, you need both 32-bit and 64-bit
841 versions of gvimext.dll. They should be copied to "vim80\GvimExt32" and
842 "vim80\GvimExt64" respectively.
843 First, build the 32-bit version, then:
844
845 mkdir vim80\GvimExt32
846 copy src\GvimExt\gvimext.dll vim80\GvimExt32
847
848 Next, clean the 32-bit version and build the 64-bit version, then:
849
850 mkdir vim80\GvimExt64
851 copy src\GvimExt\gvimext.dll vim80\GvimExt64
852
853 C. Copy gettext and iconv DLLs into the "vim80" directory
854 ----------------------------------------------------------
855 Get gettext and iconv DLLs from the following site:
856 https://github.com/mlocati/gettext-iconv-windows/releases
857 Both 64- and 32-bit versions are needed.
858 Download the files gettextX.X.X.X-iconvX.XX-shared-{32,64}.zip, extract
859 DLLs and place them as follows:
860
861 vim80\
862 | libintl-8.dll
863 | libiconv-2.dll
864 | libgcc_s_sjlj-1.dll (only for 32-bit)
865 |
866 + GvimExt32\
867 | libintl-8.dll
868 | libiconv-2.dll
869 | libgcc_s_sjlj-1.dll
870 |
871 ` GvimExt64\
872 libintl-8.dll
873 libiconv-2.dll
874
875 The DLLs in the "vim80" should be the same bitness with the (g)vim.exe.
876
877 D. Move the "vim80" directory into the Vim installation subdirectory
Bram Moolenaar734d9982011-07-15 13:52:04 +0200878 ---------------------------------------------------------------------
Bram Moolenaarbbe917d2016-09-21 22:41:24 +0200879 Move the "vim80" subdirectory into the subdirectory where you want Vim
Bram Moolenaar3c6f92e2016-01-02 20:26:36 +0100880 to be installed. Typically, this subdirectory will be named "vim".
Bram Moolenaarbbe917d2016-09-21 22:41:24 +0200881 If you already have a "vim80" subdirectory in "vim", delete it first
Bram Moolenaar3c6f92e2016-01-02 20:26:36 +0100882 by running its uninstal.exe program.
Bram Moolenaar734d9982011-07-15 13:52:04 +0200883
Bram Moolenaar3bf8c3c2017-11-05 16:04:43 +0100884 E. Install Vim
Bram Moolenaar734d9982011-07-15 13:52:04 +0200885 ---------------
Bram Moolenaarbbe917d2016-09-21 22:41:24 +0200886 "cd" to your Vim installation subdirectory "vim\vim80" and run the
Bram Moolenaar734d9982011-07-15 13:52:04 +0200887 "install.exe" program. It will ask you a number of questions about
888 how you would like to have your Vim setup. Among these are:
889 - You can tell it to write a "_vimrc" file with your preferences in the
890 parent directory.
891 - It can also install an "Edit with Vim" entry in the Windows Explorer
892 popup menu.
893 - You can have it create batch files, so that you can run Vim from the
894 console or in a shell. You can select one of the directories in your
Bram Moolenaar3c6f92e2016-01-02 20:26:36 +0100895 PATH or add the directory to PATH using the Windows Control Panel.
Bram Moolenaar734d9982011-07-15 13:52:04 +0200896 - Create entries for Vim on the desktop and in the Start menu.
897
898Happy Vimming!