5. Appendix A: Pre-Win32 Systems

Vim can be compiled on DOS-based systems as well as Win32 systems. These (usually 16-bit) executables do not support all the options found in the Win32 versions, but they support the basics.

Summary:

16 bit, Borland C++ and Turbo C++
C:\TEMP\Vim\src>ren Make_bc3.mak Makefile
C:\TEMP\Vim\src>make

16 bit, Turbo C
C:\TEMP\Vim\src>ren Make_tcc.mak Makefile
C:\TEMP\Vim\src>make

32 bit, DJGPP 2.0
C:\TEMP\Vim\src>make -f Make_djg.mak

32 bit, Borland C++ 5.0 (make sure OSTYPE=DOS16)
C:\TEMP\Vim\src>make -f Make_bc5.mak

Warning: Be sure to use the right make.exe. Microsoft C make doesn't work; Borland make only works with Make_bc3.mak, Make_bc5.mak and Make_tcc.mak; DJGPP/GNU make must be used for Make_djg.mak.

The Borland C++ compiler has been used to generate the MS-DOS executable; it should work without problems. You will probably have to change the paths for LIBPATH and INCLUDEPATH in the start of the makefile. You will get two warnings which can be ignored (one about _chmod and one about precompiled header files).

The "spawno" library by Ralf Brown was used in order to free memory when Vim starts a shell or other external command. Only about 200 bytes are taken from conventional memory. When recompiling get the spawno library from Simtel, directory msdos/c. It is called something like spwno413.zip. Or follow the instructions in the Makefile to remove the library.

The Turbo C makefile has not been tested much lately. It is included for those that don't have C++. You may need to make a few changes to get it to work.

DJGPP needs to be installed properly to compile Vim; you need a lot of things before it works. When your setup is OK, Vim should compile with just one warning (about an argument to signal()).

Make_bc5.mak is for those that have Borland C++ 5.0 or later. At the top of the file, there are some variables you can change to make either a 32-bit Windows exe (GUI or console mode), or a 16-bit MS-DOS version.

If you get all kinds of strange error messages when compiling, try adding <CR> characters at the end of each line.