xref: /vim-8.2.3635/src/INSTALLpc.txt (revision 2bf24176)
1INSTALLpc.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
6More information can be found here: (Very stale now.)
7
8    http://mywebpage.netscape.com/sharppeople/vim/howto/
9
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
14With the exception of two sections (Windows 3.1 and MS-DOS), this document
15assumes that you are building Vim for Win32 or later.
16(Windows 95/98/Me/NT/2000/XP/2003/Vista/7)
17
18
19Contents:
201. Microsoft Visual C++
212. Using MinGW
223. Cygwin
234. Borland
245. Cross compiling for Win32 from a Linux machine
256. Building with Python support
267. Building with MzScheme support
278. Windows 3.1
289. MS-DOS
29
3010. Installing after building from sources
31
32
33The 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
35you need the executable to run on Windows 98 or ME, use the 2003 one
36|msvc-2003-toolkit|.
37
38
391. Microsoft Visual C++
40=======================
41
42Visual Studio
43-------------
44
45Building with Visual Studio (VS 98, VS .NET, VS .NET 2003, VS 2005, and VS 2008)
46is straightforward. (These instructions should also work for VS 4 and VS 5.)
47
48Using VS C++ 2008 Express is recommended, the binaries build with that run on
49nearly all platforms.  Binaries from later versions may not run on Windows 95
50or XP.
51
52To build Vim from the command line with MSVC, use Make_mvc.mak.
53Visual Studio installed a batch file called vcvars32.bat, which you must
54run to set up paths for nmake and MSVC.
55
56nmake -f Make_mvc.mak		console   Win32 SDK or Microsoft Visual C++
57nmake -f Make_mvc.mak GUI=yes	GUI	  Microsoft Visual C++
58nmake -f Make_mvc.mak OLE=yes	OLE	  Microsoft Visual C++
59nmake -f Make_mvc.mak PERL=C:\Perl PYTHON=C:\Python etc.
60				Perl, Python, etc.
61
62Make_mvc.mak allows a Vim to be built with various different features and
63debug support.  Debugging with MS Devstudio is provided by Make_dvc.mak.
64For a description of the use of Make_dvc.mak, look in Make_mvc.mak.
65
66For compiling Gvim with IME support on far-east Windows, add IME=yes
67to the parameters you pass to Make_mvc.mak.
68
69To build Vim from within the Visual Studio IDE, open the Make_ivc.mak project.
70(Note: Make_ivc.mak is not as rich as Make_mvc.mak, which allows for
71far more configuration.) Make_ivc.mak can also be built with nmake.
72
73nmake -f Make_ivc.mak CFG="Vim - Win32 Release gvim"
74				GUI	  Microsoft Visual C++ 4.x or later
75nmake -f Make_ivc.mak CFG="Vim - Win32 Release gvim OLE"
76				OLE	  Microsoft Visual C++ 4.x or later
77
78See the specific files for comments and options.
79
80These files have been supplied by George V. Reilly, Ben Singer, Ken Scott and
81Ron Aaron; they have been tested.
82
83
84Visual C++ Toolkit 2003				*msvc-2003-toolkit*
85-----------------------
86
87You could download the Microsoft Visual C++ Toolkit 2003 from
88    http://msdn.microsoft.com/visualc/vctoolkit2003/
89Unfortunately this URL is no longer valid.  Inofficial downloads appear to be
90available from links mentioned on these pages (use at your own risk):
91   http://www.filewatcher.com/m/VCToolkitSetup.exe.32952488.0.0.html
92   http://feargame.net/wiki/index.php?title=Building_Source_with_the_VC2003_Toolkit
93
94This contains the command-line tools (compiler, linker, CRT headers,
95and libraries) for Visual Studio .NET 2003, but not the Visual Studio IDE.
96To compile and debug Vim with the VC2003 Toolkit, you will also need
97|ms-platform-sdk|, |dotnet-1.1-redist|, |dotnet-1.1-sdk|,
98and |windbg-download|.
99
100It's easier to download Visual C++ 2008 Express Edition, |msvc-2008-express|,
101which is freely available in perpetuity.
102
103The free Code::Blocks IDE works with the VC2003 Toolkit, as described at
104    http://wiki.codeblocks.org/index.php?title=Integrating_Microsoft_Visual_Toolkit_2003_with_Code::Blocks_IDE
105(This site also takes you through configuring a number of other
106free C compilers for Win32.)
107
108To compile Vim using the VC2003 Toolkit and Make_mvc.mak, you must first
109execute the following commands in a cmd.exe window (the msvcsetup.bat batch
110file can be used):
111
112    set PATH=%SystemRoot%\Microsoft.NET\Framework\v1.1.4322;%PATH%
113    call "%VCToolkitInstallDir%vcvars32.bat"
114    set MSVCVer=7.1
115    call "%ProgramFiles%\Microsoft Platform SDK\SetEnv.Cmd"
116    set LIB=%ProgramFiles%\Microsoft Visual Studio .NET 2003\Vc7\lib;%LIB%
117
118Now you can build Vim with Make_mvc.mak.
119
120
121Getting the Windows Platform SDK	    *ms-platform-sdk*
122
123You will also need a copy of the Windows Platform SDK from
124    http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
125Specifically, you need the Windows Core SDK subset of the Platform SDK,
126which contains the Windows headers and libraries.
127
128
129Getting the .NET Framework 1.1 Runtime      *dotnet-1.1-redist*
130
131You need the .NET Framework 1.1 Redistributable Package from
132    http://www.microsoft.com/downloads/details.aspx?familyid=262d25e3-f589-4842-8157-034d1e7cf3a3
133or from Windows Update:
134    http://windowsupdate.microsoft.com/
135This is needed to install |dotnet-1.1-sdk|. It also contains cvtres.exe,
136which is needed to link Vim.
137
138
139Getting the .NET Framework 1.1 SDK	    *dotnet-1.1-sdk*
140
141You need the .NET Framework 1.1 SDK from
142    http://www.microsoft.com/downloads/details.aspx?familyid=9b3a2ca6-3647-4070-9f41-a333c6b9181d
143This contains some additional libraries needed to compile Vim,
144such as msvcrt.lib. You must install |dotnet-1.1-redist| before
145installing the .NET 1.1 SDK.
146
147
148Getting the WinDbg debugger		    *windbg-download*
149
150The Debugging Tools for Windows can be downloaded from
151    http://www.microsoft.com/whdc/devtools/debugging/default.mspx
152This includes the WinDbg debugger, which you will want if you ever need
153to debug Vim itself. An earlier version of the Debugging Tools
154is also available through the Platform SDK, |ms-platform-sdk|.
155
156
157Visual C++ 2005 Express Edition       *msvc-2005-express*
158-------------------------------
159
160Visual C++ 2005 Express Edition can be downloaded for free from:
161    http://msdn.microsoft.com/vstudio/express/visualC/default.aspx
162This includes the IDE and the debugger. You will also need
163|ms-platform-sdk|. You can build Vim with Make_mvc.mak.
164
165Instructions for integrating the Platform SDK into VC Express:
166    http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx
167
168
169Visual C++ 2008 Express Edition       *msvc-2008-express*
170-------------------------------
171
172Visual C++ 2008 Express Edition can be downloaded for free from:
173    http://www.microsoft.com/express/downloads/
174This includes the IDE and the debugger.
175
176To set the environment execute the msvc2008.bat script.  You can then build
177Vim with Make_mvc.mak.
178
179For building 64 bit binaries you also need to install the SDK:
180"Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1"
181You don't need the examples and documentation.
182
183
184Visual C++ 2010 Express Edition       *msvc-2010-express*
185-------------------------------
186
187Visual C++ 2010 Express Edition can be downloaded for free from:
188    http://www.microsoft.com/express/vc/Default.aspx
189This includes the IDE and the debugger.
190
191To set the environment execute the msvc2010.bat script.  You can then build
192Vim with Make_mvc.mak.
193
194
195Targeting Windows XP with new MSVC      *new-msvc-windows-xp*
196----------------------------------
197
198Beginning with Visual C++ 2010, Microsoft changed the behavior of LINK.EXE
199so that it targets Windows 6.0 (Vista) by default.  In order to override
200this, the target Windows version number needs to be passed to LINK like
201follows:
202    LINK ... /subsystem:console,5.01
203
204Make_mvc.mak now supports a macro SUBSYSTEM_VER to pass the Windows version.
205Use lines like follows to target Windows XP (assuming using Visual C++ 2012
206under 64-bit Windows):
207    set WinSdk71=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A
208    set SDK_INCLUDE_DIR=%WinSdk71%\Include
209    set INCLUDE=%WinSdk71%\Include;%INCLUDE%
210    set LIB=%WinSdk71%\Lib;%LIB%
211    set PATH=%WinSdk71%\Bin;%PATH%
212    set CL=/D_USING_V110_SDK71_
213    nmake -f Make_mvc.mak ... WINVER=0x0501 SUBSYSTEM_VER=5.01
214
215The following Visual C++ team blog can serve as a reference page:
216    http://blogs.msdn.com/b/vcblog/archive/2012/10/08/windows-xp-targeting-with-c-in-visual-studio-2012.aspx
217
218
2192. MinGW
220========
221
222(written by Ron Aaron: <[email protected]>)
223
224This is about how to produce a Win32 binary of gvim with MinGW.
225
226First, you need to get the 'mingw32' compiler, which is free for the download
227at:
228
229    http://www.mingw.org/
230
231or you can use 'MinGW-w64' compiler.
232
233    http://mingw-w64.sourceforge.net/
234
235Once you have downloaded the compiler binaries, unpack them on your hard disk
236somewhere, and put them on your PATH.  If you are on Win95/98 you can edit
237your AUTOEXEC.BAT file with a line like:
238
239    set PATH=C:\MinGW\bin;%PATH%
240
241or on NT/2000/XP, go to the Control Panel, (Performance and Maintenance),
242System, Advanced, and edit the environment from there.
243
244Test if gcc is on your path.  From a CMD (or COMMAND on '95/98) window:
245
246    C:\> gcc --version
247    gcc (GCC) 4.8.1
248
249    C:\> mingw32-make --version
250    GNU Make 3.82.90 (...etc...)
251
252Now you are ready to rock 'n' roll.  Unpack the vim sources (look on
253www.vim.org for exactly which version of the vim files you need).
254
255Change directory to 'vim\src':
256
257    C:\> cd vim\src
258    C:\VIM\SRC>
259
260and you type:
261
262    mingw32-make -f Make_ming.mak gvim.exe
263
264After churning for a while, you will end up with 'gvim.exe' in the 'vim\src'
265directory.
266
267You should not need to do *any* editing of any files to get vim compiled this
268way.  If, for some reason, you want the console-mode-only version of vim (this
269is NOT recommended on Win32, especially on '95/'98!!!), you can use:
270
271    mingw32-make -f Make_ming.mak GUI=no vim.exe
272
273If you are dismayed by how big the EXE is, I strongly recommend you get 'UPX'
274(also free!) and compress the file (typical compression is 50%). UPX can be
275found at
276    http://www.upx.org/
277
278As of 2011, UPX still does not support compressing 64-bit EXE's; if you have
279built a 64-bit vim then an alternative to UPX is 'MPRESS'. MPRESS can be found
280at:
281    http://www.matcode.com/mpress.htm
282
283
284ADDITION: NLS support with MinGW
285
286(by Eduardo F. Amatria <[email protected]>)
287
288If you want National Language Support, read the file src/po/README_mingw.txt.
289You need to uncomment lines in Make_ming.mak to have NLS defined.
290
291
2923. Cygwin
293=========
294
295Use Make_cyg.mak with Cygwin's GCC. See
296    http://users.skynet.be/antoine.mechelynck/vim/compile.htm
297
298With Cygnus gcc you should use the Unix Makefile instead (you need to get the
299Unix archive then).  Then you get a Cygwin application (feels like Vim is
300running on Unix), while with Make_cyg.mak you get a Windows application (like
301with the other makefiles).
302
303
3044. Borland
305===========
306
307Use Make_bc5.mak with Borland C++ 5.x. See
308    http://users.skynet.be/antoine.mechelynck/vim/compile.htm
309
310
3115. Cross compiling for Win32 from a Linux machine
312=================================================
313
314[Update of 1) needs to be verified]
315
316If you like, you can compile the 'mingw' Win32 version from the comfort of
317your Linux (or other unix) box.  To do this, you need to follow a few steps:
318    1) Install the mingw32 cross-compiler. See
319	http://www.mingw.org/wiki/LinuxCrossMinGW
320	http://www.libsdl.org/extras/win32/cross/README.txt
321    2) Get and unpack both the Unix sources and the extra archive
322    3) in 'Make_cyg_ming.mak', set 'CROSS' to 'yes' instead of 'no'.
323       Make further changes to 'Make_cyg_ming.mak' and 'Make_ming.mak' as you
324       wish.  If your cross-compiler prefix differs from the predefined value,
325       set 'CROSS_COMPILE' corresponding.
326    4) make -f Make_ming.mak gvim.exe
327
328Now you have created the Windows binary from your Linux box!  Have fun...
329
330
3316. Building with Python support
332===============================
333
334For building with MSVC 2008 the "Windows Installer" from www.python.org
335works fine.
336
337(rest written by Ron Aaron: <[email protected]>)
338
339Building with the mingw32 compiler, and the ActiveState ActivePython:
340    http://www.ActiveState.com/Products/ActivePython/
341
342After installing the ActivePython, you will have to create a 'mingw32'
343'libpython20.a' to link with:
344   cd $PYTHON/libs
345   pexports python20.dll > python20.def
346   dlltool -d python20.def -l libpython20.a
347
348Once that is done, edit the 'Make_ming.mak' so the PYTHON variable points to
349the root of the Python installation (C:\Python20, for example).  If you are
350cross-compiling on Linux with the mingw32 setup, you need to also convert all
351the 'Include' files to *unix* line-endings.  This bash command will do it
352easily:
353   for fil in *.h ; do vim -e -c 'set ff=unix|w|q' $fil
354
355Now just do:
356   make -f Make_ming.mak gvim.exe
357
358and you will end up with a Python-enabled, Win32 version.  Enjoy!
359
360
3617. Building with MzScheme support
362=================================
363
364(written by Sergey Khorev <[email protected]>)
365
366Vim with MzScheme (http://www.plt-scheme.org/software/mzscheme) support can
367be built with either MSVC, or MinGW, or Cygwin. Supported versions are 205 and
368above (including 299 and 30x series).
369
370The MSVC build is quite straightforward. Simply invoke (in one line)
371nmake -fMake_mvc.mak MZSCHEME=<Path-to-MzScheme>
372    [MZSCHEME_VER=<MzScheme-version>] [DYNAMIC_MZSCHEME=<yes or no>]
373where <MzScheme-version> is the last seven characters from MzScheme dll name
374(libmzschXXXXXXX.dll).
375If DYNAMIC_MZSCHEME=yes, resulting executable will not depend on MzScheme
376DLL's, but will load them in runtime on demand.
377
378Building dynamic MzScheme support on MinGW and Cygwin is similar. Take into
379account that <Path-to-MzScheme> should contain slashes rather than backslashes
380(e.g. d:/Develop/MzScheme)
381
382"Static" MzScheme support (Vim executable will depend on MzScheme DLLs
383explicitly) on MinGW and Cygwin requires additional step.
384
385libmzschXXXXXXX.dll and libmzgcXXXXXXX.dll should be copied from
386%WINDOWS%\System32 to other location (either build directory, some temporary
387dir or even MzScheme home).
388
389Pass that path as MZSCHEME_DLLS parameter for Make. E.g.,
390make -f Make_cyg.mak MZSCHEME=d:/Develop/MzScheme MZSCHEME_VER=209_000
391    MZSCHEME_DLLS=c:/Temp DYNAMIC_MZSCHEME=no
392
393After a successful build, these dlls can be freely removed, leaving them in
394%WINDOWS%\System32 only.
395
396
3978. Windows 3.1x
398===============
399
400make -f Make_w16.mak		 16 bit, Borland C++ 5.0
401
402Warning: Be sure to use the right make.exe.  It should be Borland make.
403
404You will almost certainly have to change the paths for libs and include files
405in the Makefile.  Look for "D:\BC5" and "ctl3dv2".  You will get a number of
406warnings which can be ignored ( _chmod, precompiled header files, and
407"possibly incorrect assignment").
408
409The makefile should also work for BC++ 4.0 and 4.5, but may need tweaking to
410remove unsupported compiler & liker options.
411
412For making the Win32s version, you need Microsoft Visual C++ 4.1 OR EARLIER.
413In MSVC 4.2 support for Win32s was dropped!  Use this command:
414    nmake -f Make_mvc.mak GUI=yes
415
416
4179. MS-DOS
418=========
419
420Summary:
421ren Make_bc3.mak Makefile; make     16 bit, Borland C++ and Turbo C++
422ren Make_tcc.mak Makefile; make     16 bit, Turbo C
423make -f Make_djg.mak		    32 bit, DJGPP 2.0
424make -f Make_bc5.mak		    32 bit, Borland C++ 5.x (edit it to
425				    define DOS)
426
427Warning: Be sure to use the right make.exe.  Microsoft C make doesn't work;
428Borland make only works with Make_bc3.mak, Make_bc5.mak and Make_tcc.mak;
429DJGPP/GNU make must be used for Make_djg.mak.
430
431The Borland C++ compiler has been used to generate the MS-DOS executable; it
432should work without problems. You will probably have to change the paths for
433LIBPATH and INCLUDEPATH in the start of the Makefile.  You will get two
434warnings which can be ignored (one about _chmod and one about precompiled
435header files).
436
437The "spawno" library by Ralf Brown was used in order to free memory when Vim
438starts a shell or other external command.  Only about 200 bytes are taken from
439conventional memory.  When recompiling get the spawno library from Simtel,
440directory "msdos/c".  It is called something like "spwno413.zip".  Or follow
441the instructions in the Makefile to remove the library.
442
443The Turbo C Makefile has not been tested much lately. It is included for those
444that don't have C++. You may need to make a few changes to get it to work.
445
446DJGPP needs to be installed properly to compile Vim; you need a lot of things
447before it works. When your setup is OK, Vim should compile with just one
448warning (about an argument to signal()).
449
450Make_bc5.mak is for those that have Borland C++ 5.0 or later.  At the top of
451the file, there are some variables you can change to make either a 32-bit
452Windows exe (GUI or console mode), or a 16-bit MS-DOS version.
453NOTE: multi-byte support is broken in the Borland libraries, not everything
454will work properly!  Esp. handling multi-byte file names.
455
456If you get all kinds of strange error messages when compiling, try changing
457the file format from "unix" to "dos".
458
459
46010. Installing after building from sources
461==========================================
462
463[provided by Michael Soyka]
464
465After you've built the Vim binaries as described above, you're ready to
466install Vim on your system.  However, if you've obtained the Vim sources
467using Mercurial or by downloading them as a unix tar file, you must first
468create a "vim73" directory.  If you instead downloaded the sources as
469zip files, you can skip this setup as the zip archives already have the
470correct directory structure.
471
472  A.  Create a Vim "runtime" subdirectory named "vim73"
473  -----------------------------------------------------
474  If you obtained your Vim sources as zip files, you can skip this step.
475  Otherwise, continue reading.
476
477  Go to the directory that contains the Vim "src" and "runtime"
478  directories and create a new subdirectory named "vim73".
479
480  Copy the "runtime" files into "vim73":
481     copy runtime\* vim73
482
483  B.  Copy the new binaries into the "vim73" directory
484  ----------------------------------------------------
485  Regardless of how you installed the Vim sources, you need to copy the
486  new binaries you created above into "vim73":
487
488     copy src\*.exe vim73
489     copy src\GvimExt\gvimext.dll vim73
490     copy src\xxd\xxd.exe vim73
491
492  C.  Move the "vim73" directory into the Vim installation subdirectory
493  ---------------------------------------------------------------------
494  Move the "vim73" subdirectory into the subdirectory where you want Vim
495  to be installed.  Typically, this subdirectory will be named "vim".
496  If you already have a "vim73" subdirectory in "vim", delete it first
497  by running its uninstal.exe program.
498
499  D.  Install Vim
500  ---------------
501  "cd" to your Vim installation subdirectory "vim\vim73" and run the
502  "install.exe" program.  It will ask you a number of questions about
503  how you would like to have your Vim setup.  Among these are:
504  - You can tell it to write a "_vimrc" file with your preferences in the
505    parent directory.
506  - It can also install an "Edit with Vim" entry in the Windows Explorer
507    popup menu.
508  - You can have it create batch files, so that you can run Vim from the
509    console or in a shell.  You can select one of the directories in your
510    PATH or add the directory to PATH using the Windows Control Panel.
511  - Create entries for Vim on the desktop and in the Start menu.
512
513Happy Vimming!
514