Remove support for MSVC < MSVC2005; Update Developer's Guide.

svn path=/trunk/; revision=40395
This commit is contained in:
Bill Meier 2012-01-06 15:45:46 +00:00
parent b7356ab3cd
commit 0600db677f
3 changed files with 19 additions and 314 deletions

View File

@ -493,10 +493,8 @@ clean: clean-local
# It does not remove generated files that are part of the distribution.
distclean-local: clean-local
!IFDEF ADNS_DIR
!IF "$(MSVC_VARIANT)" != "MSVC6"
rm -f $(ADNS_DLL) $(ADNS_LIBS)
!ENDIF
!ENDIF
!IFDEF ZLIB_DIR
rm -f $(ZLIB_DLL) $(ZLIB_DIR)\zlib1.dll.manifest \
$(ZLIB_DIR)\include\zlib.h $(ZLIB_DIR)\include\zconf.h \
@ -587,21 +585,15 @@ image::
cd ..
!IFDEF ADNS_DIR
# Non-MSVC6 variants have to avoid indirectly using msvcrt.dll,
# MSVC variants supported by Wireshark have to avoid indirectly using msvcrt.dll,
# therefore compile the adns dll from source ADNS_DIR package.
# To avoid path problems, copy the adns sources to a temp dir,
# compile and copy the resulting files back to (source) ADNS_DIR
#
# Unfortunately:
# - we need to "patch" adns_dll.rep and adns_dll.rc (at least for MSVC2005EE)
# - on MSVC6 we can't easily rebuild, because iphlpapi.h is needed
#
$(ADNS_DLL):
!IF "$(MSVC_VARIANT)" == "MSVC6"
if not exist $(WIRESHARK_LIB_DIR)\$(MSVC_VARIANT)\adns mkdir $(WIRESHARK_LIB_DIR)\$(MSVC_VARIANT)\adns
copy $(ADNS_DIR)\adns_win32\lib\adns_dll.dll $(ADNS_DLL)
copy $(ADNS_DIR)\adns_win32\lib\adns_dll.lib $(ADNS_LIBS)
!ELSE
xcopy $(ADNS_DIR) adns.tmp /D /I /E /Y
copy adns_dll.dep adns.tmp\adns_win32\adns_dll
copy adns_dll.rc adns.tmp\adns_win32\adns_dll
@ -618,10 +610,9 @@ $(ADNS_DLL):
cd ..\..\..
rm -r -f adns.tmp
!ENDIF
!ENDIF
!IFDEF ZLIB_DIR
# Non-MSVC6 variants have to avoid indirectly using msvcrt.dll,
# MSVC variants supported by Wireshark have to avoid indirectly using msvcrt.dll,
# therefore compile the zlib dll from source ZLIB_DIR package.
# To avoid path problems, copy the zlib sources to a temp dir,
# compile and copy the resulting files back to (source) ZLIB_DIR

View File

