Skip to content

Commit

Permalink
patch 8.2.4213: too much code for supporting old MSVC versions
Browse files Browse the repository at this point in the history
Problem:    Too much code for supporting old MSVC versions.
Solution:   Remove MSVC 2003 support. (Ken Takata, closes #9623)
  • Loading branch information
k-takata authored and brammool committed Jan 25, 2022
1 parent 1450112 commit 76687d2
Show file tree
Hide file tree
Showing 7 changed files with 14 additions and 357 deletions.
1 change: 0 additions & 1 deletion Filelist
Expand Up @@ -543,7 +543,6 @@ SRC_DOS = \
tools/rename.bat \
src/bigvim.bat \
src/bigvim64.bat \
src/msvcsetup.bat \
src/msvc2008.bat \
src/msvc2010.bat \
src/msvc2015.bat \
Expand Down
79 changes: 2 additions & 77 deletions src/INSTALLpc.txt
Expand Up @@ -155,83 +155,8 @@ OLDER VERSIONS
The minimal supported version is Windows XP. Building with older compilers
might still work, but these instructions might be outdated.

If you need the executable to run on Windows 98 or ME, use the 2003 one
|msvc-2003-toolkit| or |msvc-2005-express|, and use the source code before
8.0.0029.

Visual C++ Toolkit 2003 *msvc-2003-toolkit*
-----------------------

NOTE: this most likely does not work

You could download the Microsoft Visual C++ Toolkit 2003 from
http://msdn.microsoft.com/visualc/vctoolkit2003/
Unfortunately this URL is no longer valid. Unofficial downloads appear to be
available from links mentioned on these pages (use at your own risk):
http://www.filewatcher.com/m/VCToolkitSetup.exe.32952488.0.0.html
http://feargame.net/wiki/index.php?title=Building_Source_with_the_VC2003_Toolkit

This contains the command-line tools (compiler, linker, CRT headers,
and libraries) for Visual Studio .NET 2003, but not the Visual Studio IDE.
To compile and debug Vim with the VC2003 Toolkit, you will also need
|ms-platform-sdk|, |dotnet-1.1-redist|, |dotnet-1.1-sdk|,
and |windbg-download|.

It's easier to download Visual C++ 2008 Express Edition, |msvc-2008-express|,
which is freely available in perpetuity.

The free Code::Blocks IDE works with the VC2003 Toolkit, as described at
http://wiki.codeblocks.org/index.php?title=Integrating_Microsoft_Visual_Toolkit_2003_with_Code::Blocks_IDE
(This site also takes you through configuring a number of other
free C compilers for Win32.)

To compile Vim using the VC2003 Toolkit and Make_mvc.mak, you must first
execute the following commands in a cmd.exe window (the msvcsetup.bat batch
file can be used):

set PATH=%SystemRoot%\Microsoft.NET\Framework\v1.1.4322;%PATH%
call "%VCToolkitInstallDir%vcvars32.bat"
set MSVCVer=7.1
call "%ProgramFiles%\Microsoft Platform SDK\SetEnv.Cmd"
set LIB=%ProgramFiles%\Microsoft Visual Studio .NET 2003\Vc7\lib;%LIB%

Now you can build Vim with Make_mvc.mak.


Getting the Windows Platform SDK *ms-platform-sdk*

You will also need a copy of the Windows Platform SDK. Specifically, you need
the Windows Core SDK subset of the Platform SDK, which contains the Windows
headers and libraries. You need to search for it, Microsoft keeps changing
the URL.


Getting the .NET Framework 1.1 Runtime *dotnet-1.1-redist*

You need the .NET Framework 1.1 Redistributable Package from
http://www.microsoft.com/downloads/details.aspx?familyid=262d25e3-f589-4842-8157-034d1e7cf3a3
or from Windows Update:
http://windowsupdate.microsoft.com/
This is needed to install |dotnet-1.1-sdk|. It also contains cvtres.exe,
which is needed to link Vim.


Getting the .NET Framework 1.1 SDK *dotnet-1.1-sdk*

You need the .NET Framework 1.1 SDK from
http://www.microsoft.com/downloads/details.aspx?familyid=9b3a2ca6-3647-4070-9f41-a333c6b9181d
This contains some additional libraries needed to compile Vim,
such as msvcrt.lib. You must install |dotnet-1.1-redist| before
installing the .NET 1.1 SDK.


Getting the WinDbg debugger *windbg-download*

The Debugging Tools for Windows can be downloaded from
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
This includes the WinDbg debugger, which you will want if you ever need
to debug Vim itself. An earlier version of the Debugging Tools
is also available through the Platform SDK, |ms-platform-sdk|.
If you need the executable to run on Windows 98 or ME, use the 2005 one
|msvc-2005-express|, and use the source code before 8.0.0029.


Visual C++ 2005 Express Edition *msvc-2005-express*
Expand Down
16 changes: 4 additions & 12 deletions src/Make_mvc.mak
Expand Up @@ -305,10 +305,6 @@ MSVCRT_NAME = msvcr$(MSVCRT_VER)
MSVCRT_NAME = vcruntime$(MSVCRT_VER)
!endif

!if $(MSVC_MAJOR) == 6
CPU = ix86
!endif

### Set the default $(WINVER) to make it work with VC++7.0 (VS.NET)
!ifndef WINVER
WINVER = 0x0501
Expand Down Expand Up @@ -707,8 +703,8 @@ RCFLAGS = $(rcflags) $(rcvars) -DNDEBUG
CFLAGS = $(CFLAGS) /MD
LIBC = msvcrt.lib
! else
LIBC = libcmt.lib
CFLAGS = $(CFLAGS) /Zl /MT
LIBC = libcmt.lib
! endif

!else # DEBUG
Expand All @@ -719,18 +715,14 @@ DEBUGINFO = /ZI
! endif
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
# The /fixed:no is needed for Quantify.
LIBC = /fixed:no
! endif
! ifdef USE_MSVCRT
CFLAGS = $(CFLAGS) /MDd
LIBC = $(LIBC) msvcrtd.lib
! else
LIBC = $(LIBC) libcmtd.lib
CFLAGS = $(CFLAGS) /Zl /MTd
LIBC = $(LIBC) libcmtd.lib
! endif

!endif # DEBUG
Expand Down Expand Up @@ -799,7 +791,7 @@ OBJ = \
$(OUTDIR)\hashtab.obj \
$(OUTDIR)\help.obj \
$(OUTDIR)\highlight.obj \
$(OBJDIR)\if_cscope.obj \
$(OUTDIR)\if_cscope.obj \
$(OUTDIR)\indent.obj \
$(OUTDIR)\insexpand.obj \
$(OUTDIR)\json.obj \
Expand Down

0 comments on commit 76687d2

Please sign in to comment.