blob: 1e7d3297a4f3010c4c54a60cab98d64c898c9667 [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
6More information can be found here:
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
14
15Contents:
161. MS-DOS
172. Win32 (Windows NT and Windows 95)
183. Windows NT with OpenNT
194. Windows 3.1
205. Using Mingw
216. Cross compiling for Win32 from a Linux machine
227. Building with Python support
23
24
251. MS-DOS
26=========
27
28Summary:
29ren Make_bc3.mak Makefile; make 16 bit, Borland C++ and Turbo C++
30ren Make_tcc.mak Makefile; make 16 bit, Turbo C
31make -f Make_djg.mak 32 bit, DJGPP 2.0
32make -f Make_bc5.mak 32 bit, Borland C++ 5.0 (edit it to
33 define DOS)
34
35Warning: Be sure to use the right make.exe. Microsoft C make doesn't work;
36Borland make only works with Make_bc3.mak, Make_bc5.mak and Make_tcc.mak;
37DJGPP/GNU make must be used for Make_djg.mak.
38
39The Borland C++ compiler has been used to generate the MS-DOS executable; it
40should work without problems. You will probably have to change the paths for
41LIBPATH and INCLUDEPATH in the start of the Makefile. You will get two
42warnings which can be ignored (one about _chmod and one about precompiled
43header files).
44
45The "spawno" library by Ralf Brown was used in order to free memory when Vim
46starts a shell or other external command. Only about 200 bytes are taken from
47conventional memory. When recompiling get the spawno library from Simtel,
48directory "msdos/c". It is called something like "spwno413.zip". Or follow
49the instructions in the Makefile to remove the library.
50
51The Turbo C Makefile has not been tested much lately. It is included for those
52that don't have C++. You may need to make a few changes to get it to work.
53
54DJGPP needs to be installed properly to compile Vim; you need a lot of things
55before it works. When your setup is OK, Vim should compile with just one
56warning (about an argument to signal()).
57
58Make_bc5.mak is for those that have Borland C++ 5.0 or later. At the top of
59the file, there are some variables you can change to make either a 32-bit
60Windows exe (GUI or console mode), or a 16-bit MS-DOS version.
61
62If you get all kinds of strange error messages when compiling, try adding <CR>
63characters at the end of each line.
64
65
662. Win32 (Windows NT and Windows 95)
67====================================
68
69Summary:
70vcvars32 Setup paths for nmake and MSVC
71
72nmake -f Make_mvc.mak console Win32 SDK or Microsoft Visual C++
73nmake -f Make_mvc.mak GUI=yes GUI Microsoft Visual C++
74nmake -f Make_mvc.mak OLE=yes OLE Microsoft Visual C++
75nmake -f Make_mvc.mak PERL=C:\Perl PYTHON=C:\Python etc.
76 Perl, Python, etc.
77 Microsoft Visual C++
78
79make -f Make_bc5.mak GUI Borland C++ 5.x
80make -f Make_bc5.mak console Borland C++ 5.x (change the file)
81nmake -f Make_ivc.mak CFG="Vim - Win32 Release gvim"
82 GUI Microsoft Visual C++ 4.x or later
83nmake -f Make_ivc.mak CFG="Vim - Win32 Release gvim OLE"
84 OLE Microsoft Visual C++ 4.x or later
85
86make -f Make_cyg.mak various Cygnus gcc
87make -f Make_mingw.mak various MingW with gcc
88
89See the specific files for comments and options.
90
91These files have been supplied by George V. Reilly, Ben Singer, Ken Scott and
92Ron Aaron; they have been tested. The Cygnus one many not fully work yet.
93With Cygnus gcc you can use the Unix Makefile instead (you need to get the
94Unix archive then). Then you get a Cygwin application (feels like Vim is
95runnin on Unix), while with Make_cyg.mak you get a Windows application (like
96with the other makefiles).
97
98You can also use the Visual C++ IDE: use File/Open workspace, select the
99Make_ivc.mak file, then select Build/Build all. This builds the GUI version
100by default.
101
102Vim for Win32 compiles with the Microsoft Visual C++ 2.0 compiler and later,
103and with the Borland C++ 4.5 32-bit compiler and later. It compiles on
104Windows 95 and all four NT platforms: i386, Alpha, MIPS, and PowerPC. The
105NT/i386 and the Windows 95 binaries are identical. Use Make_mvc.mak to
106compile with Visual C++ and Make_bc5.mak to compile with Borland C++.
107
108Make_mvc.mak allows a Vim to be built with various different features and
109debug support. Debugging with MS Devstudio is provided by Make_dvc.mak.
110For a description of the use of Make_dvc.mak, look in Make_mvc.mak.
111
112For compiling Gvim with IME support on far-east Windows, uncomment the
113MULTI_BYTE_IME define in the src/feature.h file before compiling.
114
115The Win32 console binary was compiled with Visual C++ version 5.0, using
116Make_mvc.mak and Make_bc5.mak (Borland C). Other compilers should also work.
117If you get all kinds of strange error messages when compiling (you shouldn't
118with the Microsoft or Borland 32-bit compilers), try adding <CR> characters
119at the end of each line.
120
121You probably need to run "vcvars32" before using "nmake".
122
123For making the Win32s version, you need Microsoft Visual C++ 4.1 OR EARLIER.
124In version 4.2 support for Win32s was dropped! Use this command:
125 nmake -f Make_mvc.mak GUI=yes
126
127See the respective Makefiles for more comments.
128
129
1303. Windows NT with OpenNT
131=========================
132
133(contributed by Michael A. Benzinger)
134
135Building Vim on OpenNT 2.0 on Windows NT 4.0, with Softway's prerelease gcc:
1361. export CONFIG_SHELL=//D/OpenNT/bin/sh
1372. Make the following exports for modifying config.mk:
138 export CFLAGS=-O -Wshadow
139 export X_PRE_LIBS=-lXmu
1402. Run configure as follows:
141 configure --prefix=/vim --bindir=/bin/opennt --enable-gui=Motif
142 If you don't have OpenNTif (Motif support), use this:
143 configure --prefix=/vim --bindir=/bin/opennt --enable-gui=Athena
1443. Edit Makefile to perform the following since the Makefile include syntax
145 differs from that of gmake:
146 #include config.mk
147 .include "config.mk"
1484. Change all install links to be "ln -f" and not "ln -s".
1495. Change to the 'ctags' directory and configure.
1506. Edit the Makefile and remove spurious spaces from lines 99 and 114.
1517. Change slink to "ln -f" from "ln -s".
1528. Return to the src directory.
1539. make
154
155
1564. Windows 3.1x
157===============
158
159make -f Make_w16.mak 16 bit, Borland C++ 5.0
160
161Warning: Be sure to use the right make.exe. It should be Borland make.
162
163You will almost certainly have to change the paths for libs and include files
164in the Makefile. Look for "D:\BC5" and "ctl3dv2". You will get a number of
165warnings which can be ignored ( _chmod, precompiled header files, and
166"possibly incorrect assignment").
167
168The makefile should also work for BC++ 4.0 and 4.5, but may need tweaking to
169remove unsupported compiler & liker options.
170
171
1725. Mingw
173========
174
175(written by Ron Aaron: <ronaharon@yahoo.com>)
176
177This is about how to produce a Win32 binary of gvim with Mingw.
178
179First, you need to get the 'mingw32' compiler, which is free for the download
180at:
181
182 http://www.mingw.org/
183
184Once you have downloaded the compiler binaries, unpack them on your hard disk
185somewhere, and put them on your PATH. If you are on Win95/98 you can edit
186your AUTOEXEC.BAT file with a line like:
187
188 set PATH=C:\GCC-2.95.2\BIN;%PATH%
189
190or on NT/2000, go to the Control Panel, System, and edit the environment from
191there.
192
193Test if gcc is on your path. From a CMD (or COMMAND on '95/98):
194
195 C:\> gcc --version
196 2.95.2
197
198 C:\> make --version
199 GNU Make version 3.77 (...etc...)
200
201Now you are ready to rock 'n' roll. Unpack the vim sources (look on
202www.vim.org for exactly which version of the vim files you need).
203
204Change directory to 'vim\src':
205
206 C:\> cd vim\src
207 C:\VIM\SRC>
208
209and you type:
210
211 make -f Make_ming.mak gvim.exe
212
213After churning for a while, you will end up with 'gvim.exe' in the 'vim\src'
214directory.
215
216You should not need to do *any* editing of any files to get vim compiled this
217way. If, for some reason, you want the console-mode-only version of vim (this
218is NOT recommended on Win32, especially on '95/'98!!!), you need only change
219the 'gvim.exe' to 'vim.exe' in the 'make' commands given above.
220
221If you are dismayed by how big the EXE is, I strongly recommend you get 'UPX'
222(also free!) and compress the file (typical compression is 50%). UPX can be
223found at
224 http://upx.tsx.org/
225
226
227ADDITION: NLS support with Mingw
228
229(by Eduardo F. Amatria <eferna1@platea.pntic.mec.es>)
230
231If you want National Language Support, read the file src/po/README_mingw.txt.
232You need to uncomment lines in Make_ming.mak to have NLS defined.
233
234
2356. Cross compiling for Win32 from a Linux machine
236=================================================
237
238(written by Ron Aaron: <ronaharon@yahoo.com> with help from
239Martin Kahlert <martin.kahlert@infineon.com>)
240
241If you like, you can compile the 'mingw' Win32 version from the comfort of
242your Linux (or other unix) box. To do this, you need to follow a few steps:
243
244 1) Install the mingw32 cross-compiler (if you have it, go to step 2)
245 1a) from 'ftp://ftp.nanotech.wisc.edu/pub/khan/gnu-win32/mingw32/snapshots/gcc-2.95.2-1',
246 get:
247 binutils-19990818-1-src.tar.gz
248 mingw-msvcrt-20000203.zip
249 gcc-2.95.2-1-x86-win32.diff.gz
250 1b) from 'http://gcc.gnu.org/' get:
251 gcc-2.95.2.tar.gz
252 1c) create a place to put the compiler source and binaries:
253 (assuming you are in the home directory)
254 mkdir gcc-bin
255 mkdir gcc-src
256 1d) unpack the sources:
257 cd gcc-src
258 tar xzf ../binutils-19990818-1-src.tar.gz
259 tar xzf ../gcc-2.95.2.tar.gz
260 unzip ../mingw-msvcrt-20000203
261 1e) build the different tools:
262 export PREFIX=~/gcc-bin/
263 cd gcc-2.95.2
264 zcat ../gcc-2.95.2-1-x86-win32.diff.gz | patch -p1 -E
265 cd ../binutils-19990818
266 ./configure --target=i586-pc-mingw32msvc --prefix=$PREFIX
267 make
268 make install
269 cd ../gcc-2.95.2
270 ./configure --target=i586-pc-mingw32msvc \
271 --with-libs=~/gcc-bin/i386-mingw32msvc/lib \
272 --with-headers=~/gcc-bin/i386-mingw32msvc/include \
273 --enable-languages=c++ \
274 --prefix=$PREFIX
275 make
276 make install
277 1f) Add $PREFIX/bin to your $PATH.
278
279 2) get the *unix* version of the vim sources
280 3) in 'Make_ming.mak', set 'CROSS' to '1' instead of '0'.
281 4) make -f Make_ming.mak gvim.exe
282
283Now you have created the Windows binary from your Linux box! Have fun...
284
2857. Building with Python support
286=================================================
287
288(written by Ron Aaron: <ronaharon@yahoo.com>)
289
290This has been tested with the mingw32 compiler, and the ActiveState
291ActivePython:
292 http://www.ActiveState.com/Products/ActivePython/
293
294After installing the ActivePython, you will have to create a 'mingw32'
295'libpython20.a' to link with:
296 cd $PYTHON/libs
297 pexports python20.dll > python20.def
298 dlltool -d python20.def -l libpython20.a
299
300Once that is done, edit the 'Make_ming.mak' so the PYTHON variable points to
301the root of the Python installation (C:\Python20, for example). If you are
302cross-compiling on Linux with the mingw32 setup, you need to also convert all
303the 'Include' files to *unix* line-endings. This bash command will do it
304easily:
305 for fil in *.h ; do vim -e -c 'set ff=unix|w|q' $fil
306
307Now just do:
308 make -f Make_ming.mak gvim.exe
309
310and you will end up with a Python-enabled, Win32 version. Enjoy!