Patch 8.0.1183
Problem: MS-Windows build instructions are outdated.
Solution: Update instructions for MSVC 2015. Update the build script.
Files: Filelist, Makefile, src/INSTALLpc.txt, src/bigvim.bat
*** ../vim-8.0.1182/Filelist 2017-09-26 13:59:27.196906599 +0200
--- Filelist 2017-10-07 18:39:18.931804363 +0200
***************
*** 406,411 ****
--- 406,412 ----
src/msvcsetup.bat \
src/msvc2008.bat \
src/msvc2010.bat \
+ src/msvc2015.bat \
src/dimm.idl \
src/dlldata.c \
src/dosinst.c \
*** ../vim-8.0.1182/Makefile 2017-03-04 20:09:30.491831534 +0100
--- Makefile 2017-10-07 22:25:08.432670196 +0200
***************
*** 128,147 ****
# > make dosrt
# Unpack dist/vim##rt.zip and dist/vim##src.zip on an MS-Windows PC.
# Win32 console version build:
! # - Set environment for Visual C++ 2008, e.g.:
! # > src/msvc2008.bat
! # Or:
! # > C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat
! # Or, when using the Visual C++ Toolkit 2003: "msvcsetup.bat" (adjust the
! # paths when necessary).
! # For Windows 98/ME the 2003 version is required, but then the executable
! # won't work on Windows 7 and 64 bit systems.
! # - > cd src
# > nmake -f Make_mvc.mak
! # - Run the tests:
# > nmake -f Make_mvc.mak testclean
# > nmake -f Make_mvc.mak test
- # - check the output.
# - Rename (using ../tools/rename.bat):
# vim.exe to vimw32.exe
# tee/tee.exe to teew32.exe
--- 128,142 ----
# > make dosrt
# Unpack dist/vim##rt.zip and dist/vim##src.zip on an MS-Windows PC.
# Win32 console version build:
! # - See src/INSTALLpc.txt for installing the compiler and SDK.
! # - Set environment for Visual C++ 2015:
! # > cd src
! # > msvc2015.bat
! # - Build the console binary:
# > nmake -f Make_mvc.mak
! # - Run the tests and check the ouput:
# > nmake -f Make_mvc.mak testclean
# > nmake -f Make_mvc.mak test
# - Rename (using ../tools/rename.bat):
# vim.exe to vimw32.exe
# tee/tee.exe to teew32.exe
***************
*** 152,170 ****
# Win32 GUI version build:
# - > cd src
# > nmake -f Make_mvc.mak GUI=yes
! # - Run the tests:
# > nmake -f Make_mvc.mak testclean
# > nmake -f Make_mvc.mak testgvim
- # - check the output.
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
# - Move gvim.pdb to here.
# - Copy "GvimExt/gvimext.dll" to here.
# - Delete vimrun.exe, install.exe and uninstal.exe.
# Win32 GUI version with OLE, PERL, Ruby, TCL, PYTHON and dynamic IME:
# - Install the interfaces you want, see src/INSTALLpc.txt
# - Build:
# > cd src
- # Adjust bigvim.bat to match the version of each interface you want.
# > bigvim.bat
# - Run the tests:
# > nmake -f Make_mvc.mak testclean
--- 147,164 ----
# Win32 GUI version build:
# - > cd src
# > nmake -f Make_mvc.mak GUI=yes
! # - Run the tests and check the output:
# > nmake -f Make_mvc.mak testclean
# > nmake -f Make_mvc.mak testgvim
# - move "gvim.exe" to here (otherwise the OLE version will overwrite it).
# - Move gvim.pdb to here.
# - Copy "GvimExt/gvimext.dll" to here.
# - Delete vimrun.exe, install.exe and uninstal.exe.
# Win32 GUI version with OLE, PERL, Ruby, TCL, PYTHON and dynamic IME:
# - Install the interfaces you want, see src/INSTALLpc.txt
+ # Adjust bigvim.bat to match the version of each interface you want.
# - Build:
# > cd src
# > bigvim.bat
# - Run the tests:
# > nmake -f Make_mvc.mak testclean
***************
*** 191,197 ****
# gvimext64.dll can be obtained from
http://code.google.com/p/vim-win3264/
# It is part of vim72.zip as vim72/gvimext.dll.
# - Make sure there is a diff.exe two levels up (get it from a previous Vim
! # version).
# - go to ../nsis and do:
# > makensis gvim.nsi (takes a few minutes).
# ignore warning for libwinpthread-1.dll
--- 185,191 ----
# gvimext64.dll can be obtained from
http://code.google.com/p/vim-win3264/
# It is part of vim72.zip as vim72/gvimext.dll.
# - Make sure there is a diff.exe two levels up (get it from a previous Vim
! # version). Also put winpty32.dll and winpty-agent.exe there.
# - go to ../nsis and do:
# > makensis gvim.nsi (takes a few minutes).
# ignore warning for libwinpthread-1.dll
*** ../vim-8.0.1182/src/INSTALLpc.txt 2017-10-07 18:38:22.812118647 +0200
--- src/INSTALLpc.txt 2017-10-08 17:52:53.056611733 +0200
***************
*** 3,11 ****
This file contains instructions for compiling Vim. If you already have an
executable version of Vim, you don't need this.
! More information can be found here: (Very stale now.)
!
!
http://mywebpage.netscape.com/sharppeople/vim/howto/
The file "feature.h" can be edited to match your preferences. You can skip
this, then you will get the default behavior as is documented, which should
--- 3,11 ----
This file contains instructions for compiling Vim. If you already have an
executable version of Vim, you don't need this.
! You can find the lastest here:
https://github.com/vim/vim-win32-installer
! This page also has links to install support for interfaces such as Perl,
! Python, Lua, etc.
The file "feature.h" can be edited to match your preferences. You can skip
this, then you will get the default behavior as is documented, which should
***************
*** 15,20 ****
--- 15,24 ----
XP/2003/Vista/7/8/10). There are also instructions for pre-XP systems, but
they might no longer work.
+ The recommended way is to build a 32 bit Vim, also on 64 bit systems. You can
+ build a 64 bit Vim if you like, the executable will be bigger and Vim wan't be
+ any faster, but you can edit files larger than 2 Gbyte.
+
Contents:
1. Microsoft Visual C++
***************
*** 24,30 ****
5. Cross compiling for Win32 from a Linux machine
6. Building with Python support
7. Building with Python3 support
! 8. Building with MzScheme/Racket support
9. Building with Lua support
10. Building with Perl support
11. Building with Ruby support
--- 28,34 ----
5. Cross compiling for Win32 from a Linux machine
6. Building with Python support
7. Building with Python3 support
! 8. Building with Racket or MzScheme support
9. Building with Lua support
10. Building with Perl support
11. Building with Ruby support
***************
*** 36,50 ****
16. Installing after building from sources
! The currently preferred method is using the free Visual C++ Toolkit 2008
! |msvc-2008-express|, the produced binary runs on most MS-Windows systems.
1. Microsoft Visual C++
=======================
We do not provide download links, since Microsoft keeps changing them. You
! can search for "Visual C++ 2015 build tools", for example. You will need to
create a Microsoft account (it's free).
--- 40,56 ----
16. Installing after building from sources
! The currently recommended way (that means it has been verified to work) is
! using the "Visual Studio Community 2015" installation. This includes the SDK
! needed to target Windows XP. But not older Windows versions (95, 97), see
! |msvc-2008-express| below for that
1. Microsoft Visual C++
=======================
We do not provide download links, since Microsoft keeps changing them. You
! can search for "Visual Studio Community 2015", for example. You will need to
create a Microsoft account (it's free).
***************
*** 204,213 ****
Getting the Windows Platform SDK *ms-platform-sdk*
! You will also need a copy of the Windows Platform SDK from
!
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
! Specifically, you need the Windows Core SDK subset of the Platform SDK,
! which contains the Windows headers and libraries.
Getting the .NET Framework 1.1 Runtime *dotnet-1.1-redist*
--- 210,219 ----
Getting the Windows Platform SDK *ms-platform-sdk*
! You will also need a copy of the Windows Platform SDK. Specifically, you need
! the Windows Core SDK subset of the Platform SDK, which contains the Windows
! headers and libraries. You need to search for it, Microsoft keeps changing
! the URL.
Getting the .NET Framework 1.1 Runtime *dotnet-1.1-redist*
***************
*** 448,498 ****
PYTHON3=C:\Python34 DYNAMIC_PYTHON3=yes PYTHON3_VER=34
! 8. Building with MzScheme/Racket support
========================================
! 1) Building with MzScheme support
!
! (written by Sergey Khorev <
sergey...@gmail.com>)
!
! Vim with MzScheme (
http://www.plt-scheme.org/software/mzscheme) support can
! be built with either MSVC, or MinGW, or Cygwin. Supported versions are 205 and
! above (including 299 and 30x series).
!
! The MSVC build is quite straightforward. Simply invoke (in one line)
! nmake -fMake_mvc.mak MZSCHEME=<Path-to-MzScheme>
! [MZSCHEME_VER=<MzScheme-version>] [DYNAMIC_MZSCHEME=<yes or no>]
! where <MzScheme-version> is the last seven characters from MzScheme dll name
! (libmzschXXXXXXX.dll).
! If DYNAMIC_MZSCHEME=yes, resulting executable will not depend on MzScheme
! DLL's, but will load them in runtime on demand.
!
! Building dynamic MzScheme support on MinGW and Cygwin is similar. Take into
! account that <Path-to-MzScheme> should contain slashes rather than backslashes
! (e.g. d:/Develop/MzScheme)
!
! "Static" MzScheme support (Vim executable will depend on MzScheme DLLs
! explicitly) on MinGW and Cygwin requires additional step.
!
! libmzschXXXXXXX.dll and libmzgcXXXXXXX.dll should be copied from
! %WINDOWS%\System32 to other location (either build directory, some temporary
! dir or even MzScheme home).
!
! Pass that path as MZSCHEME_DLLS parameter for Make. E.g.,
! make -f Make_cyg.mak MZSCHEME=d:/Develop/MzScheme MZSCHEME_VER=209_000
! MZSCHEME_DLLS=c:/Temp DYNAMIC_MZSCHEME=no
!
! After a successful build, these dlls can be freely removed, leaving them in
! %WINDOWS%\System32 only.
!
!
! 2) Building with Racket support
MzScheme and PLT Scheme names have been rebranded as Racket. Vim with Racket
! (
https://racket-lang.org/) support can be built with either MSVC or MinGW (or
! Cygwin).
! You need to set the following variables:
MZSCHEME: Where Racket is installed.
E.g. C:\Program Files (x86)\Racket
--- 454,475 ----
PYTHON3=C:\Python34 DYNAMIC_PYTHON3=yes PYTHON3_VER=34
! 8. Building with Racket or MzScheme support
========================================
! 1) Building with Racket support (newest)
MzScheme and PLT Scheme names have been rebranded as Racket. Vim with Racket
! support can be built with either MSVC or MinGW (or Cygwin).
! Get it from
https://download.racket-lang.org/
!
! Copy lib/libracket{version}.dll to your Windows system directory. The system
! directory depends on your Windows bitness and Vim bitness:
! 32-bit Vim on 32-bit Windows: C:\Windows\System32
! 32-bit Vim on 64-bit Windows: C:\Windows\SysWOW64
! 64-bit Vim on 64-bit Windows: C:\Windows\System32
! For building you need to set the following variables:
MZSCHEME: Where Racket is installed.
E.g. C:\Program Files (x86)\Racket
***************
*** 531,536 ****
--- 508,549 ----
Spaces should be escaped with '\'.
+ 2) Building with MzScheme support (older)
+
+ (written by Sergey Khorev <
sergey...@gmail.com>)
+
+ Vim with MzScheme (
http://www.plt-scheme.org/software/mzscheme) support can
+ be built with either MSVC, or MinGW, or Cygwin. Supported versions are 205 and
+ above (including 299 and 30x series).
+
+ The MSVC build is quite straightforward. Simply invoke (in one line)
+ nmake -fMake_mvc.mak MZSCHEME=<Path-to-MzScheme>
+ [MZSCHEME_VER=<MzScheme-version>] [DYNAMIC_MZSCHEME=<yes or no>]
+ where <MzScheme-version> is the last seven characters from MzScheme dll name
+ (libmzschXXXXXXX.dll).
+ If DYNAMIC_MZSCHEME=yes, resulting executable will not depend on MzScheme
+ DLL's, but will load them in runtime on demand.
+
+ Building dynamic MzScheme support on MinGW and Cygwin is similar. Take into
+ account that <Path-to-MzScheme> should contain slashes rather than backslashes
+ (e.g. d:/Develop/MzScheme)
+
+ "Static" MzScheme support (Vim executable will depend on MzScheme DLLs
+ explicitly) on MinGW and Cygwin requires additional step.
+
+ libmzschXXXXXXX.dll and libmzgcXXXXXXX.dll should be copied from
+ %WINDOWS%\System32 to other location (either build directory, some temporary
+ dir or even MzScheme home).
+
+ Pass that path as MZSCHEME_DLLS parameter for Make. E.g.,
+ make -f Make_cyg.mak MZSCHEME=d:/Develop/MzScheme MZSCHEME_VER=209_000
+ MZSCHEME_DLLS=c:/Temp DYNAMIC_MZSCHEME=no
+
+ After a successful build, these dlls can be freely removed, leaving them in
+ %WINDOWS%\System32 only.
+
+
+
9. Building with Lua support
============================
***************
*** 576,582 ****
Or when using MinGW (as one line):
! mingw32-make -f Make_mingw.mak
LUA=C:\projects\lua53 DYNAMIC_LUA=yes LUA_VER=53
--- 589,595 ----
Or when using MinGW (as one line):
! mingw32-make -f Make_ming.mak
LUA=C:\projects\lua53 DYNAMIC_LUA=yes LUA_VER=53
***************
*** 608,614 ****
Or when using MinGW (as one line):
! mingw32-make -f Make_mingw.mak
PERL=C:\Perl DYNAMIC_PERL=yes PERL_VER=522
--- 621,627 ----
Or when using MinGW (as one line):
! mingw32-make -f Make_ming.mak
PERL=C:\Perl DYNAMIC_PERL=yes PERL_VER=522
***************
*** 617,623 ****
Vim with Ruby support can be built with either MSVC or MinGW (or Cygwin).
Ruby doesn't provide the official Windows binaries. The most widely used
! Windows binaries might be RubyInstaller.
http://rubyinstaller.org/
--- 630,636 ----
Vim with Ruby support can be built with either MSVC or MinGW (or Cygwin).
Ruby doesn't provide the official Windows binaries. The most widely used
! Windows binaries might be RubyInstaller. Currently Ruby 2.4 is recommended.
http://rubyinstaller.org/
***************
*** 628,638 ****
When building, you need to set the following variables at least:
! RUBY: Where ruby is installed. E.g. C:\Ruby22
DYNAMIC_RUBY: Whether dynamic linking is used. Usually, set to yes.
! RUBY_VER: Ruby version. E.g. 22 for Ruby 2.2.X.
RUBY_API_VER_LONG: Ruby API version in a long format.
! E.g. 2.2.0 for Ruby 2.2.X.
Ruby version vs. Ruby API version:
--- 641,651 ----
When building, you need to set the following variables at least:
! RUBY: Where ruby is installed. E.g. C:\Ruby24
DYNAMIC_RUBY: Whether dynamic linking is used. Usually, set to yes.
! RUBY_VER: Ruby version. E.g. 24 for Ruby 2.4.X.
RUBY_API_VER_LONG: Ruby API version in a long format.
! E.g. 2.4.0 for Ruby 2.4.X.
Ruby version vs. Ruby API version:
***************
*** 657,689 ****
1) Download and Install RubyInstaller.
You can install RubyInstaller with the default options and directory.
E.g.:
! C:\Ruby22 (32-bit) or C:\Ruby22-x64 (64-bit)
! Ruby 2.2.X is used in this example.
! 2) Download Ruby 2.2.X's source code and generate config.h:
cd C:\projects
! git clone
https://github.com/ruby/ruby.git -b ruby_2_2
cd ruby
win32\configure.bat
nmake .config.h.time
! Note that ruby_2_2 is the branch name for Ruby 2.2.X's source code.
There is no need to build whole Ruby, just config.h is needed.
If you use 32-bit MSVC10, the config.h is generated in the
! .ext\include\i386-mswin32_100 directory.
3) Install the generated config.h.
! xcopy /s .ext\include C:\Ruby22\include\ruby-2.2.0
! Note that 2.2.0 is Ruby API version of Ruby 2.2.X.
4) Build Vim. Note that you need to adjust some variables (as one line):
nmake -f Make_mvc.mak
! RUBY=C:\Ruby22 DYNAMIC_RUBY=yes RUBY_VER=22 RUBY_API_VER_LONG=2.2.0
RUBY_MSVCRT_NAME=msvcrt
WINVER=0x501
--- 670,703 ----
1) Download and Install RubyInstaller.
You can install RubyInstaller with the default options and directory.
E.g.:
! C:\Ruby24 (32-bit) or C:\Ruby24-x64 (64-bit)
! Ruby 2.4.X is used in this example.
! 2) Download Ruby 2.4.X's source code and generate config.h:
cd C:\projects
! git clone
https://github.com/ruby/ruby.git -b ruby_2_4
cd ruby
win32\configure.bat
nmake .config.h.time
! Note that ruby_2_4 is the branch name for Ruby 2.4.X's source code.
There is no need to build whole Ruby, just config.h is needed.
If you use 32-bit MSVC10, the config.h is generated in the
! .ext\include\i386-mswin32_140 directory.
3) Install the generated config.h.
! xcopy /s .ext\include E:\Ruby24\include\ruby-2.4.0
! Note that 2.4.0 is Ruby API version of Ruby 2.4.X.
! You may need to close the console and reopen it to pick up the new $PATH.
4) Build Vim. Note that you need to adjust some variables (as one line):
nmake -f Make_mvc.mak
! RUBY=C:\Ruby24 DYNAMIC_RUBY=yes RUBY_VER=24 RUBY_API_VER_LONG=2.4.0
RUBY_MSVCRT_NAME=msvcrt
WINVER=0x501
***************
*** 714,719 ****
--- 728,734 ----
http://www.activestate.com/activetcl
+ For MSVC 2015 use version 8.6.6 or later.
When building, you need to set the following variables:
TCL: Where tcl is installed. E.g. C:\Tcl86
***************
*** 723,729 ****
Sometimes the Tcl dll name changes. E.g. ActiveTcl 8.6.4 comes with tcl86.dll,
but ActiveTcl 8.6.6 comes with tcl86t.dll. You can set the dll name by setting
! the TCL_DLL variable. (Default: tcl86.dll)
E.g. When using MSVC (as one line):
--- 738,745 ----
Sometimes the Tcl dll name changes. E.g. ActiveTcl 8.6.4 comes with tcl86.dll,
but ActiveTcl 8.6.6 comes with tcl86t.dll. You can set the dll name by setting
! the TCL_DLL variable:
! TCL_DLL=tcl86t.dll
E.g. When using MSVC (as one line):
***************
*** 732,738 ****
Or when using MinGW (as one line):
! mingw32-make -f Make_mingw.mak
TCL=C:\Tcl86 DYNAMIC_TCL=yes TCL_VER=86 TCL_VER_LONG=8.6
--- 748,754 ----
Or when using MinGW (as one line):
! mingw32-make -f Make_ming.mak
TCL=C:\Tcl86 DYNAMIC_TCL=yes TCL_VER=86 TCL_VER_LONG=8.6
***************
*** 749,755 ****
Or when using MinGW (as one line):
! mingw32-make -f Make_mingw.mak TERMINAL=yes
14. Windows 3.1x
--- 765,771 ----
Or when using MinGW (as one line):
! mingw32-make -f Make_ming.mak TERMINAL=yes
14. Windows 3.1x
*** ../vim-8.0.1182/src/bigvim.bat 2016-09-12 13:17:03.000000000 +0200
--- src/bigvim.bat 2017-10-08 17:54:37.518526799 +0200
***************
*** 1,5 ****
! :: command to build big Vim with OLE, Perl, Python, Ruby and Tcl
SET VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\"
SET TOOLDIR=E:\
! %VCDIR%nmake -f Make_mvc.mak GUI=yes OLE=yes PERL=%TOOLDIR%perl524 DYNAMIC_PERL=yes PERL_VER=524 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python35 DYNAMIC_PYTHON3=yes PYTHON3_VER=35 RUBY=%TOOLDIR%ruby22 DYNAMIC_RUBY=yes RUBY_VER=22 RUBY_API_VER_LONG=2.2.0 RUBY_MSVCRT_NAME=msvcrt TCL=%TOOLDIR%tcl TCL_VER=86 TCL_VER_LONG=8.6 DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes DIRECTX=yes
--- 1,5 ----
! :: command to build big Vim with OLE, Lua, Perl, Python, Racket, Ruby and Tcl
SET VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\"
SET TOOLDIR=E:\
! %VCDIR%nmake -f Make_mvc.mak GUI=yes OLE=yes LUA=%TOOLDIR%lua53 DYNAMIC_LUA=yes LUA_VER=53 PERL=%TOOLDIR%perl524 DYNAMIC_PERL=yes PERL_VER=524 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python35 DYNAMIC_PYTHON3=yes PYTHON3_VER=35 MZSCHEME=%TOOLDIR%Racket DYNAMIC_MZSCHEME=yes MZSCHEME_VER=3m_a36fs8 RUBY=%TOOLDIR%ruby24 DYNAMIC_RUBY=yes RUBY_VER=24 RUBY_API_VER_LONG=2.4.0 RUBY_MSVCRT_NAME=msvcrt TCL=%TOOLDIR%ActiveTcl TCL_VER=86 TCL_VER_LONG=8.6 DYNAMIC_TCL=yes TCL_DLL=tcl86t.dll %1 IME=yes CSCOPE=yes DIRECTX=yes
*** ../vim-8.0.1182/src/version.c 2017-10-08 17:41:30.084460598 +0200
--- src/version.c 2017-10-08 17:55:27.591742611 +0200
***************
*** 763,764 ****
--- 763,766 ----
{ /* Add new patch number below this line */
+ /**/
+ 1183,
/**/
--
The software said it requires Windows 95 or better, so I installed Linux.
/// Bram Moolenaar -- Br...@Moolenaar.net --
http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features --
http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language --
http://www.Zimbu.org ///
\\\ help me help AIDS victims --
http://ICCF-Holland.org ///