Hi again,

Attached is a new version of the VC makefile that uses MSVCVER if defined or derives a value from nmake. This should allow the file to be used straight from a source download without any environment variables having to be set.

If anyone has other values for _NMAKE_VER (just run nmake with no args and it will be on the first line where the MS version is reported), can they report them along with which version (and any service packs applied) of VC they are using.

Enjoy.

Mike
--
Computer malfunction, nut loose in operator's chair.
*** Make_mvc.mak.orig   Wed Apr 26 10:30:22 2006
--- Make_mvc.mak        Mon Jan 22 13:59:43 2007
***************
*** 92,97 ****
--- 92,99 ----
  #       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)
+ #
  # You can combine any of these interfaces
  #
  # Example: To build the non-debug, GUI version with Perl interface:
***************
*** 320,326 ****
--- 322,362 ----
  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"
+ !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
+ !endif
+ 
+ # Abort bulding 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 van either set MSVCVER or update this 
makefile
+ !message to handle the new value for _NMAKE_VER.
+ !error Make aborted.
+ !endif
+ 
  # Convert processor ID to MVC-compatible number
+ !if "$(MSVCVER)" != "8.0"
  !if "$(CPUNR)" == "i386"
  CPUARG = /G3
  !elseif "$(CPUNR)" == "i486"
***************
*** 334,339 ****
--- 370,381 ----
  !else
  CPUARG =
  !endif
+ !else
+ # VC8 only allows specifying SSE architecture
+ !if "$(CPUNR)" == "pentium4"
+ CPUARG = /arch:SSE2
+ !endif
+ !endif
  
  !ifdef NODEBUG
  VIM = vim
***************
*** 344,349 ****
--- 386,397 ----
  !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
--- 411,417 ----
  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 ****
--- 755,769 ----
                $(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::
--- 852,858 ----
  
  # 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::
--- 861,867 ----
  
  # 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