changeset 14222:78449866e9a9 v8.1.0128

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 <Bram@vim.org> 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.
author Christian Brabandt <cb@256bit.org>
date Sat, 30 Jun 2018 16:30:06 +0200
parents 21a68013cae2
children 58535cb610d7
files Filelist src/INSTALLpc.txt src/Make_cyg_ming.mak src/msys32.bat src/msys64.bat
diffstat 5 files changed, 129 insertions(+), 34 deletions(-) [+]
line wrap: on
line diff
--- 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 \
--- 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: <ronaharon@yahoo.com>)
@@ -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]
--- 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.
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%
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%