# HG changeset patch # User Christian Brabandt # Date 1530369006 -7200 # Node ID 78449866e9a98dcedb4c12d3afec5f9c12a807e2 # Parent 21a68013cae21aeaa50662bc45160dd9e4a040d4 patch 8.1.0128: building with MinGW does not work out-of-the-box commit https://github.com/vim/vim/commit/304925e75031751fc87b51e387eb079bf3ae2066 Author: Bram Moolenaar Date: Sat Jun 30 16:27:02 2018 +0200 patch 8.1.0128: building with MinGW does not work out-of-the-box Problem: Building with MinGW does not work out-of-the-box. Solution: Add instructions for MSYS2. Set default WINVER. Add batch files to set $PATH for MSYS2. diff --git a/Filelist b/Filelist --- a/Filelist +++ b/Filelist @@ -412,6 +412,8 @@ SRC_DOS = \ src/msvc2008.bat \ src/msvc2010.bat \ src/msvc2015.bat \ + src/msys32.bat \ + src/msys64.bat \ src/dimm.idl \ src/dlldata.c \ src/dosinst.c \ diff --git a/src/INSTALLpc.txt b/src/INSTALLpc.txt --- a/src/INSTALLpc.txt +++ b/src/INSTALLpc.txt @@ -22,23 +22,24 @@ any faster, but you can edit files large Contents: 1. Microsoft Visual C++ -2. Using MinGW -3. Cygwin -4. Borland -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 -12. Building with Tcl support -13. Building with Terminal support -14. Building with DirectX (DirectWrite) support -15. Windows 3.1 -16. MS-DOS +2. Using MSYS2 with MinGW +3. Using MinGW +4. Cygwin +5. Borland +6. Cross compiling for Win32 from a Linux machine +7. Building with Python support +8. Building with Python3 support +9. Building with Racket or MzScheme support +10. Building with Lua support +11. Building with Perl support +12. Building with Ruby support +13. Building with Tcl support +14. Building with Terminal support +15. Building with DirectX (DirectWrite) support +16. Windows 3.1 +17. MS-DOS -17. Installing after building from sources +18. Installing after building from sources The currently recommended way (that means it has been verified to work) is @@ -261,8 +262,87 @@ Instructions for integrating the Platfor http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx +2. MSYS2 with MinGW +=================== -2. MinGW +2.1. Setup the basic msys2 environment + +Go to the official page of MSYS2: https://www.msys2.org +Download an installer: + +* msys2-x86_64-YYYYMMDD.exe for 64-bit Windows + (Even if you want to build 32-bit Vim) +* msys2-i686-YYYYMMDD.exe for 32-bit Windows + +Execute the installer and follow the instructions to update basic packages. +At the end keep the checkbox checked to run msys2 now. If needed, you can +open the window from the start menu, MSYS2 64 bit / MSYS2 MSYS + +Execute: + $ pacman -Syu + +And restart MSYS2 window (select "MSYS2 MSYS" icon from the Start Menu). +Then execute: + $ pacman -Su + +If pacman complains that `catgets` and `libcatgets` conflict with another +package, select `y` to remove them. + + +2.2. Install additional packages for building Vim + +The following package groups are required for building Vim: + +* base-devel +* mingw-w64-i686-toolchain (for building 32-bit Vim) +* mingw-w64-x86_64-toolchain (for building 64-bit Vim) + +Use the following command to install them: + + $ pacman -S base-devel mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain + +Or you can use the `pacboy` command to avoid long package names: + + $ pacboy -S base-devel: toolchain:m + +(See `pacboy help` for the help.) + + +2.3. Keep the build environment up-to-date + +After you have installed the build environment, you may want to keep it +up-to-date (E.g. always use the latest GCC). +In that case, you just need to execute the command: + $ pacman -Syu + + +# Build Vim + +Select one of the following icon from the Start Menu: + +* MSYS2 MinGW 32-bit (To build 32-bit versions of Vim) +* MSYS2 MinGW 64-bit (To build 64-bit versions of Vim) + +Go to the source directory of Vim, then execute the make command. E.g.: + + make -f Make_ming.mak + make -f Make_ming.mak GUI=no + make -f Make_ming.mak GUI=no DEBUG=yes + +NOTE: you can't execute the vim.exe in the MSYS console, open a normal Windows +console for that. You need to set $PATH to be able to build there, e.g.: + + set PATH=c:\msys64\mingw32\bin;c:\msys64\usr\bin;%PATH% + +This command is in msys32.bat. Or or the 64 bit compiler use msys64.bat: + + set PATH=c:\msys64\mingw64\bin;c:\msys64\usr\bin;%PATH% + +If you have msys64 in another location you will need to adjust the paths for +that. + + +3. MinGW ======== (written by Ron Aaron: ) @@ -344,7 +424,7 @@ If you want National Language Support, r You need to uncomment lines in Make_ming.mak to have NLS defined. -3. Cygwin +4. Cygwin ========= Use Make_cyg.mak with Cygwin's GCC. See @@ -356,14 +436,14 @@ running on Unix), while with Make_cyg.ma with the other makefiles). -4. Borland +5. Borland =========== Use Make_bc5.mak with Borland C++ 5.x. See http://users.skynet.be/antoine.mechelynck/vim/compile.htm -5. Cross compiling for Win32 from a Linux machine +6. Cross compiling for Win32 from a Linux machine ================================================= [Update of 1) needs to be verified] @@ -383,7 +463,7 @@ your Linux (or other unix) box. To do t Now you have created the Windows binary from your Linux box! Have fun... -6. Building with Python support +7. Building with Python support =============================== For building with MSVC 2008 the "Windows Installer" from www.python.org @@ -435,7 +515,7 @@ And if you use msys2 to build python sup You will end up with a Python-enabled, Win32 version. Enjoy! -7. Building with Python3 support +8. Building with Python3 support ================================ For building with MSVC 2008 the "Windows Installer" from www.python.org @@ -466,7 +546,7 @@ When using msys2 and link with Python3 b (This is for 64-bit builds. For 32-bit builds, replace mingw64 with mingw32.) -8. Building with Racket or MzScheme support +9. Building with Racket or MzScheme support ======================================== 1) Building with Racket support (newest) @@ -556,7 +636,7 @@ After a successful build, these dlls can -9. Building with Lua support +10. Building with Lua support ============================ Vim with Lua support can be built with either MSVC or MinGW (or maybe Cygwin). @@ -611,7 +691,7 @@ Or when using Cygwin (as one line) (unte LUA=/cygdrive/c/projects/lua53 DYNAMIC_LUA=yes LUA_VER=53 -10. Building with Perl support +11. Building with Perl support ============================== Vim with Perl support can be built with either MSVC or MinGW (or Cygwin). @@ -637,7 +717,7 @@ Or when using MinGW (as one line): PERL=C:/Perl DYNAMIC_PERL=yes PERL_VER=522 -11. Building with Ruby support +12. Building with Ruby support ============================== Vim with Ruby support can be built with either MSVC or MinGW (or Cygwin). @@ -745,7 +825,7 @@ Ruby 2.1 or later. (Default is 0x501.) -12. Building with Tcl support +13. Building with Tcl support ============================= Vim with Tcl support can be built with either MSVC or MinGW (or Cygwin). @@ -777,7 +857,7 @@ Or when using MinGW (as one line): TCL=C:/Tcl86 DYNAMIC_TCL=yes TCL_VER=86 TCL_VER_LONG=8.6 -13. Building with Terminal support +14. Building with Terminal support ================================== Vim with Terminal support can be built with either MSVC, MinGW or Cygwin. @@ -793,7 +873,7 @@ Or when using MinGW: mingw32-make -f Make_ming.mak TERMINAL=yes -14. Building with DirectX (DirectWrite) support +15. Building with DirectX (DirectWrite) support =============================================== Vim with DirectX (DirectWrite) support can be built with either MSVC or MinGW. @@ -827,20 +907,20 @@ Just set DIRECTX to yes: mingw32-make -f Make_ming.mak DIRECTX=yes -15. Windows 3.1x +16. Windows 3.1x ================ The Windows 3.1x support was removed in patch 7.4.1364. -16. MS-DOS +17. MS-DOS ========== The MS-DOS support was removed in patch 7.4.1399. Only very old Vim versions work on MS-DOS because of the limited amount of memory available. -17. Installing after building from sources +18. Installing after building from sources ========================================== [provided by Michael Soyka, updated by Ken Takata] diff --git a/src/Make_cyg_ming.mak b/src/Make_cyg_ming.mak --- a/src/Make_cyg_ming.mak +++ b/src/Make_cyg_ming.mak @@ -75,9 +75,10 @@ POSTSCRIPT=no # Set to yes to enable OLE support. OLE=no -# Set the default $(WINVER) to make it work with WinXP. +# Set the default $(WINVER). Use 0x0501 to make it work with WinXP. ifndef WINVER -WINVER = 0x0501 +# WINVER = 0x0501 +WINVER = 0x0600 endif # Set to yes to enable Cscope support. diff --git a/src/msys32.bat b/src/msys32.bat new file mode 100755 --- /dev/null +++ b/src/msys32.bat @@ -0,0 +1,6 @@ +@echo off +rem To be used on MS-Windows for Msys2 with the 32 bit MinGW compiler. +rem Adjust the "c:\msys64" part to match your installation. +@echo on + +set PATH=c:\msys64\mingw32\bin;c:\msys64\usr\bin;%PATH% diff --git a/src/msys64.bat b/src/msys64.bat new file mode 100755 --- /dev/null +++ b/src/msys64.bat @@ -0,0 +1,6 @@ +@echo off +rem To be used on MS-Windows for Msys2 with the 64 bit MinGW compiler. +rem Adjust the "c:\msys64" part to match your installation. +@echo on + +set PATH=c:\msys64\mingw64\bin;c:\msys64\usr\bin;%PATH%