@ -78,30 +78,7 @@ PROCESSOR_ARCHITECTURE=amd64
##### Microsoft Visual C / Studio Variant #####
# For the different Studios, see: http://en.wikipedia.org/wiki/Microsoft_Visual_Studio
# only one of the following MSVC_VARIANT settings should be used
# BTW: The "Microsoft Visual C++ Toolkit 2003" DOESN'T WORK for WS!
# "Microsoft Visual Studio 6.0"
# Visual C++ 6.0, _MSC_VER 1200, msvcrt.dll (version 6)
#MSVC_VARIANT=MSVC6
# "Microsoft Visual Studio .NET (2002)"
# Visual C++ 7.0, _MSC_VER 1300, msvcr70.dll
#MSVC_VARIANT=MSVC2002
# "Microsoft .Net Framework SDK Version 1.0"
# needs additional Platform SDK installation
# Visual C++ 7.0, _MSC_VER 1300, msvcr70.dll
#MSVC_VARIANT=DOTNET10
# "Microsoft Visual Studio .NET 2003"
# Visual C++ 7.1, _MSC_VER 1310, msvcr71.dll
#MSVC_VARIANT=MSVC2003
# "Microsoft .Net Framework SDK Version 1.1"
# needs additional Platform SDK installation
# Visual C++ 7.1, _MSC_VER 1310, msvcr71.dll
#MSVC_VARIANT=DOTNET11
# Only one of the following MSVC_VARIANT settings should be used
# "Microsoft Visual Studio 2005"
# Visual C++ 8.0, _MSC_VER 1400, msvcr80.dll
@ -406,12 +383,7 @@ SMI_PKG=svn-40773
#
# Used to map IP addresses to MaxMind GeoIP database entries
#
# GeoIP requires IPv6 definitions that don't ship with Visual C++ 6.0.
# However, the Microsoft Platform SDK for Windows Server 2003 R2 provides
# these definitions. The SDK's SetEnv.bat script defines INETSDK.
!IF "$(MSVC_VARIANT)" != "MSVC6" || DEFINED(INETSDK)
GEOIP_DIR=$(WIRESHARK_LIB_DIR)\GeoIP-1.4.6-win32ws\libGeoIP
!ENDIF
!else
##### Win64 Libraries #####
@ -684,14 +656,7 @@ MAKENSIS_UNICODE="$(PROGRAM_FILES)\NSIS\Unicode\makensis.exe"
#
# Recommended: Use the compressed html help format .chm as the Wireshark integrated help.
#
# The required htmlhelp.h and htmlhelp.lib should be included in MSVC_VARIANT > MSVC6.
#
# For MSVC_VARIANT == MSVC6 you will have to download and install the html help workshop from:
#
# http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html
# /hwMicrosoftHTMLHelpDownloads.asp
#
# Then point HHC_DIR to the html help dir (where hhc.exe resides).
# The required htmlhelp.h and htmlhelp.lib should be included in versions of MSVC supported by Wireshark
#
# If you don't want the online help (or don't have the tools),
# comment this line out, so that HHC_DIR isn't defined.
@ -720,13 +685,7 @@ UPX=$(WIRESHARK_LIB_DIR)\upx303w\upx.exe
!ENDIF
# "convert" the MSVC variant into the required MSC compiler version
!IF "$(MSVC_VARIANT)" == "MSVC6"
MSC_VER_REQUIRED=1200
!ELSEIF "$(MSVC_VARIANT)" == "MSVC2002" || "$(MSVC_VARIANT)" == "DOTNET10"
MSC_VER_REQUIRED=1300
!ELSEIF "$(MSVC_VARIANT)" == "MSVC2003" || "$(MSVC_VARIANT)" == "DOTNET11"
MSC_VER_REQUIRED=1310
!ELSEIF "$(MSVC_VARIANT)" == "MSVC2005" || "$(MSVC_VARIANT)" == "MSVC2005EE" || "$(MSVC_VARIANT)" == "DOTNET20"
!IF "$(MSVC_VARIANT)" == "MSVC2005" || "$(MSVC_VARIANT)" == "MSVC2005EE" || "$(MSVC_VARIANT)" == "DOTNET20"
MSC_VER_REQUIRED=1400
!ELSEIF "$(MSVC_VARIANT)" == "MSVC2008" || "$(MSVC_VARIANT)" == "MSVC2008EE"
MSC_VER_REQUIRED=1500
@ -759,14 +718,7 @@ MANIFEST_INFO_REQUIRED=1
#
##Note: LOCAL_CFLAGS are flags used for *all* compilations
## STANDARD_CFLAGS (see below) are flags used just for *Wireshark* compilations
!IF "$(MSVC_VARIANT)" == "MSVC6" || \
"$(MSVC_VARIANT)" == "MSVC2002" || \
"$(MSVC_VARIANT)" == "DOTNET10" || \
"$(MSVC_VARIANT)" == "MSVC2003" || \
"$(MSVC_VARIANT)" == "DOTNET11"
LOCAL_CFLAGS=/Zi /W3 /MD /DWIN32_LEAN_AND_MEAN /DMSC_VER_REQUIRED=$(MSC_VER_REQUIRED)
!ELSEIF "$(MSVC_VARIANT)" == "MSVC2005" || \
!IF "$(MSVC_VARIANT)" == "MSVC2005" || \
"$(MSVC_VARIANT)" == "MSVC2005EE" || \
"$(MSVC_VARIANT)" == "DOTNET20" || \
"$(MSVC_VARIANT)" == "MSVC2008" || \
@ -887,28 +839,11 @@ INSTALL_DIR=wireshark-gtk2
# packages, the following will use the default paths depending
# on the package version.
#
!IF "$(MSVC_VARIANT)" == "MSVC6"
# msvcrt.dll will already be available on target machines - nothing additional to install
!ELSEIF "$(WIRESHARK_TARGET_PLATFORM)" == "win64"
!IF "$(WIRESHARK_TARGET_PLATFORM)" == "win64"
# We're not creating portable packages and therefore don't have to worry about
# "deploying using xcopy"
VCREDIST_EXE=$(WIRESHARK_LIB_DIR)\vcredist_$(TARGET_MACHINE).exe
!ELSEIF "$(MSVC_VARIANT)" == "MSVC2002"
# you probably need to tweak this directory if you don't use the professional edition!
MSVCR_DLL=$(PROGRAM_FILES)\Microsoft Visual Studio .NET\Visual Studio .NET Professional - English\msvcr70.dll
!ELSEIF "$(MSVC_VARIANT)" == "DOTNET10"
# no redistributable available for this package!
!ELSEIF "$(MSVC_VARIANT)" == "MSVC2003"
# you probably need to tweak this directory if you don't use the professional edition!
MSVCR_DLL=$(PROGRAM_FILES)\Microsoft Visual Studio .NET 2003\Visual Studio .NET Professional 2003 - English\msvcr71.dll
!ELSEIF "$(MSVC_VARIANT)" == "DOTNET11"
# no redistributable available for this package!
!ELSEIF "$(MSVC_VARIANT)" == "MSVC2005"
MSVCR_DLL=$(PROGRAM_FILES)\Microsoft Visual Studio 8\VC\redist\$(PROCESSOR_ARCHITECTURE)\Microsoft.VC80.CRT\*.*
@ -1249,13 +1184,8 @@ PORTAUDIO_CONFIG=
!ENDIF
!IFDEF HHC_DIR
!IF "$(MSVC_VARIANT)" == "MSVC6"
HHC_CFLAGS=/I"$(HHC_DIR)\include" -DHHC_DIR
HHC_LIBS="$(HHC_DIR)\lib\htmlhelp.lib"
!ELSE
HHC_CFLAGS=-DHHC_DIR
HHC_LIBS=htmlhelp.lib
!ENDIF
!ELSE
HHC_CFLAGS=
HHC_LIBS=
@ -1296,15 +1226,6 @@ LIBWIRESHARK_CONFIG=
# Construct the path
PATH=$(PATH);$(CYGWIN_PATH);$(GTK_DIR)\bin;$(GETTEXT_DIR)\bin;$(ZLIB_PATH);$(ADNS_PATH)
# We can't use a lot of IPv6 code with plain Visual C++ 6.0
!IF "$(MSVC_VARIANT)" == "MSVC6" && !DEFINED(MSSDK)
INET6_CONFIG=
!ELSE
INET6_CONFIG=^#define INET6 1
!ENDIF
!IF "$(MSVC_VARIANT)" == "MSVC6" && !DEFINED(MSSDK)
NTDDNDIS_CONFIG=
!ELSE
NTDDNDIS_CONFIG=^#define HAVE_NTDDNDIS_H 1
!ENDIF

