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::

Reply via email to