Hi again! I have realised that on my laptop that I am using at work there is a nmake version 6.00.9782.0 which isn't in the version list of your make_mvc.mak patch. I therefore definitively suggest to omit this version list an relay solely on the MSVCVer environment variable which should be defined since VC tool chain version 7.0. One can force the user to define this variable with an !error directive or one can utilize version 6.0 as standard. This may be a matter of taste.
Therefore, I suggest the patch that is attached to this email. With kind regards Mathias
Problem: VC8 no longer supports the /Gn processor code generation directive, and the makefile now uses link time code generation when not optimizing for space with an error message. Solution: Check version of the visual tool set and, if version is 8.0, use VC8 specific optimization options. Files: src/Make_mvc.mak *** ..\vim-7.0.000\src\Make_mvc.mak 2006-04-26 12:30:22.000000000 +0200 --- src\Make_mvc.mak 2007-01-20 20:29:44.430628800 +0100 *************** *** 320,326 **** --- 320,334 ---- INTDIR=$(OBJDIR) OUTDIR=$(OBJDIR) + # We must know the version of the visual C tool chain. + !ifndef MSVCVER + !message Environment variable MSVCVer not defined. Please set it to the version of your + !message visual C tool chain. Possible values are 4.0, 5.0, 6.0, 7.0, 7.1 and 8.0. + !error Environment variable MSVCVer is undefined! + !endif + # Convert processor ID to MVC-compatible number + !if "$(MSVCVER)" != "8.0" !if "$(CPUNR)" == "i386" CPUARG = /G3 !elseif "$(CPUNR)" == "i486" *************** *** 334,339 **** --- 342,353 ---- !else CPUARG = !endif + !else + # VC8 only allows specifying SSE architecture + !if "$(CPUNR)" == "pentium4" + CPUARG = /arch:SSE2 + !endif + !endif !ifdef NODEBUG VIM = vim *************** *** 344,349 **** --- 358,369 ---- !else # MAXSPEED OPTFLAG = /Ox !endif + !if "$(MSVCVER)" == "8.0" + # Use link time code generation if not worried about size + !if "$(OPTIMIZE)" != "SPACE" + OPTFLAG = $(OPTFLAG) /GL + !endif + !endif CFLAGS = $(CFLAGS) $(OPTFLAG) -DNDEBUG $(CPUARG) RCFLAGS = $(rcflags) $(rcvars) -DNDEBUG ! ifdef USE_MSVCRT *************** *** 363,369 **** 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 "$(_NMAKE_VER)" == "" LIBC = ! else LIBC = /fixed:no --- 383,389 ---- 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 *************** *** 707,712 **** --- 727,741 ---- $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) $(RUBY_LIB) \ $(TCL_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB) + # Report link time code generation progress if used. + !ifdef NODEBUG + !if "$(MSVCVER)" == "8.0" + !if "$(OPTIMIZE)" != "SPACE" + LINKARGS1 = $(LINKARGS1) /LTCG:STATUS + !endif + !endif + !endif + all: $(VIM).exe vimrun.exe install.exe uninstal.exe xxd/xxd.exe \ GvimExt/gvimext.dll *************** *** 795,801 **** # 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:: --- 824,830 ---- # 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:: *************** *** 804,810 **** # 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:: --- 833,839 ---- # 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::