To: vim_dev@googlegroups.com Subject: Patch 7.4.960 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.960 Problem: Detecting every version of nmake is clumsy. Solution: Use a tiny C program to get the version of _MSC_VER. (Ken Takata) Files: src/Make_mvc.mak *** ../vim-7.4.959/src/Make_mvc.mak 2015-07-21 20:22:07.331615818 +0200 --- src/Make_mvc.mak 2015-12-03 22:35:49.738178498 +0100 *************** *** 117,124 **** # Netbeans Debugging Support: NBDEBUG=[yes or no] (should be no, yes # doesn't work) # - # Visual C Version: MSVCVER=m.n (default derived from nmake if undefined) - # # Static Code Analysis: ANALYZE=yes (works with VS2012 only) # # You can combine any of these interfaces --- 117,122 ---- *************** *** 379,469 **** INTDIR=$(OBJDIR) OUTDIR=$(OBJDIR) ! # Derive version of VC being used from nmake if not specified ! !if "$(MSVCVER)" == "" ! !if "$(_NMAKE_VER)" == "" ! MSVCVER = 4.0 ! !endif ! !if "$(_NMAKE_VER)" == "162" ! MSVCVER = 5.0 ! !endif ! !if "$(_NMAKE_VER)" == "6.00.8168.0" ! MSVCVER = 6.0 ! CPU = ix86 ! !endif ! !if "$(_NMAKE_VER)" == "6.00.9782.0" ! MSVCVER = 6.0 ! CPU = ix86 ! !endif ! !if "$(_NMAKE_VER)" == "7.00.9466" ! MSVCVER = 7.0 ! !endif ! !if "$(_NMAKE_VER)" == "7.10.3077" ! MSVCVER = 7.1 ! !endif ! !if "$(_NMAKE_VER)" == "8.00.50727.42" ! MSVCVER = 8.0 ! !endif ! !if "$(_NMAKE_VER)" == "8.00.50727.762" ! MSVCVER = 8.0 ! !endif ! !if "$(_NMAKE_VER)" == "9.00.20706.01" ! MSVCVER = 9.0 ! !endif ! !if "$(_NMAKE_VER)" == "9.00.21022.08" ! MSVCVER = 9.0 ! !endif ! !if "$(_NMAKE_VER)" == "9.00.30729.01" ! MSVCVER = 9.0 ! !endif ! !if "$(_NMAKE_VER)" == "10.00.20506.01" ! MSVCVER = 10.0 ! !endif ! !if "$(_NMAKE_VER)" == "10.00.30128.01" ! MSVCVER = 10.0 ! !endif ! !if "$(_NMAKE_VER)" == "10.00.30319.01" ! MSVCVER = 10.0 ! !endif ! !if "$(_NMAKE_VER)" == "10.00.40219.01" ! MSVCVER = 10.0 ! !endif ! !if "$(_NMAKE_VER)" == "11.00.50727.1" ! MSVCVER = 11.0 ! !endif ! !if "$(_NMAKE_VER)" == "11.00.51106.1" ! MSVCVER = 11.0 ! !endif ! !if "$(_NMAKE_VER)" == "11.00.60315.1" ! MSVCVER = 11.0 ! !endif ! !if "$(_NMAKE_VER)" == "11.00.60610.1" ! MSVCVER = 11.0 ! !endif ! !if "$(_NMAKE_VER)" == "11.00.61030.0" ! MSVCVER = 11.0 ! !endif ! !if "$(_NMAKE_VER)" == "12.00.21005.1" ! MSVCVER = 12.0 !endif - !if ("$(_NMAKE_VER)" == "14.00.22609.0") || ("$(_NMAKE_VER)" == "14.00.22816.0") || ("$(_NMAKE_VER)" == "14.00.23026.0") - MSVCVER = 14.0 !endif !endif ! # Abort building VIM if version of VC is unrecognised. ! !ifndef MSVCVER ! !message *** ERROR ! !message Cannot determine Visual C version being used. If you are using the ! !message Windows SDK then you must have the environment variable MSVCVER set to ! !message your version of the VC compiler. If you are not using the Express ! !message version of Visual C, you can either set MSVCVER or update this makefile ! !message to handle the new value for _NMAKE_VER, "$(_NMAKE_VER)". ! !error Make aborted. !endif # Convert processor ID to MVC-compatible number ! !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != "10.0") && ("$(MSVCVER)" != "11.0") && ("$(MSVCVER)" != "12.0") && ("$(MSVCVER)" != "14.0") !if "$(CPUNR)" == "i386" CPUARG = /G3 !elseif "$(CPUNR)" == "i486" --- 377,405 ---- INTDIR=$(OBJDIR) OUTDIR=$(OBJDIR) ! !if [echo MSVCVER=_MSC_VER> msvcver.c && $(CC) /EP msvcver.c > msvcver.~ 2> nul] ! !message *** ERROR ! !message Cannot run Visual C to determine its version. Make sure cl.exe is in your PATH. ! !message This can usually be done by running "vcvarsall.bat", located in the bin directory where Visual Studio was installed. ! !error Make aborted. ! !else ! !include msvcver.~ ! !if [del msvcver.c msvcver.~] !endif !endif + + !if $(MSVCVER) < 1900 + MSVC_MAJOR = ($(MSVCVER) / 100 - 6) + !else + MSVC_MAJOR = ($(MSVCVER) / 100 - 5) !endif ! !if $(MSVC_MAJOR) == 6 ! CPU = ix86 !endif # Convert processor ID to MVC-compatible number ! !if $(MSVC_MAJOR) < 8 !if "$(CPUNR)" == "i386" CPUARG = /G3 !elseif "$(CPUNR)" == "i486" *************** *** 488,494 **** DEBUGINFO = /Zi # Don't use /nodefaultlib on MSVC 14 ! !if "$(MSVCVER)" == "14.0" NODEFAULTLIB = !else NODEFAULTLIB = /nodefaultlib --- 424,430 ---- DEBUGINFO = /Zi # Don't use /nodefaultlib on MSVC 14 ! !if $(MSVC_MAJOR) >= 14 NODEFAULTLIB = !else NODEFAULTLIB = /nodefaultlib *************** *** 504,510 **** OPTFLAG = /Ox !endif ! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0") || ("$(MSVCVER)" == "12.0") # Use link time code generation if not worried about size !if "$(OPTIMIZE)" != "SPACE" OPTFLAG = $(OPTFLAG) /GL --- 440,446 ---- OPTFLAG = /Ox !endif ! !if $(MSVC_MAJOR) >= 8 # Use link time code generation if not worried about size !if "$(OPTIMIZE)" != "SPACE" OPTFLAG = $(OPTFLAG) /GL *************** *** 512,523 **** !endif # (/Wp64 is deprecated in VC9 and generates an obnoxious warning.) ! !if ("$(MSVCVER)" == "7.0") || ("$(MSVCVER)" == "7.1") || ("$(MSVCVER)" == "8.0") CFLAGS=$(CFLAGS) $(WP64CHECK) !endif ! # Static code analysis generally available starting with VS2012 ! !if ("$(ANALYZE)" == "yes") && (("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0") || ("$(MSVCVER)" == "12.0")) CFLAGS=$(CFLAGS) /analyze !endif --- 448,460 ---- !endif # (/Wp64 is deprecated in VC9 and generates an obnoxious warning.) ! !if ($(MSVC_MAJOR) == 7) || ($(MSVC_MAJOR) == 8) CFLAGS=$(CFLAGS) $(WP64CHECK) !endif ! # Static code analysis generally available starting with VS2012 (VC11) or ! # Windows SDK 7.1 (VC10) ! !if ("$(ANALYZE)" == "yes") && ($(MSVC_MAJOR) >= 10) CFLAGS=$(CFLAGS) /analyze !endif *************** *** 538,544 **** CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od RCFLAGS = $(rcflags) $(rcvars) -D_DEBUG -DDEBUG # The /fixed:no is needed for Quantify. Assume not 4.? as unsupported in VC4.0. ! ! if "$(MSVCVER)" == "4.0" LIBC = ! else LIBC = /fixed:no --- 475,481 ---- CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od RCFLAGS = $(rcflags) $(rcvars) -D_DEBUG -DDEBUG # The /fixed:no is needed for Quantify. Assume not 4.? as unsupported in VC4.0. ! ! if $(MSVC_MAJOR) == 4 LIBC = ! else LIBC = /fixed:no *************** *** 993,999 **** # Report link time code generation progress if used. !ifdef NODEBUG ! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0") || ("$(MSVCVER)" == "12.0") !if "$(OPTIMIZE)" != "SPACE" LINKARGS1 = $(LINKARGS1) /LTCG:STATUS !endif --- 930,936 ---- # Report link time code generation progress if used. !ifdef NODEBUG ! !if $(MSVC_MAJOR) >= 8 !if "$(OPTIMIZE)" != "SPACE" LINKARGS1 = $(LINKARGS1) /LTCG:STATUS !endif *************** *** 1090,1096 **** # Create a default rule for transforming .c files to .obj files in $(OUTDIR) # Batch compilation is supported by nmake 1.62 (part of VS 5.0) and later) ! !IF "$(MSVCVER)" == "4.0" .c{$(OUTDIR)/}.obj: !ELSE .c{$(OUTDIR)/}.obj:: --- 1027,1033 ---- # Create a default rule for transforming .c files to .obj files in $(OUTDIR) # Batch compilation is supported by nmake 1.62 (part of VS 5.0) and later) ! !IF "$(_NMAKE_VER)" == "" .c{$(OUTDIR)/}.obj: !ELSE .c{$(OUTDIR)/}.obj:: *************** *** 1099,1105 **** # Create a default rule for transforming .cpp files to .obj files in $(OUTDIR) # Batch compilation is supported by nmake 1.62 (part of VS 5.0) and later) ! !IF "$(MSVCVER)" == "4.0" .cpp{$(OUTDIR)/}.obj: !ELSE .cpp{$(OUTDIR)/}.obj:: --- 1036,1042 ---- # Create a default rule for transforming .cpp files to .obj files in $(OUTDIR) # Batch compilation is supported by nmake 1.62 (part of VS 5.0) and later) ! !IF "$(_NMAKE_VER)" == "" .cpp{$(OUTDIR)/}.obj: !ELSE .cpp{$(OUTDIR)/}.obj:: *** ../vim-7.4.959/src/version.c 2015-12-03 21:17:19.570138967 +0100 --- src/version.c 2015-12-03 22:36:06.013999002 +0100 *************** *** 743,744 **** --- 743,746 ---- { /* Add new patch number below this line */ + /**/ + 960, /**/ -- hundred-and-one symptoms of being an internet addict: 193. You ask your girlfriend to drive home so you can sit back with your PDA and download the information to your laptop /// Bram Moolenaar -- Bram@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 ///