View File

@ -259,8 +259,7 @@ PARTICULAR PURPOSE.]]>
</para>
<para>
However, you might already have a different Microsoft C++ compiler
installed. With the considerations listed below, it should be possible
to use it as well:
installed. It should be possible to use any of the following with the considerations listed:
</para>
<informaltable frame="all">
@ -298,81 +297,6 @@ PARTICULAR PURPOSE.]]>
<para>Remarks</para>
</entry>
</row>
<row>
<entry>
<para>Visual Studio 6.0</para>
</entry>
<entry>
<para>Yes</para>
</entry>
<entry>
<para>Commercial
<superscript>1</superscript></para>
</entry>
<entry>
<para>
<ulink url="http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm">
Free Download</ulink> (342MB)</para>
</entry>
<entry>
<para>MSVC6</para>
</entry>
<entry>
<para>Microsoft Visual
Studio\VC98\Bin\vcvars32.bat</para>
</entry>
<entry>
<para>-</para>
</entry>
</row>
<row>
<entry>
<para>Visual Studio .NET (2002)</para>
</entry>
<entry>
<para>Yes</para>
</entry>
<entry>
<para>Commercial
<superscript>1</superscript></para>
</entry>
<entry align="center" morerows="2" valign="middle">
<para>No
<superscript>2</superscript></para>
</entry>
<entry>
<para>MSVC2002</para>
</entry>
<entry>
<para>Microsoft Visual Studio
.NET\Vc7\bin\vcvars32.bat</para>
</entry>
<entry>
<para>-</para>
</entry>
</row>
<row>
<entry>
<para>Visual Studio .NET 2003</para>
</entry>
<entry>
<para>Yes</para>
</entry>
<entry>
<para>Commercial
<superscript>1</superscript></para>
</entry>
<entry>
<para>MSVC2003</para>
</entry>
<entry>
<para>Microsoft Visual Studio .NET
2003\Vc7\bin\vcvars32.bat</para>
</entry>
<entry>
<para>-</para>
</entry>
</row>
<row>
<entry>
<para>Visual Studio 2005</para>
@ -384,6 +308,10 @@ PARTICULAR PURPOSE.]]>
<para>Commercial
<superscript>1</superscript></para>
</entry>
<entry>
<para>No
<superscript>2</superscript></para>
</entry>
<entry>
<para>MSVC2005</para>
</entry>
@ -530,60 +458,10 @@ PARTICULAR PURPOSE.]]>
<superscript>3</superscript></para>
</entry>
</row>
<row>
<entry>
<para>.NET Framework SDK version 1.0a</para>
</entry>
<entry>
<para>No</para>
</entry>
<entry>
<para>
<ulink url="#">Free Download</ulink> (104MB)</para>
</entry>
<entry align="center" morerows="2" valign="middle">
<para>
<ulink url="#">Free Download</ulink> (420MB)</para>
</entry>
<entry>
<para>DOTNET10</para>
</entry>
<entry>
<para>
Microsoft.NET\FrameworkSDK\Bin\corvars.bat</para>
</entry>
<entry>
<para>can't build setup
<superscript>4</superscript></para>
</entry>
</row>
<row>
<entry>
<para>.NET Framework SDK Version 1.1
<superscript>5</superscript></para>
</entry>
<entry>
<para>No</para>
</entry>
<entry>
<para>
<ulink url="#">Free Download</ulink> (106MB)</para>
</entry>
<entry>
<para>DOTNET11</para>
</entry>
<entry>
<para>Microsoft.NET\SDK\v1.1\Bin\sdkvars.bat</para>
</entry>
<entry>
<para>can't build setup
<superscript>4</superscript></para>
</entry>
</row>
<row>
<entry>
<para>.NET Framework 2.0 SDK
<superscript>5</superscript></para>
<superscript>4</superscript></para>
</entry>
<entry>
<para>No</para>
@ -592,6 +470,10 @@ PARTICULAR PURPOSE.]]>
<para>
<ulink url="#">Free Download</ulink> (363MB)</para>
</entry>
<entry>
<para>
<ulink url="#">Free Download</ulink> (420MB)</para>
</entry>
<entry>
<para>DOTNET20</para>
</entry>
@ -651,21 +533,11 @@ PARTICULAR PURPOSE.]]>
The version of <filename>vcredist_x86.exe</filename> MUST match
the version for your compiler.</para>
<para>
<superscript>4</superscript>
<filename>Wireshark-win32-&WiresharkCurrentVersion;.x.exe</filename>
cannot be created with this package, as <filename>msvcr*.dll</filename>
is not available or not redistributable!</para>
<para>
<superscript>5</superscript>MSDN remarks that the
<superscript>4</superscript>MSDN remarks that the
corresponding .NET runtime is required. It's currently
unclear if the runtime needs to be installed for the C
compiler to work - or is this only needed to compile / run
.NET programs?!?</para>
<note>
<title>Note!</title>
<para>The "Visual C++ Toolkit 2003" should NOT be used to
compile Wireshark!</para>
</note>
</section>
<section>
<title>Legal issues with MSVC &gt; V6?</title>
@ -731,58 +603,6 @@ PARTICULAR PURPOSE.]]>
<para>CRT DLL</para>
</entry>
</row>
<row>
<entry>
<para>Visual Studio 6.0</para>
</entry>
<entry align="center">
<para>6.0</para>
</entry>
<entry align="center">
<para>1200</para>
</entry>
<entry align="center">
<para>msvcrt.dll (Version 6)</para>
</entry>
</row>
<row>
<entry>
<para>Visual Studio .NET (2002)</para>
</entry>
<entry align="center" morerows="1" valign="middle">
<para>7.0</para>
</entry>
<entry align="center" morerows="1" valign="middle">
<para>1300</para>
</entry>
<entry align="center" morerows="1" valign="middle">
<para>msvcr70.dll</para>
</entry>
</row>
<row>
<entry>
<para>.NET Framework SDK version 1.0a</para>
</entry>
</row>
<row>
<entry>
<para>Visual Studio .NET 2003</para>
</entry>
<entry align="center" morerows="1" valign="middle">
<para>7.10</para>
</entry>
<entry align="center" morerows="1" valign="middle">
<para>1310</para>
</entry>
<entry align="center" morerows="1" valign="middle">
<para>msvcr71.dll</para>
</entry>
</row>
<row>
<entry>
<para>.NET Framework SDK Version 1.1</para>
</entry>
</row>
<row>
<entry>
<para>Visual Studio 2005</para>
@ -919,9 +739,7 @@ Stop.]]>
like: msvcr&lt;version&gt;.dll, an abbreviation for
"MicroSoft Visual C Runtime". For Wireshark to work, this DLL
must be available on the users machine.</para>
<para>MSVC6 was using msvcrt.dll, which is already available
on all recent windows systems - no need to redistribute
anything. Starting with MSVC7, it is necessary to ship the C
<para>Starting with MSVC7, it is necessary to ship the C
runtime DLL (msvcr&lt;version&gt;.dll) together with the
application installer somehow, as that DLL is possibly not
available on the target system.</para>
@ -957,31 +775,6 @@ Stop.]]>
</listitem>
</itemizedlist>
</para>
<section>
<title>msvcrt.dll - Version 6.0</title>
<para>Redistributables weren't an issue with MSVC 6, as any
realistic installer target system (&gt;= Win95) already
contains the corresponding msvcrt.dll.</para>
</section>
<section>
<title>msvcr70.dll - Version 7.0 (2002)</title>
<para>"Visual Studio .NET (2002)" - comes with this dll and
it's mentioned in redist.txt.</para>
<para>".NET Framework SDK 1.0" doesn't even come with this
dll. XXX - Is this file available with the .NET 1.0
runtime (dotnetfx.exe) - so it could be shipped instead?!?
Do we want it that way?</para>
</section>
<section>
<title>msvcr71.dll - Version 7.1 (2003)</title>
<para>"Visual Studio .NET 2003" comes with this dll
and it's mentioned in redist.txt.</para>
<para>".NET Framework SDK 1.1" comes with this dll, but
it's NOT mentioned in redist.txt. XXX - Is this file
available with the .NET 1.1 runtime
(dotnetfx.exe) - so it could be shipped instead ?!? Do we
want it that way?</para>
</section>
<section>
<title>msvcr80.dll / vcredist_x86.exe - Version 8.0
(2005)</title>