comparison src/Make_mvc.mak @ 6797:56a735cff1a0 v7.4.720

patch 7.4.720 Problem: Can't build with Visual Studio 2015. Solution: Recognize the "version 14" numbers and omit /nodefaultlib when appropriate. (Paul Moore)
author Bram Moolenaar <bram@vim.org>
date Mon, 04 May 2015 16:18:42 +0200
parents 112c80234ce3
children ea0468670fbe
comparison
equal deleted inserted replaced
6796:24d91496a2b2 6797:56a735cff1a0
341 # need advapi32.lib for GetUserName() 341 # need advapi32.lib for GetUserName()
342 # need shell32.lib for ExtractIcon() 342 # need shell32.lib for ExtractIcon()
343 # gdi32.lib and comdlg32.lib for printing support 343 # gdi32.lib and comdlg32.lib for printing support
344 # ole32.lib and uuid.lib are needed for FEAT_SHORTCUT 344 # ole32.lib and uuid.lib are needed for FEAT_SHORTCUT
345 CON_LIB = oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib \ 345 CON_LIB = oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib \
346 comdlg32.lib ole32.lib uuid.lib /machine:$(CPU) /nodefaultlib 346 comdlg32.lib ole32.lib uuid.lib /machine:$(CPU)
347 !if "$(DELAYLOAD)" == "yes" 347 !if "$(DELAYLOAD)" == "yes"
348 CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib 348 CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib
349 !endif 349 !endif
350 350
351 ### Set the default $(WINVER) to make it work with VC++7.0 (VS.NET) 351 ### Set the default $(WINVER) to make it work with VC++7.0 (VS.NET)
443 !if "$(_NMAKE_VER)" == "11.00.61030.0" 443 !if "$(_NMAKE_VER)" == "11.00.61030.0"
444 MSVCVER = 11.0 444 MSVCVER = 11.0
445 !endif 445 !endif
446 !if "$(_NMAKE_VER)" == "12.00.21005.1" 446 !if "$(_NMAKE_VER)" == "12.00.21005.1"
447 MSVCVER = 12.0 447 MSVCVER = 12.0
448 !endif
449 !if "$(_NMAKE_VER)" == "14.00.22609.0"
450 MSVCVER = 14.0
448 !endif 451 !endif
449 !endif 452 !endif
450 453
451 # Abort building VIM if version of VC is unrecognised. 454 # Abort building VIM if version of VC is unrecognised.
452 !ifndef MSVCVER 455 !ifndef MSVCVER
458 !message to handle the new value for _NMAKE_VER, "$(_NMAKE_VER)". 461 !message to handle the new value for _NMAKE_VER, "$(_NMAKE_VER)".
459 !error Make aborted. 462 !error Make aborted.
460 !endif 463 !endif
461 464
462 # Convert processor ID to MVC-compatible number 465 # Convert processor ID to MVC-compatible number
463 !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != "10.0") && ("$(MSVCVER)" != "11.0") && ("$(MSVCVER)" != "12.0") 466 !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != "10.0") && ("$(MSVCVER)" != "11.0") && ("$(MSVCVER)" != "12.0") && ("$(MSVCVER)" != "14.0")
464 !if "$(CPUNR)" == "i386" 467 !if "$(CPUNR)" == "i386"
465 CPUARG = /G3 468 CPUARG = /G3
466 !elseif "$(CPUNR)" == "i486" 469 !elseif "$(CPUNR)" == "i486"
467 CPUARG = /G4 470 CPUARG = /G4
468 !elseif "$(CPUNR)" == "i586" 471 !elseif "$(CPUNR)" == "i586"
481 !endif 484 !endif
482 !endif 485 !endif
483 486
484 LIBC = 487 LIBC =
485 DEBUGINFO = /Zi 488 DEBUGINFO = /Zi
489
490 # Don't use /nodefaultlib on MSVC 14
491 !if "$(MSVCVER)" == "14.0"
492 NODEFAULTLIB =
493 !else
494 NODEFAULTLIB = /nodefaultlib
495 !endif
486 496
487 !ifdef NODEBUG 497 !ifdef NODEBUG
488 VIM = vim 498 VIM = vim
489 !if "$(OPTIMIZE)" == "SPACE" 499 !if "$(OPTIMIZE)" == "SPACE"
490 OPTFLAG = /O1 500 OPTFLAG = /O1
653 $(OUTDIR)\gui_w32.obj \ 663 $(OUTDIR)\gui_w32.obj \
654 $(OUTDIR)\os_w32exe.obj 664 $(OUTDIR)\os_w32exe.obj
655 GUI_LIB = \ 665 GUI_LIB = \
656 gdi32.lib version.lib $(IME_LIB) \ 666 gdi32.lib version.lib $(IME_LIB) \
657 winspool.lib comctl32.lib advapi32.lib shell32.lib \ 667 winspool.lib comctl32.lib advapi32.lib shell32.lib \
658 /machine:$(CPU) /nodefaultlib 668 /machine:$(CPU)
659 !else 669 !else
660 SUBSYSTEM = console 670 SUBSYSTEM = console
661 !endif 671 !endif
662 672
663 !if "$(SUBSYSTEM_VER)" != "" 673 !if "$(SUBSYSTEM_VER)" != ""
974 # "/mapinfo:lines" is for debugging, only works for VC6 and later 984 # "/mapinfo:lines" is for debugging, only works for VC6 and later
975 conflags = $(conflags) /map /mapinfo:lines 985 conflags = $(conflags) /map /mapinfo:lines
976 !ENDIF 986 !ENDIF
977 987
978 LINKARGS1 = $(linkdebug) $(conflags) 988 LINKARGS1 = $(linkdebug) $(conflags)
979 LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(LIBC) $(OLE_LIB) user32.lib $(SNIFF_LIB) \ 989 LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(NODEFAULTLIB) $(LIBC) $(OLE_LIB) user32.lib $(SNIFF_LIB) \
980 $(LUA_LIB) $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) $(PYTHON3_LIB) $(RUBY_LIB) \ 990 $(LUA_LIB) $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) $(PYTHON3_LIB) $(RUBY_LIB) \
981 $(TCL_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB) 991 $(TCL_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB)
982 992
983 # Report link time code generation progress if used. 993 # Report link time code generation progress if used.
984 !ifdef NODEBUG 994 !ifdef NODEBUG