1 INSTALLpc.txt - Installation of Vim on PC
3 This file contains instructions for compiling Vim. If you already have an
4 executable version of Vim, you don't need this.
6 More information can be found here: (Very stale now.)
8 http://mywebpage.netscape.com/sharppeople/vim/howto/
10 The file "feature.h" can be edited to match your preferences. You can skip
11 this, then you will get the default behavior as is documented, which should
12 be fine for most people.
14 With the exception of two sections (Windows 3.1 and MS-DOS), this document
15 assumes that you are building Vim for Win32 or later.
16 (Windows 95/98/Me/NT/2000/XP/2003/Vista/7)
20 1. Microsoft Visual C++
24 5. Cross compiling for Win32 from a Linux machine
25 6. Building with Python support
26 7. Building with MzScheme support
30 10. Installing after building from sources
33 The currently preferred method is using the free Visual C++ Toolkit 2008
34 |msvc-2008-express|, the produced binary runs on most MS-Windows systems. If
35 you need the executable to run on Windows 98 or ME, use the 2003 one
39 1. Microsoft Visual C++
40 =======================
45 Building with Visual Studio (VS 98, VS .NET, VS .NET 2003, VS 2005, and VS 2008)
46 is straightforward. (These instructions should also work for VS 4 and VS 5.)
48 To build Vim from the command line with MSVC, use Make_mvc.mak.
49 Visual Studio installed a batch file called vcvars32.bat, which you must
50 run to set up paths for nmake and MSVC.
52 nmake -f Make_mvc.mak console Win32 SDK or Microsoft Visual C++
53 nmake -f Make_mvc.mak GUI=yes GUI Microsoft Visual C++
54 nmake -f Make_mvc.mak OLE=yes OLE Microsoft Visual C++
55 nmake -f Make_mvc.mak PERL=C:\Perl PYTHON=C:\Python etc.
58 Make_mvc.mak allows a Vim to be built with various different features and
59 debug support. Debugging with MS Devstudio is provided by Make_dvc.mak.
60 For a description of the use of Make_dvc.mak, look in Make_mvc.mak.
62 For compiling Gvim with IME support on far-east Windows, add IME=yes
63 to the parameters you pass to Make_mvc.mak.
65 To build Vim from within the Visual Studio IDE, open the Make_ivc.mak project.
66 (Note: Make_ivc.mak is not as rich as Make_mvc.mak, which allows for
67 far more configuration.) Make_ivc.mak can also be built with nmake.
69 nmake -f Make_ivc.mak CFG="Vim - Win32 Release gvim"
70 GUI Microsoft Visual C++ 4.x or later
71 nmake -f Make_ivc.mak CFG="Vim - Win32 Release gvim OLE"
72 OLE Microsoft Visual C++ 4.x or later
74 See the specific files for comments and options.
76 These files have been supplied by George V. Reilly, Ben Singer, Ken Scott and
77 Ron Aaron; they have been tested.
80 Visual C++ Toolkit 2003 *msvc-2003-toolkit*
81 -----------------------
83 You could download the Microsoft Visual C++ Toolkit 2003 from
84 http://msdn.microsoft.com/visualc/vctoolkit2003/
85 Unfortunately this URL is no longer valid. Inofficial downloads appear to be
86 available from links mentioned on these pages (use at your own risk):
87 http://www.filewatcher.com/m/VCToolkitSetup.exe.32952488.0.0.html
88 http://feargame.net/wiki/index.php?title=Building_Source_with_the_VC2003_Toolkit
90 This contains the command-line tools (compiler, linker, CRT headers,
91 and libraries) for Visual Studio .NET 2003, but not the Visual Studio IDE.
92 To compile and debug Vim with the VC2003 Toolkit, you will also need
93 |ms-platform-sdk|, |dotnet-1.1-redist|, |dotnet-1.1-sdk|,
94 and |windbg-download|.
96 It's easier to download Visual C++ 2008 Express Edition, |msvc-2008-express|,
97 which is freely available in perpetuity.
99 The free Code::Blocks IDE works with the VC2003 Toolkit, as described at
100 http://wiki.codeblocks.org/index.php?title=Integrating_Microsoft_Visual_Toolkit_2003_with_Code::Blocks_IDE
101 (This site also takes you through configuring a number of other
102 free C compilers for Win32.)
104 To compile Vim using the VC2003 Toolkit and Make_mvc.mak, you must first
105 execute the following commands in a cmd.exe window (the msvcsetup.bat batch
108 set PATH=%SystemRoot%\Microsoft.NET\Framework\v1.1.4322;%PATH%
109 call "%VCToolkitInstallDir%vcvars32.bat"
111 call "%ProgramFiles%\Microsoft Platform SDK\SetEnv.Cmd"
112 set LIB=%ProgramFiles%\Microsoft Visual Studio .NET 2003\Vc7\lib;%LIB%
114 Now you can build Vim with Make_mvc.mak.
117 Getting the Windows Platform SDK *ms-platform-sdk*
119 You will also need a copy of the Windows Platform SDK from
120 http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
121 Specifically, you need the Windows Core SDK subset of the Platform SDK,
122 which contains the Windows headers and libraries.
125 Getting the .NET Framework 1.1 Runtime *dotnet-1.1-redist*
127 You need the .NET Framework 1.1 Redistributable Package from
128 http://www.microsoft.com/downloads/details.aspx?familyid=262d25e3-f589-4842-8157-034d1e7cf3a3
129 or from Windows Update:
130 http://windowsupdate.microsoft.com/
131 This is needed to install |dotnet-1.1-sdk|. It also contains cvtres.exe,
132 which is needed to link Vim.
135 Getting the .NET Framework 1.1 SDK *dotnet-1.1-sdk*
137 You need the .NET Framework 1.1 SDK from
138 http://www.microsoft.com/downloads/details.aspx?familyid=9b3a2ca6-3647-4070-9f41-a333c6b9181d
139 This contains some additional libraries needed to compile Vim,
140 such as msvcrt.lib. You must install |dotnet-1.1-redist| before
141 installing the .NET 1.1 SDK.
144 Getting the WinDbg debugger *windbg-download*
146 The Debugging Tools for Windows can be downloaded from
147 http://www.microsoft.com/whdc/devtools/debugging/default.mspx
148 This includes the WinDbg debugger, which you will want if you ever need
149 to debug Vim itself. An earlier version of the Debugging Tools
150 is also available through the Platform SDK, |ms-platform-sdk|.
153 Visual C++ 2005 Express Edition *msvc-2005-express*
154 -------------------------------
156 Visual C++ 2005 Express Edition can be downloaded for free from:
157 http://msdn.microsoft.com/vstudio/express/visualC/default.aspx
158 This includes the IDE and the debugger. You will also need
159 |ms-platform-sdk|. You can build Vim with Make_mvc.mak.
161 Instructions for integrating the Platform SDK into VC Express:
162 http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx
165 Visual C++ 2008 Express Edition *msvc-2008-express*
166 -------------------------------
168 Visual C++ 2008 Express Edition can be downloaded for free from:
169 http://www.microsoft.com/express/downloads/
170 This includes the IDE and the debugger.
172 To set the environment execute the msvc2008.bat script. You can then build
173 Vim with Make_mvc.mak.
176 Visual C++ 2010 Express Edition *msvc-2010-express*
177 -------------------------------
179 Visual C++ 2010 Express Edition can be downloaded for free from:
180 http://www.microsoft.com/express/vc/Default.aspx
181 This includes the IDE and the debugger.
183 To set the environment execute the msvc2010.bat script. You can then build
184 Vim with Make_mvc.mak.
190 (written by Ron Aaron: <ronaharon@yahoo.com>)
192 This is about how to produce a Win32 binary of gvim with MinGW.
194 First, you need to get the 'mingw32' compiler, which is free for the download
197 http://www.mingw.org/
199 Once you have downloaded the compiler binaries, unpack them on your hard disk
200 somewhere, and put them on your PATH. If you are on Win95/98 you can edit
201 your AUTOEXEC.BAT file with a line like:
203 set PATH=C:\GCC-2.95.2\BIN;%PATH%
205 or on NT/2000/XP, go to the Control Panel, (Performance and Maintenance),
206 System, Advanced, and edit the environment from there.
208 Test if gcc is on your path. From a CMD (or COMMAND on '95/98) window:
214 GNU Make version 3.77 (...etc...)
216 Now you are ready to rock 'n' roll. Unpack the vim sources (look on
217 www.vim.org for exactly which version of the vim files you need).
219 Change directory to 'vim\src':
226 make -f Make_ming.mak gvim.exe
228 After churning for a while, you will end up with 'gvim.exe' in the 'vim\src'
231 You should not need to do *any* editing of any files to get vim compiled this
232 way. If, for some reason, you want the console-mode-only version of vim (this
233 is NOT recommended on Win32, especially on '95/'98!!!), you can use:
235 make -f Make_ming.mak GUI=no vim.exe
237 If you are dismayed by how big the EXE is, I strongly recommend you get 'UPX'
238 (also free!) and compress the file (typical compression is 50%). UPX can be
242 ADDITION: NLS support with MinGW
244 (by Eduardo F. Amatria <eferna1@platea.pntic.mec.es>)
246 If you want National Language Support, read the file src/po/README_mingw.txt.
247 You need to uncomment lines in Make_ming.mak to have NLS defined.
253 Use Make_cyg.mak with Cygwin's GCC. See
254 http://users.skynet.be/antoine.mechelynck/vim/compile.htm
256 The Cygnus one many not fully work yet.
257 With Cygnus gcc you can use the Unix Makefile instead (you need to get the
258 Unix archive then). Then you get a Cygwin application (feels like Vim is
259 running on Unix), while with Make_cyg.mak you get a Windows application (like
260 with the other makefiles).
266 Use Make_bc5.mak with Borland C++ 5.x. See
267 http://users.skynet.be/antoine.mechelynck/vim/compile.htm
270 5. Cross compiling for Win32 from a Linux machine
271 =================================================
273 [Update of 1) needs to be verified]
275 If you like, you can compile the 'mingw' Win32 version from the comfort of
276 your Linux (or other unix) box. To do this, you need to follow a few steps:
277 1) Install the mingw32 cross-compiler. See
278 http://www.mingw.org/wiki/LinuxCrossMinGW
279 http://www.libsdl.org/extras/win32/cross/README.txt
280 2) Get and unpack both the Unix sources and the extra archive
281 3) in 'Make_ming.mak', set 'CROSS' to 'yes' instead of 'no'.
282 Make further changes to 'Make_ming.mak' as you wish.
283 If your cross-compiler prefix differs from the predefined value,
284 set 'CROSS_COMPILE' corresponding.
285 4) make -f Make_ming.mak gvim.exe
287 Now you have created the Windows binary from your Linux box! Have fun...
290 6. Building with Python support
291 ===============================
293 (written by Ron Aaron: <ronaharon@yahoo.com>)
295 This has been tested with the mingw32 compiler, and the ActiveState
297 http://www.ActiveState.com/Products/ActivePython/
299 After installing the ActivePython, you will have to create a 'mingw32'
300 'libpython20.a' to link with:
302 pexports python20.dll > python20.def
303 dlltool -d python20.def -l libpython20.a
305 Once that is done, edit the 'Make_ming.mak' so the PYTHON variable points to
306 the root of the Python installation (C:\Python20, for example). If you are
307 cross-compiling on Linux with the mingw32 setup, you need to also convert all
308 the 'Include' files to *unix* line-endings. This bash command will do it
310 for fil in *.h ; do vim -e -c 'set ff=unix|w|q' $fil
313 make -f Make_ming.mak gvim.exe
315 and you will end up with a Python-enabled, Win32 version. Enjoy!
318 7. Building with MzScheme support
319 =================================
321 (written by Sergey Khorev <sergey.khorev@gmail.com>)
323 Vim with MzScheme (http://www.plt-scheme.org/software/mzscheme) support can
324 be built with either MSVC, or MinGW, or Cygwin. Supported versions are 205 and
325 above (including 299 and 30x series).
327 The MSVC build is quite straightforward. Simply invoke (in one line)
328 nmake -fMake_mvc.mak MZSCHEME=<Path-to-MzScheme>
329 [MZSCHEME_VER=<MzScheme-version>] [DYNAMIC_MZSCHEME=<yes or no>]
330 where <MzScheme-version> is the last seven characters from MzScheme dll name
331 (libmzschXXXXXXX.dll).
332 If DYNAMIC_MZSCHEME=yes, resulting executable will not depend on MzScheme
333 DLL's, but will load them in runtime on demand.
335 Building dynamic MzScheme support on MinGW and Cygwin is similar. Take into
336 account that <Path-to-MzScheme> should contain slashes rather than backslashes
337 (e.g. d:/Develop/MzScheme)
339 "Static" MzScheme support (Vim executable will depend on MzScheme DLLs
340 explicitly) on MinGW and Cygwin requires additional step.
342 libmzschXXXXXXX.dll and libmzgcXXXXXXX.dll should be copied from
343 %WINDOWS%\System32 to other location (either build directory, some temporary
344 dir or even MzScheme home).
346 Pass that path as MZSCHEME_DLLS parameter for Make. E.g.,
347 make -f Make_cyg.mak MZSCHEME=d:/Develop/MzScheme MZSCHEME_VER=209_000
348 MZSCHEME_DLLS=c:/Temp DYNAMIC_MZSCHEME=no
350 After a successful build, these dlls can be freely removed, leaving them in
351 %WINDOWS%\System32 only.
357 make -f Make_w16.mak 16 bit, Borland C++ 5.0
359 Warning: Be sure to use the right make.exe. It should be Borland make.
361 You will almost certainly have to change the paths for libs and include files
362 in the Makefile. Look for "D:\BC5" and "ctl3dv2". You will get a number of
363 warnings which can be ignored ( _chmod, precompiled header files, and
364 "possibly incorrect assignment").
366 The makefile should also work for BC++ 4.0 and 4.5, but may need tweaking to
367 remove unsupported compiler & liker options.
369 For making the Win32s version, you need Microsoft Visual C++ 4.1 OR EARLIER.
370 In MSVC 4.2 support for Win32s was dropped! Use this command:
371 nmake -f Make_mvc.mak GUI=yes
378 ren Make_bc3.mak Makefile; make 16 bit, Borland C++ and Turbo C++
379 ren Make_tcc.mak Makefile; make 16 bit, Turbo C
380 make -f Make_djg.mak 32 bit, DJGPP 2.0
381 make -f Make_bc5.mak 32 bit, Borland C++ 5.x (edit it to
384 Warning: Be sure to use the right make.exe. Microsoft C make doesn't work;
385 Borland make only works with Make_bc3.mak, Make_bc5.mak and Make_tcc.mak;
386 DJGPP/GNU make must be used for Make_djg.mak.
388 The Borland C++ compiler has been used to generate the MS-DOS executable; it
389 should work without problems. You will probably have to change the paths for
390 LIBPATH and INCLUDEPATH in the start of the Makefile. You will get two
391 warnings which can be ignored (one about _chmod and one about precompiled
394 The "spawno" library by Ralf Brown was used in order to free memory when Vim
395 starts a shell or other external command. Only about 200 bytes are taken from
396 conventional memory. When recompiling get the spawno library from Simtel,
397 directory "msdos/c". It is called something like "spwno413.zip". Or follow
398 the instructions in the Makefile to remove the library.
400 The Turbo C Makefile has not been tested much lately. It is included for those
401 that don't have C++. You may need to make a few changes to get it to work.
403 DJGPP needs to be installed properly to compile Vim; you need a lot of things
404 before it works. When your setup is OK, Vim should compile with just one
405 warning (about an argument to signal()).
407 Make_bc5.mak is for those that have Borland C++ 5.0 or later. At the top of
408 the file, there are some variables you can change to make either a 32-bit
409 Windows exe (GUI or console mode), or a 16-bit MS-DOS version.
410 NOTE: multi-byte support is broken in the Borland libraries, not everything
411 will work properly! Esp. handling multi-byte file names.
413 If you get all kinds of strange error messages when compiling, try changing
414 the file format from "unix" to "dos".
417 10. Installing after building from sources
418 ==========================================
420 [provided by Michael Soyka]
422 After you've built the Vim binaries as described above, you're ready to
423 install Vim on your system. However, if you've obtained the Vim sources
424 using Mercurial or by downloading them as a unix tar file, you must first
425 create a "vim73" directory. If you instead downloaded the sources as
426 zip files, you can skip this setup as the zip archives already have the
427 correct directory structure.
429 A. Create a Vim "runtime" subdirectory named "vim73"
430 -----------------------------------------------------
431 If you obtained your Vim sources as zip files, you can skip this step.
432 Otherwise, continue reading.
434 Go to the directory that contains the Vim "src" and "runtime"
435 directories and create a new subdirectory named "vim73".
437 Copy the "runtime" files into "vim73":
440 B. Copy the new binaries into the "vim73" directory
441 ----------------------------------------------------
442 Regardless of how you installed the Vim sources, you need to copy the
443 new binaries you created above into "vim73":
446 copy src\GvimExt\gvimext.dll vim73
447 copy src\xxd\xxd.exe vim73
449 C. Move the "vim73" directory into the Vim installation subdirectory
450 ---------------------------------------------------------------------
451 Move the "vim73" subdirectory into the subdirectory where you want Vim
452 to be installed. Typically, this subdirectory will be named "vim".
453 If you already have a "vim73" subdirectory in "vim", delete it first
454 by running its uninstal.exe program.
458 "cd" to your Vim installation subdirectory "vim\vim73" and run the
459 "install.exe" program. It will ask you a number of questions about
460 how you would like to have your Vim setup. Among these are:
461 - You can tell it to write a "_vimrc" file with your preferences in the
463 - It can also install an "Edit with Vim" entry in the Windows Explorer
465 - You can have it create batch files, so that you can run Vim from the
466 console or in a shell. You can select one of the directories in your
467 PATH or add the directory to PATH using the Windows Control Panel.
468 - Create entries for Vim on the desktop and in the Start menu.