forked from osmocom/wireshark
469f70a4e8
Update the link to point to MSVC 2008EE now that 2010 is out. svn path=/trunk/; revision=32478
1585 lines
64 KiB
XML
1585 lines
64 KiB
XML
<!-- WSDG Chapter Tools -->
|
|
<!-- $Id$ -->
|
|
<chapter id="ChapterTools">
|
|
<title>Tool Reference</title>
|
|
<section id="ChToolsIntro">
|
|
<title>Introduction</title>
|
|
<para>This chapter will provide you with information about the
|
|
various tools needed for Wireshark development.</para>
|
|
<para>None of the tools mentioned in this chapter are needed to
|
|
run Wireshark; they are only needed to build it.</para>
|
|
<para>Most of these tools have their roots on UNIX like
|
|
platforms, but Win32 ports are also available. Therefore the
|
|
tools are available in different "flavours":
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>UNIX (or Win32 Cygwin): the tools should be commonly
|
|
available on the supported UNIX platforms, and for Win32
|
|
platforms by using the Cygwin UNIX emulation</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Win32 native: some tools are available as native
|
|
Win32 tools, no special emulation is required</para>
|
|
</listitem>
|
|
</itemizedlist></para>
|
|
<warning>
|
|
<title>Warning!</title>
|
|
<para>
|
|
<command>Unless you know exactly what you are doing, you
|
|
should strictly follow the recommendations given in</command>
|
|
<xref linkend="ChapterSetup" />!</para>
|
|
</warning>
|
|
<para>The following sections give a very brief description of
|
|
what a particular tool is doing, how it is used in the
|
|
Wireshark project and how it can be installed and
|
|
tested.</para>
|
|
<para>Don't expect a lot of documentation regarding these tools
|
|
in this document. If you need further documentation of a
|
|
specific tool, you should find lot's of useful information on
|
|
the web, as these tools are commonly used. You can also try to
|
|
get help for the UNIX based tools with
|
|
<userinput>toolname --help</userinput> or read the manpage
|
|
<userinput>man toolname</userinput>.</para>
|
|
<para>You will find explanations of the tool usage for some of
|
|
the specific development tasks in
|
|
<xref linkend="ChapterSources" />.</para>
|
|
</section>
|
|
<section id="ChToolsCygwin">
|
|
<title>Win32: Cygwin</title>
|
|
<para>Cygwin provides a lot of UNIX based tools on the Win32
|
|
platform. It uses a UNIX emulation layer which might be a bit
|
|
slower compared to the native Win32 tools, but at an acceptable
|
|
level. The installation and update is pretty easy and done
|
|
through a single (web based) setup.exe.</para>
|
|
<para>The native Win32 tools will typically be a bit faster,
|
|
but more complicated to install, as you would have to download
|
|
the tools from different webpages, and install them in
|
|
different ways, tweaking the PATH and alike.</para>
|
|
<note>
|
|
<title>Note!</title>
|
|
<para>As there's no Win32 native bash version available, at
|
|
least a basic installation of cygwin is required in any
|
|
case.</para>
|
|
</note>
|
|
<para>Although Cygwin consists of several separate packages,
|
|
the installation and update is done through a single setup.exe,
|
|
which acts similar to other web based installers. All tools
|
|
will be installed into one base folder, the default is
|
|
<filename>C:\cygwin</filename>.</para>
|
|
<para>You will find this network based setup.exe at:
|
|
<ulink url="http://www.cygwin.com/" />. Click on one of the
|
|
"Install Cygwin now" appearances to download the
|
|
<filename>setup.exe</filename>. After the download completed,
|
|
start this
|
|
<filename>setup.exe</filename> on your machine.</para>
|
|
<para>The setup will ask you for some settings, the defaults
|
|
should usually work well for a first start. At the "Select
|
|
Packages" page, you'll need to select some additional packages,
|
|
which are not installed by default. Navigate to the required
|
|
Category/Package row and click on the "Skip" item in the "New"
|
|
column so it shows a version number for the required
|
|
package</para>
|
|
<para>After clicking the Next button several times, the setup
|
|
will then download and install the selected packages (this may
|
|
take a while, depending on the package size).</para>
|
|
<para>Under: "Start -> Programs -> Cygwin -> Cygwin
|
|
Bash Shell" you should now be able to start a new Cygwin bash
|
|
shell, which is similar to the command line
|
|
(command.com/cmd.exe) in Win32, but much more powerful.</para>
|
|
<section id="ChToolsCygwinPackages">
|
|
<title>Add/Update/Remove Cygwin Packages</title>
|
|
<para>If you want to add additional, update installed or
|
|
remove packages later, you have to start the setup.exe again.
|
|
At the "Select Packages" page, the entry in the "New" column
|
|
will control what is done (or not) with the package. If a new
|
|
version of a package is available, the new version number
|
|
will be displayed, so it will be automatically updated. You
|
|
can change the current setting by simply clicking at it, it
|
|
will change between:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>a specific version number - this different package
|
|
version will be installed</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Skip - not installed, no changes</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Keep - already installed, no changes</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Uninstall - uninstall this package</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Reinstall - reinstall this package</para>
|
|
</listitem>
|
|
</itemizedlist></para>
|
|
</section>
|
|
</section>
|
|
<section id="ChToolsGNUChain">
|
|
<title>GNU compiler toolchain (UNIX or Win32 Cygwin)</title>
|
|
<section id="ChToolsGCC">
|
|
<title>gcc (GNU compiler collection)</title>
|
|
<warning>
|
|
<title>Win32: Warn!</title>
|
|
<para>Using Cygwin gcc to compile Wireshark is "EXPERT
|
|
ONLY" and therefore NOT recommended. If you really want to
|
|
try it anyway, see:
|
|
<ulink url="http://wiki.wireshark.org/Development/CygwinGCC" /> for
|
|
some details!</para>
|
|
</warning>
|
|
<para>The GCC C compiler is available for most of the
|
|
UNIX-like platforms and as the Devel/gcc package from the
|
|
<link linkend="ChToolsCygwin">Cygwin setup</link>.</para>
|
|
<para>If GCC isn't already installed or available
|
|
as a package for your platform, you can get it at:
|
|
<ulink url="http://gcc.gnu.org/" />.</para>
|
|
<para>After correct installation, typing at the
|
|
bash command line prompt:</para>
|
|
<para>
|
|
<prompt>$</prompt>
|
|
<userinput>gcc --version</userinput>
|
|
</para>
|
|
<para>should result in something like:
|
|
<programlisting>
|
|
<![CDATA[gcc (GCC) 3.4.4 (cygwin special) (gdc 0.12, using dmd 0.125)
|
|
Copyright (C) 2004 Free Software Foundation, Inc.
|
|
This is free software; see the source for copying conditions. There is NO
|
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.]]>
|
|
</programlisting>However, the version string may vary.</para>
|
|
</section>
|
|
<section id="ChToolsGDB">
|
|
<title>gdb (GNU project debugger)</title>
|
|
<para>GDB is the debugger for the GCC compiler. It is
|
|
available for many (if not all) UNIX-like platforms and as
|
|
the Devel/gdb package from the
|
|
<link linkend="ChToolsCygwin">Cygwin setup</link></para>
|
|
<para>If you don't like debugging using the command line,
|
|
there are some GUI frontends for it available, most notably
|
|
GNU DDD.</para>
|
|
<para>If gdb isn't already installed or available
|
|
as a package for your platform, you can get it at:
|
|
<ulink url="http://www.gnu.org/software/gdb/gdb.html" />.</para>
|
|
<para>After correct installation:</para>
|
|
<para>
|
|
<prompt>$</prompt>
|
|
<userinput>gdb --version</userinput>
|
|
</para>
|
|
<para>should result in something like:
|
|
<programlisting>
|
|
<![CDATA[GNU gdb 6.5.50.20060706-cvs (cygwin-special)
|
|
Copyright 2003 Free Software Foundation, Inc.
|
|
GDB is free software, covered by the GNU General Public License, and you are
|
|
welcome to change it and/or distribute copies of it under certain conditions.
|
|
Type "show copying" to see the conditions.
|
|
There is absolutely no warranty for GDB. Type "show warranty" for details.
|
|
This GDB was configured as "i686-pc-cygwin".]]>
|
|
</programlisting>However, the version string may vary.</para>
|
|
</section>
|
|
<section id="ChToolsDDD">
|
|
<title>ddd (GNU Data Display Debugger)</title>
|
|
<para>The GNU Data Display Debugger is a good GUI frontend
|
|
for GDB (and a lot of other command line debuggers), so you
|
|
have to install GDB first. It is available for many UNIX-like
|
|
platforms and as the ddd package from the
|
|
<link linkend="ChToolsCygwin">Cygwin setup</link>.</para>
|
|
<para>If GNU DDD isn't already installed or
|
|
available as a package for your platform, you can get it at:
|
|
<ulink url="http://www.gnu.org/software/ddd/" />.</para>
|
|
</section>
|
|
<section id="ChToolsGNUmake">
|
|
<title>make (GNU Make)</title>
|
|
<note>
|
|
<title>Win32 Note!</title>
|
|
<para>Although some effort is made to use make from the
|
|
Cygwin environment, the mainline is still using Microsoft
|
|
Visual Studio's nmake.</para>
|
|
</note>
|
|
<para>GNU Make is available for most of the UNIX-like
|
|
platforms and also as the Devel/make package from the
|
|
<link linkend="ChToolsCygwin">Cygwin setup</link>.</para>
|
|
<para>If GNU Make isn't already installed or
|
|
available as a package for your platform, you can get it at:
|
|
<ulink url="http://www.gnu.org/software/make/" />.</para>
|
|
<para>After correct installation:</para>
|
|
<para>
|
|
<prompt>$</prompt>
|
|
<userinput>make --version</userinput>
|
|
</para>
|
|
<para>should result in something like:
|
|
<programlisting>
|
|
<![CDATA[GNU Make 3.81
|
|
Copyright (C) 2006 Free Software Foundation, Inc.
|
|
This is free software; see the source for copying conditions.
|
|
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
|
|
PARTICULAR PURPOSE.]]>
|
|
</programlisting>However, the version string may vary.</para>
|
|
</section>
|
|
</section>
|
|
<section id="ChToolsMSChain">
|
|
<title>Microsoft compiler toolchain (Win32 native)</title>
|
|
<para>To compile Wireshark on Windows using the Microsoft C/C++
|
|
compiler, you'll need:</para>
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>C compiler (<filename>cl.exe</filename>)</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Linker (<filename>link.exe</filename>)</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Make (<filename>nmake.exe</filename>)</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>C runtime headers and libraries (e.g. <filename>stdio.h,
|
|
msvcrt.lib</filename>)</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Windows platform headers and libraries (e.g.
|
|
<filename>windows.h, WSock32.lib</filename>)</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>HTML help headers and libraries (<filename>htmlhelp.h,
|
|
htmlhelp.lib</filename>)</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
<section>
|
|
<title>Toolchain Package Alternatives</title>
|
|
<para>The official Wireshark 1.0.x releases are compiled using Microsoft
|
|
Visual C++ 6.0. The subsequent releases are compiled using
|
|
Microsoft Visual C++ 2008 SP1. Using the release compilers is recommended
|
|
for Wireshark development work. Visual C++ 2008 Express Edition SP1 may
|
|
be used for the development branch, but it cannot create PortableApps
|
|
or U3 packages.</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:</para>
|
|
|
|
<informaltable frame="all">
|
|
<tgroup cols="7">
|
|
<colspec colname="c1" colwidth="14*" />
|
|
<colspec colname="c2" colwidth="14*" />
|
|
<colspec colname="c3" colwidth="14*" />
|
|
<colspec colname="c4" colwidth="14*" />
|
|
<colspec colname="c5" colwidth="14*" />
|
|
<colspec colname="c6" colwidth="14*" />
|
|
<colspec colname="c7" colwidth="14*" />
|
|
<tbody>
|
|
<row>
|
|
<entry>
|
|
<para>Compiler Package</para>
|
|
</entry>
|
|
<entry>
|
|
<para>IDE / Debugger?</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Publicly available?</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Platform SDK required?</para>
|
|
</entry>
|
|
<entry>
|
|
<para>config.nmake:</para>
|
|
<para>MSVC_VARIANT</para>
|
|
</entry>
|
|
<entry>
|
|
<para>set compiler PATH and alike settings
|
|
with:</para>
|
|
</entry>
|
|
<entry>
|
|
<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>
|
|
</entry>
|
|
<entry>
|
|
<para>Yes</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Commercial</para>
|
|
</entry>
|
|
<entry>
|
|
<para>MSVC2005</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Microsoft Visual Studio
|
|
8\VC\bin\vcvars32.bat</para>
|
|
</entry>
|
|
<entry>
|
|
<para>-</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Visual C++ 2005 Express Edition</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Yes</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<ulink url="http://www.microsoft.com/express/2005/download/default.aspx">Free Download</ulink>
|
|
(474MB)</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<ulink url="#">Free Download</ulink> (420MB)</para>
|
|
</entry>
|
|
<entry>
|
|
<para>MSVC2005EE</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Microsoft Visual Studio
|
|
8\VC\bin\vcvars32.bat</para>
|
|
</entry>
|
|
<entry>
|
|
<para>vcredist_x86.exe
|
|
<superscript>3</superscript></para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Visual Studio 2008</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Yes</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Commercial</para>
|
|
</entry>
|
|
<entry>
|
|
<para>No
|
|
<superscript>2</superscript></para>
|
|
</entry>
|
|
<entry>
|
|
<para>-</para>
|
|
<para>MSVC2008</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Microsoft Visual Studio
|
|
9.0\VC\bin\vcvars32.bat</para>
|
|
</entry>
|
|
<entry>
|
|
<para>-</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Visual C++ 2008 Express Edition SP1</para>
|
|
<para>(recommended)</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Yes</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<ulink url="http://www.microsoft.com/express/Downloads/#Visual_Studio_2008_Express_Downloads">
|
|
Free Download</ulink></para>
|
|
</entry>
|
|
<entry>
|
|
<para>No
|
|
<superscript>2</superscript></para>
|
|
</entry>
|
|
<entry>
|
|
<para>MSVC2008EE</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Microsoft Visual Studio
|
|
9.0\VC\bin\vcvars32.bat</para>
|
|
</entry>
|
|
<entry>
|
|
<para>vcredist_x86.exe
|
|
<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>
|
|
</entry>
|
|
<entry>
|
|
<para>No</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<ulink url="#">Free Download</ulink> (363MB)</para>
|
|
</entry>
|
|
<entry>
|
|
<para>DOTNET20</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Microsoft.NET\SDK\v2.0\Bin\sdkvars.bat</para>
|
|
</entry>
|
|
<entry>
|
|
<para>vcredist_x86.exe
|
|
<superscript>3</superscript></para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Windows SDK for Windows Vista and</para>
|
|
<para>.NET Framework 3.0 Runtime Components</para>
|
|
</entry>
|
|
<entry>
|
|
<para>No</para>
|
|
</entry>
|
|
<entry>
|
|
<para>
|
|
<ulink url="#">Free Download</ulink> (1188MB)</para>
|
|
</entry>
|
|
<entry>
|
|
<para>No
|
|
<superscript>2</superscript></para>
|
|
</entry>
|
|
<entry>
|
|
<para>-</para>
|
|
<para>(not yet implemented!)</para>
|
|
</entry>
|
|
<entry>
|
|
<para>Microsoft
|
|
SDKs\Windows\v6.0\Bin\SetEnv.Cmd</para>
|
|
</entry>
|
|
<entry>
|
|
<para>vcredist_x86.exe
|
|
<superscript>3</superscript></para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>
|
|
<superscript>1</superscript>no longer officially available,
|
|
might still be available through the MSDN
|
|
subscriptions</para>
|
|
<para>
|
|
<superscript>2</superscript>as the Platform SDK is already
|
|
integrated in the package, you obviously don't need to
|
|
install it and don't even need to call a separate environment
|
|
setting batch file for the Platform SDK!</para>
|
|
<para>
|
|
<superscript>3</superscript><filename>vcredist_x86.exe</filename>
|
|
(3MB free download) is required to build
|
|
<filename>Wireshark-win32-&WiresharkCurrentVersion;.x.exe</filename>.
|
|
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
|
|
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 > V6?</title>
|
|
<para>Please note: The following is not legal advice - ask
|
|
your preferred lawyer instead! It's the authors view, but
|
|
this view might be wrong!</para>
|
|
<para>The myriad of
|
|
<ulink url="http://anonsvn.wireshark.org/wireshark-win32-libs/tags/">
|
|
Win32 support lib</ulink> port projects all seem to believe
|
|
there are legal issues involved in using newer versions of
|
|
Visual Studio. This FUD essentially stems from two
|
|
misconceptions:</para>
|
|
<para>
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Unfortunately, it is believed by many that the
|
|
Microsoft Visual Studio 2003 EULA explicitly forbids
|
|
linking with GPL'ed programs. This belief is probably due
|
|
to an improper interpretation of the
|
|
<ulink url="http://msdn.microsoft.com/visualc/vctoolkit2003/eula.aspx">
|
|
Visual Studio 2003 Toolkit EULA</ulink>, which places
|
|
redistribution restrictions only on SOURCE CODE SAMPLES
|
|
which accompany the toolkit.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>Other maintainers believe that the GPL itself
|
|
forbids using Visual Studio 2003, since one of the
|
|
required support libraries (MSVCR71.DLL) does not ship
|
|
with the Windows operating system. This is also a
|
|
wrongful interpretation, and the
|
|
<ulink url="http://www.gnu.org/licenses/gpl-faq.html#WindowsRuntimeAndGPL">
|
|
GPL FAQ</ulink> explicitly addresses this issue.</para>
|
|
</listitem>
|
|
</orderedlist>Similar applies to Visual Studio 2005 and
|
|
alike.</para>
|
|
<para>So in effect it should be perfectly legal to compile
|
|
Wireshark and distribute / run it if it was compiled with any
|
|
MSVC version > V6!</para>
|
|
</section>
|
|
<section>
|
|
<title>cl.exe (C Compiler)</title>
|
|
<para>The following table gives an overview of the possible
|
|
Microsoft toolchain variants and their specific C compiler
|
|
versions "ordered by release date":</para>
|
|
<informaltable frame="all">
|
|
<tgroup cols="4">
|
|
<colspec colname="c1" colwidth="55*" />
|
|
<colspec colname="c2" colwidth="10*" />
|
|
<colspec colname="c3" colwidth="15*" />
|
|
<colspec colname="c4" colwidth="20*" />
|
|
<tbody>
|
|
<row>
|
|
<entry>
|
|
<para>Compiler Package</para>
|
|
</entry>
|
|
<entry>
|
|
<para>cl.exe</para>
|
|
</entry>
|
|
<entry>
|
|
<para>_MSC_VER</para>
|
|
</entry>
|
|
<entry>
|
|
<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>
|
|
</entry>
|
|
<entry align="center" morerows="3" valign="middle">
|
|
<para>8.0</para>
|
|
</entry>
|
|
<entry align="center" morerows="3" valign="middle">
|
|
<para>1400</para>
|
|
</entry>
|
|
<entry align="center" morerows="3" valign="middle">
|
|
<para>msvcr80.dll</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Visual C++ 2005 Express Edition</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>.NET Framework 2.0 SDK</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Windows SDK for Windows Vista and
|
|
.NET Framework 3.0 Runtime Components</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Visual Studio 2008</para>
|
|
</entry>
|
|
<entry align="center" morerows="1" valign="middle">
|
|
<para>9.0</para>
|
|
</entry>
|
|
<entry align="center" morerows="1" valign="middle">
|
|
<para>1500</para>
|
|
</entry>
|
|
<entry align="center" morerows="1" valign="middle">
|
|
<para>msvcr90.dll</para>
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>
|
|
<para>Visual Studio 2008 Express Edition</para>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
<para>After correct installation of the toolchain, typing
|
|
at the command line prompt (cmd.exe):</para>
|
|
<para>
|
|
<prompt>></prompt>
|
|
<userinput>cl</userinput>
|
|
</para>
|
|
<para>should result in something like:
|
|
<programlisting>
|
|
<![CDATA[Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
|
|
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
|
|
|
|
usage: cl [ option... ] filename... [ /link linkoption... ]]>
|
|
</programlisting>However, the version string may vary.</para>
|
|
</section>
|
|
<section id="ChToolsNMake">
|
|
<title>nmake.exe (Make)</title>
|
|
<para>nmake is part of the toolchain packages described
|
|
above.</para>
|
|
<para>Instead of using the workspace (.dsw) and projects
|
|
(.dsp) files, the traditional nmake makefiles are used. This
|
|
has one main reason: it makes it much easier to maintain
|
|
changes simultaneously with the GCC toolchain makefile.am files
|
|
as both file formats are similar. However, as no Visual
|
|
Studio workspace/project files are available, this makes it
|
|
hard to use the Visual Studio IDE e.g. for using the
|
|
integrated debugging feature.</para>
|
|
<para>After correct installation, typing at the command
|
|
line prompt (cmd.exe):</para>
|
|
<para>
|
|
<prompt>></prompt>
|
|
<userinput>nmake</userinput>
|
|
</para>
|
|
<para>should result in something like:
|
|
<programlisting>
|
|
<![CDATA[Microsoft (R) Program Maintenance Utility Version 6.00.9782.0
|
|
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.
|
|
|
|
NMAKE : fatal error U1064: MAKEFILE not found and no target specified
|
|
Stop.]]>
|
|
</programlisting>However, the version string may vary.</para>
|
|
<para>Documentation on nmake can be found at
|
|
<ulink url="http://msdn2.microsoft.com/en-us/library/dd9y37ha(VS.71).aspx">
|
|
Microsoft MSDN</ulink></para>
|
|
</section>
|
|
<section>
|
|
<title>link.exe (Linker)</title>
|
|
<para>XXX - add info here</para>
|
|
</section>
|
|
<section>
|
|
<title>C-Runtime "Redistributable" files</title>
|
|
<para>Please note: The following is not legal advice - ask
|
|
your preferred lawyer instead! It's the authors view, but
|
|
this view might be wrong!</para>
|
|
<para>Depending on the Microsoft compiler version you use,
|
|
some binary files coming from Microsoft might
|
|
be required to be installed on Windows machine to run
|
|
Wireshark. On a developer machine, the compiler setup
|
|
installs these files so they are available - but they might
|
|
not be available on a user machine!</para>
|
|
<para>This is especially true for the C runtime DLL
|
|
(msvcr*.dll), which contains the implementation of ANSI and
|
|
alike functions, e.g.: fopen(), malloc(). The DLL is named
|
|
like: msvcr<version>.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
|
|
runtime DLL (msvcr<version>.dll) together with the
|
|
application installer somehow, as that DLL is possibly not
|
|
available on the target system.</para>
|
|
<note>
|
|
<title>Note!</title>
|
|
<para>The files to redistribute must be mentioned in the
|
|
redist.txt file of the compiler package - otherwise it
|
|
can't be legally redistributed by third parties like
|
|
us!</para>
|
|
</note>
|
|
<para>The following MSDN links are recommended for the
|
|
interested reader:</para>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
<ulink url="http://msdn2.microsoft.com/en-us/library/ms235299(VS.80).aspx">
|
|
"Redistributing Visual C++ Files"</ulink>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
<ulink url="http://msdn2.microsoft.com/en-us/library/ms235291(VS.80).aspx">
|
|
"How to: Deploy using XCopy"</ulink>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
<ulink url="http://support.microsoft.com/?scid=kb%3Ben-us%3B326922&x=10&y=13">
|
|
"Redistribution of the shared C runtime component
|
|
in Visual C++ 2005 and in Visual C++ .NET"</ulink>
|
|
</para>
|
|
</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 (>= 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>
|
|
<para>There are three redistribution methods that MSDN
|
|
mentions for MSVC 8 (see: "
|
|
<ulink url="http://msdn2.microsoft.com/en-us/library/ms235316%28VS.80%29.aspx">
|
|
Choosing a Deployment Method</ulink>"):</para>
|
|
<para>
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>"Redistributable Merge Modules" (kind of loadable
|
|
modules for building msi installers - not suitable for
|
|
Wireshark's NSIS based installer)</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>copy the folder content of Microsoft.VC80.CRT to
|
|
the target directory (e.g. "C:\program
|
|
files\Wireshark")</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>vcredist_x86.exe (needs to be executed on the
|
|
target machine - MSDN recommends this for the 2005
|
|
Express Editions)</para>
|
|
</listitem>
|
|
</orderedlist>To save installer size, MSVC2005 uses the
|
|
content of Microsoft.VC80.CRT (method 2 - this is the
|
|
smallest package). As MSVC2005EE and DOTNET20 doesn't
|
|
provide the folder "Microsoft.VC80.CRT" they use method 3.
|
|
You'll have to download a vcredist_x86.exe from Microsoft
|
|
that matches your compiler version. The best way to
|
|
determine this version is to open one of the generated
|
|
manifest files (e.g. wireshark.exe.manifest) and look for
|
|
the version of the Microsoft.VC80.CRT entry.</para>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
<command>8.0.50608.0</command>, from: "Microsoft
|
|
Visual C++ 2005" (and probably the Express Edition as
|
|
well):
|
|
<ulink url="http://www.microsoft.com/downloads/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE" /></para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
<command>8.0.50727.762</command>, from: "Microsoft
|
|
Visual C++ 2005 Express Edition - ENU Service Pack 1
|
|
(KB926748)":
|
|
<ulink url="http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647" /></para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
<para>Please report to the developer mailing list, if you
|
|
find a different version number!</para>
|
|
</section>
|
|
<section>
|
|
<title>msvcr90.dll / vcredist_x86.exe - Version 9.0 (2008)</title>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
<command>9.0.21022.8</command>, from: "Microsoft Visual C++
|
|
2008 Redistributable Package (x86)":
|
|
<ulink url="http://www.microsoft.com/downloads/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF" /></para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
<command>9.0.30729.17</command>, from: "Microsoft Visual C++
|
|
2008 SP1 Redistributable Package (x86)":
|
|
<ulink url="http://www.microsoft.com/downloads/details.aspx?FamilyID=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2" /></para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
<para>Please report to the developer mailing list, if you
|
|
find a different version number!</para>
|
|
</section>
|
|
<section>
|
|
<title>Version 10.0 (2010)?</title>
|
|
<para>As the corresponding C compiler is preliminary, it's
|
|
too early to say!</para>
|
|
</section>
|
|
</section>
|
|
<section>
|
|
<title>Windows (Platform) SDK</title>
|
|
<para>The Windows Platform SDK (PSDK) is a free (as in
|
|
beer) download and contains platform specific headers and
|
|
libraries (e.g. windows.h, WSock32.lib, ...). As new Windows
|
|
features evolve in time, updated PSDK's become available that
|
|
include new and updated API's.</para>
|
|
<para>When you purchase a commercial Visual Studio, it will
|
|
include a PSDK. The free (as in beer) downloadable C compiler
|
|
versions (VC++ 2005 Express, .NET Framework, ...) do not
|
|
contain a PSDK - you'll need to download a PSDK in order to
|
|
have the required C header files and libraries.</para>
|
|
<para>Older Versions of the Platform SDK should also work.
|
|
However, the command to set the environment settings will be
|
|
different, try search for SetEnv.* in the SDK
|
|
directory.</para>
|
|
<para>BTW: "Windows SDK" seems to be the new name of the
|
|
Platform SDK for Vista. The current SDK name is misleading:
|
|
"Microsoft Windows Software Development Kit for
|
|
Windows Vista and .NET Framework 3.0 Runtime
|
|
Components" - translated this means: the Windows SDK for
|
|
Windows Vista and Platforms (like WinXP) that have the .NET
|
|
3.0 runtime installed.</para>
|
|
</section>
|
|
<section>
|
|
<title>HTML Help</title>
|
|
<para>The HTML Help is used to create the User's and
|
|
Developer's Guide in .chm format and to show the User's Guide
|
|
as the Wireshark "Online Help".</para>
|
|
<para>Both features are currently optional, but might be
|
|
mandatory in future versions.</para>
|
|
<section>
|
|
<title>HTML Help Compiler (hhc.exe)</title>
|
|
<para>This compiler is used to generate a .chm file
|
|
from a bunch of HTML files - in our case to generate
|
|
the User's and Developer's Guide in .chm format.</para>
|
|
<para>The compiler is only available as the free (as in
|
|
beer) "HTML Help Workshop" download. If you want to compile
|
|
the guides yourself, you need to download and install this.
|
|
If you don't install it into the default directory, you may
|
|
also have a look at the HHC_DIR setting in the file
|
|
docbook/Makefile.</para>
|
|
</section>
|
|
<section>
|
|
<title>HTML Help Build Files (htmlhelp.c /
|
|
htmlhelp.lib)</title>
|
|
<para>The files htmlhelp.c and htmlhelp.lib are required to
|
|
be able to open .chm files from Wireshark - to show the
|
|
"online help".</para>
|
|
<para>Both files are part of the Platform SDK (standalone
|
|
PSDK or MSVC since 2002). If you still use MSVC 6, you
|
|
can get them from the "HTML Help Workshop" mentioned
|
|
above.</para>
|
|
<para>The related settings in config.nmake depend on the
|
|
MSVC variant you use:</para>
|
|
<para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>MSVC 6: if the "HTML Help Workshop" is
|
|
installed, set HHC_DIR to its directory</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>> MSVC 6: set HHC_DIR to use it (the actual
|
|
value doesn't matter in this case)</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</section>
|
|
</section>
|
|
<section id="ChToolsDebugger">
|
|
<title>Debugger</title>
|
|
<para>Well, using a good debugger can save you a lot of
|
|
development time.</para>
|
|
<para>The debugger you use must match the C compiler
|
|
Wireshark was compiled with, otherwise the debugger will
|
|
simply fail or you will only see a lot of garbage.</para>
|
|
<section id="ChToolsMSVCDebugger">
|
|
<title>Visual Studio integrated debugger</title>
|
|
<para>You can use the integrated debugger of Visual Studio
|
|
- only available in some of the toolchain packages.</para>
|
|
<para>However, setting up the environment is a bit tricky,
|
|
as the Win32 build process is using makefiles instead of
|
|
the .dsp/.dsw files usually used.</para>
|
|
<para>XXX - add instructions how to do it.</para>
|
|
</section>
|
|
<section id="ChToolsMSDebuggingTools">
|
|
<title>Debugging Tools for Windows</title>
|
|
<para>You could also use the Microsoft Debugging Tools for Windows toolkit,
|
|
which is a standalone GUI debugger. Although it's not that
|
|
comfortable compared to debugging with the Visual Studio
|
|
integrated debugger, it can be helpful if you have to debug
|
|
on a machine where an integrated debugger is not
|
|
available.</para>
|
|
<para>You can get it free of charge at:
|
|
<ulink url="http://www.microsoft.com/whdc/devtools/debugging/default.mspx" /> (as
|
|
links to Microsoft pages change from time to time, search
|
|
for "Debugging Tools" at their page if this link should be
|
|
outdated).</para>
|
|
</section>
|
|
</section>
|
|
</section>
|
|
<section id="ChToolsBash">
|
|
<title>bash</title>
|
|
<para>The bash shell is needed to run several shell
|
|
scripts.</para>
|
|
<section id="ChToolsGNUBash">
|
|
<title>UNIX or Win32 Cygwin: GNU bash</title>
|
|
<para>The bash shell is available for most of the UNIX-like
|
|
platforms and as the bash package from the
|
|
<link linkend="ChToolsCygwin">Cygwin setup</link>.</para>
|
|
<para>If bash isn't already installed or
|
|
available as a package for your platform, you can get it at:
|
|
<ulink url="http://www.gnu.org/software/bash/bash.html" />.</para>
|
|
<para>After correct installation, typing at the bash command line prompt:</para>
|
|
<para>
|
|
<prompt>$</prompt>
|
|
<userinput>bash --version</userinput>
|
|
</para>
|
|
<para>should result in something like:
|
|
<programlisting>
|
|
<![CDATA[GNU bash, version 3.1.17(6)-release (i686-pc-cygwin)
|
|
Copyright (C) 2005 Free Software Foundation, Inc.]]>
|
|
</programlisting>However, the version string may vary.</para>
|
|
</section>
|
|
<section id="ChToolsWin32Bash">
|
|
<title>Win32 native: -</title>
|
|
<para>The authors don't know of any working Win32 native bash
|
|
implementation.</para>
|
|
</section>
|
|
</section>
|
|
<section id="ChToolsPython">
|
|
<title>python</title>
|
|
<para>Python is an interpreter based programming language. The
|
|
homepage of the python project is:
|
|
<ulink url="http://python.org/" />. Python is used to generate
|
|
some source files. Python 2.4 to 2.6 should work fine.
|
|
</para>
|
|
<section id="ChToolsUnixPython">
|
|
<title>UNIX or Win32 Cygwin: python</title>
|
|
<para>Python is available for most of the UNIX-like platforms
|
|
and as the python package from the
|
|
<link linkend="ChToolsCygwin">Cygwin setup</link></para>
|
|
<para>If Python isn't already installed or
|
|
available as a package for your platform, you can get it at:
|
|
<ulink url="http://www.python.org/" />.</para>
|
|
<para>After correct installation, typing at the
|
|
bash command line prompt:</para>
|
|
<para>
|
|
<userinput>$ python -V</userinput>
|
|
</para>
|
|
<para>should result in something like:</para>
|
|
<para>
|
|
<computeroutput>Python 2.4.3</computeroutput>
|
|
</para>
|
|
<para>However, the version string may vary.</para>
|
|
</section>
|
|
<section id="ChToolsWin32Python">
|
|
<title>Win32 native: python</title>
|
|
<para>Get Python 2.6, 2.5, or 2.4 from
|
|
<ulink url="http://python.org/download/" />.
|
|
You can download an installation package there, which
|
|
will install the Python system in the top level of your
|
|
<filename>C:</filename> drive by default, e.g.
|
|
<filename>C:\Python26</filename>.</para>
|
|
<para>You can check for a successful installation from a command prompt (cmd.exe):</para>
|
|
<para>
|
|
<prompt>C:\></prompt>
|
|
<userinput>cd python26</userinput>
|
|
</para>
|
|
<para>
|
|
<prompt>C:\Python26></prompt>
|
|
<userinput>python -V</userinput>
|
|
</para>
|
|
<para>The output should look something like:
|
|
<programlisting>
|
|
<![CDATA[Python 2.6]]>
|
|
</programlisting>However, the version string may vary.</para>
|
|
</section>
|
|
</section>
|
|
<section id="ChToolsPerl">
|
|
<title>perl</title>
|
|
<para>Perl is an interpreter based programming language. The
|
|
homepage of the perl project is:
|
|
<ulink url="http://www.perl.com" />. Perl is used to convert
|
|
various text files into usable source code. Perl version 5.6
|
|
and above should be working fine.</para>
|
|
<section id="ChToolsUnixPerl">
|
|
<title>UNIX or Win32 Cygwin: perl</title>
|
|
<para>Perl is available for most of the UNIX-like platforms
|
|
and as the perl package from the
|
|
<link linkend="ChToolsCygwin">Cygwin setup</link>.</para>
|
|
<para>If perl isn't already installed or available
|
|
as a package for your platform, you can get it at:
|
|
<ulink url="http://www.perl.com/" />.</para>
|
|
<para>After correct installation, typing at the
|
|
bash command line prompt:</para>
|
|
<para>
|
|
<prompt>$</prompt>
|
|
<userinput>perl --version</userinput>
|
|
</para>
|
|
<para>should result in something like:
|
|
<programlisting>
|
|
<![CDATA[This is perl, v5.8.7 built for cygwin-thread-multi-64int
|
|
(with 1 registered patch, see perl -V for more detail)
|
|
|
|
Copyright 1987-2005, Larry Wall
|
|
|
|
Perl may be copied only under the terms of either the Artistic License or the
|
|
GNU General Public License, which may be found in the Perl 5 source kit.
|
|
|
|
Complete documentation for Perl, including FAQ lists, should be found on
|
|
this system using `man perl' or `perldoc perl'. If you have access to the
|
|
Internet, point your browser at http://www.perl.com/, the Perl Home Page.]]>
|
|
</programlisting>However, the version string may vary.</para>
|
|
</section>
|
|
<section id="ChToolsWin32Perl">
|
|
<title>Win32 native: perl</title>
|
|
<para>A native Win32 perl package can be obtained from
|
|
<ulink url="http://www.ActiveState.com" />. The installation
|
|
should be straightforward.</para>
|
|
<para>After correct installation, typing at the command
|
|
line prompt (cmd.exe):</para>
|
|
<para>
|
|
<prompt>></prompt>
|
|
<userinput>perl -v</userinput>
|
|
</para>
|
|
<para>should result in something like:
|
|
<programlisting>
|
|
<![CDATA[This is perl, v5.8.0 built for MSWin32-x86-multi-thread
|
|
(with 1 registered patch, see perl -V for more detail)
|
|
|
|
Copyright 1987-2002, Larry Wall
|
|
|
|
Binary build 805 provided by ActiveState Corp. http://www.ActiveState.com
|
|
Built 18:08:02 Feb 4 2003
|
|
...]]>
|
|
</programlisting>However, the version string may vary.</para>
|
|
</section>
|
|
</section>
|
|
<section id="ChToolsSed">
|
|
<title>sed</title>
|
|
<para>Sed it the streaming editor. It makes it easy for example
|
|
to replace specially marked texts inside a source code file.
|
|
The Wireshark build process uses this to stamp version strings
|
|
into various places.</para>
|
|
<section id="ChToolsUnixSed">
|
|
<title>UNIX or Win32 Cygwin: sed</title>
|
|
<para>Sed is available for most of the UNIX-like platforms
|
|
and as the sed package from the
|
|
<link linkend="ChToolsCygwin">Cygwin setup</link>.</para>
|
|
<para>If sed isn't already installed or available
|
|
as a package for your platform, you can get it at:
|
|
<ulink url="http://directory.fsf.org/GNU/sed.html" /></para>
|
|
<para>After correct installation, typing at the
|
|
bash command line prompt:</para>
|
|
<para>
|
|
<prompt>$</prompt>
|
|
<userinput>sed --version</userinput>
|
|
</para>
|
|
<para>should result in something like:
|
|
<programlisting>
|
|
<![CDATA[GNU sed version 4.1.5
|
|
Copyright (C) 2003 Free Software Foundation, Inc.
|
|
This is free software; see the source for copying conditions. There is NO
|
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
|
|
to the extent permitted by law.]]>
|
|
</programlisting>However, the version string may vary.</para>
|
|
</section>
|
|
<section id="ChToolsWin32Sed">
|
|
<title>Win32 native: sed</title>
|
|
<para>A native Win32 sed package can be obtained from
|
|
<ulink url="http://gnuwin32.sourceforge.net/" />. The
|
|
installation should be straightforward.</para>
|
|
</section>
|
|
</section>
|
|
<section id="ChToolsYacc">
|
|
<title>yacc (bison)</title>
|
|
<para>Bison is a free implementation of yacc.</para>
|
|
<section id="ChToolsUnixYacc">
|
|
<title>UNIX or Win32 Cygwin: bison</title>
|
|
<para>Bison is available for most of the UNIX-like platforms
|
|
and as the bison package from the
|
|
<link linkend="ChToolsCygwin">Cygwin setup</link>.</para>
|
|
<para>If GNU Bison isn't already installed or
|
|
available as a package for your platform, you can get it at:
|
|
<ulink url="http://www.gnu.org/software/bison/bison.html" />.</para>
|
|
<para>After correct installation, typing at the
|
|
bash command line prompt:</para>
|
|
<para>
|
|
<prompt>$</prompt>
|
|
<userinput>bison --version</userinput>
|
|
</para>
|
|
<para>should result in something like:
|
|
<programlisting>
|
|
<![CDATA[bison (GNU Bison) 2.3
|
|
Written by Robert Corbett and Richard Stallman.
|
|
|
|
Copyright (C) 2006 Free Software Foundation, Inc.
|
|
This is free software; see the source for copying conditions. There is NO
|
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.]]>
|
|
</programlisting>However, the version string may vary.</para>
|
|
</section>
|
|
<section id="ChToolsWin32Yacc">
|
|
<title>Win32 native: bison</title>
|
|
<para>A native Win32 yacc/bison package can be obtained from
|
|
<ulink url="http://gnuwin32.sourceforge.net/" />. The
|
|
installation should be straightforward.</para>
|
|
</section>
|
|
</section>
|
|
<section id="ChToolsLexx">
|
|
<title>flex</title>
|
|
<para>Flex is a free implementation of lexx.</para>
|
|
<section id="ChToolsUnixLexx">
|
|
<title>UNIX or Win32 Cygwin: flex</title>
|
|
<para>Flex is available for most of the UNIX-like platforms
|
|
and as the flex package from the
|
|
<link linkend="ChToolsCygwin">Cygwin setup</link>.</para>
|
|
<para>If GNU flex isn't already installed or
|
|
available as a package for your platform, you can get it at:
|
|
<ulink url="http://www.gnu.org/software/flex/" />.</para>
|
|
<para>After correct installation, typing at the
|
|
bash command line prompt:</para>
|
|
<para>
|
|
<prompt>$</prompt>
|
|
<userinput>flex --version</userinput>
|
|
</para>
|
|
<para>should result in something like:
|
|
<programlisting>
|
|
<![CDATA[flex version 2.5.4]]>
|
|
</programlisting>However, the version string may vary.</para>
|
|
</section>
|
|
<section id="ChToolsWin32Lexx">
|
|
<title>Win32 native: flex</title>
|
|
<para>A native Win32 lexx/flex package can be obtained from
|
|
<ulink url="http://gnuwin32.sourceforge.net/" />. The
|
|
installation should be straightforward.</para>
|
|
</section>
|
|
</section>
|
|
<section id="ChToolsSubversion">
|
|
<title>Subversion (SVN) client (optional)</title>
|
|
<para>The Wireshark project uses its own Subversion (or short
|
|
SVN) server to keep track of all the changes done to the source
|
|
code. Details about the usage of Subversion in the Wireshark
|
|
project can be found in
|
|
<xref linkend="ChSrcSVNServer" />.</para>
|
|
<para>If you want to work with the source code and are planning to
|
|
commit your changes back to the Wireshark community, it is
|
|
recommended to use a SVN client to get the latest source files.
|
|
For detailed information about the different ways to obtain the
|
|
Wireshark sources, see
|
|
<xref linkend="ChSrcObtain" />.</para>
|
|
<para>You will find more instructions in
|
|
<xref linkend="ChSrcAnon" /> on how to use the Subversion
|
|
client.</para>
|
|
<section id="ChToolsUnixSVN">
|
|
<title>UNIX or Win32 Cygwin: svn</title>
|
|
<para>SVN is available for most of the UNIX-like platforms
|
|
and as the Subversion package from the
|
|
<link linkend="ChToolsCygwin">Cygwin setup</link></para>
|
|
<para>If Subversion isn't already installed or
|
|
available as a package for your platform, you can get it at:
|
|
<ulink url="http://subversion.tigris.org/" /> (together with
|
|
the server software).</para>
|
|
<para>After correct installation, typing at the
|
|
bash command line prompt:</para>
|
|
<para>
|
|
<prompt>$</prompt>
|
|
<userinput>svn --version</userinput>
|
|
</para>
|
|
<para>should result in something like:
|
|
<programlisting>
|
|
<![CDATA[svn, version 1.0.5 (r9954)
|
|
compiled Jun 20 2004, 23:28:30
|
|
|
|
Copyright (C) 2000-2004 CollabNet.
|
|
Subversion is open source software, see http://subversion.tigris.org/
|
|
This product includes software developed by CollabNet (http://www.Collab.Net/).
|
|
...]]>
|
|
</programlisting>However, the version string may vary.</para>
|
|
</section>
|
|
<section id="ChToolsWin32SVN">
|
|
<title>Win32 native: svn</title>
|
|
<para>The Subversion command line tools for Win32 can be
|
|
found at:
|
|
<ulink url="http://subversion.tigris.org/" />. This will come
|
|
with both client and server software - only the client
|
|
software will be used.</para>
|
|
<para>After correct installation, typing at the command
|
|
line prompt (cmd.exe):</para>
|
|
<para>
|
|
<prompt>></prompt>
|
|
<userinput>svn --version</userinput>
|
|
</para>
|
|
<para>should result in something like:
|
|
<programlisting>
|
|
<![CDATA[svn, Version 1.4.0 (r21228)
|
|
|
|
Copyright (C) 2000-2006 CollabNet.
|
|
...]]>
|
|
</programlisting>However, the version string may vary.</para>
|
|
</section>
|
|
</section>
|
|
<section id="ChToolsSubversionGUI">
|
|
<title>Subversion (SVN) GUI client (optional)</title>
|
|
<para>Along with the traditional command-line client, several
|
|
GUI clients are available for a number of platforms, see
|
|
<ulink url="http://subversion.tigris.org/project_links.html" />.</para>
|
|
<warning>
|
|
<title>Keep Subversion program versions in sync!</title>
|
|
<para>If you are working with both command line and GUI
|
|
clients, keep the Subversion program versions in sync, at
|
|
least the major/minor versions (e.g. 1.4).</para>
|
|
</warning>
|
|
<section id="ChToolsUnixSVNGUI">
|
|
<title>UNIX or Win32 Cygwin: rapidSVN, subcommander</title>
|
|
<para>RapidSVN is a cross platform Subversion frontend based
|
|
on wxWidgets. It can be found at:
|
|
<ulink url="http://rapidsvn.tigris.org/" />. Subcommander is
|
|
another cross platform Subversion frontend. It can be found
|
|
at:
|
|
<ulink url="http://subcommander.tigris.org/" />.</para>
|
|
<para>Cygwin doesn't provide any GUI client for
|
|
Subversion.</para>
|
|
</section>
|
|
<section id="ChToolsTortoiseSVN">
|
|
<title>Win32 native: TortoiseSVN</title>
|
|
<para>A good Subversion client for Win32 can be found at:
|
|
<ulink url="http://tortoisesvn.tigris.org/" />. It will
|
|
nicely integrate into the Windows Explorer window.</para>
|
|
</section>
|
|
</section>
|
|
<section id="ChToolsDiff">
|
|
<title>diff (optional)</title>
|
|
<para>Diff is used to get a file of all differences between two
|
|
source files/trees (sometimes called a patch). The diff tool
|
|
isn't needed for building Wireshark, but it's needed if you are
|
|
going to commit your changes back to the Wireshark
|
|
community.</para>
|
|
<note>
|
|
<title>Note!</title>
|
|
<para>The recommended way to build patches is using the
|
|
Subversion client, see
|
|
<xref linkend="ChToolsSubversion" /> for details.</para>
|
|
</note>
|
|
<para>You will find more instructions in
|
|
<xref linkend="ChSrcDiff" /> on how to use the diff tool.</para>
|
|
<section id="ChToolsGNUDiff">
|
|
<title>UNIX or Win32 Cygwin: GNU diff</title>
|
|
<para>Diff is available for most of the UNIX-like platforms
|
|
and as the diffutils package from the
|
|
<link linkend="ChToolsCygwin">Cygwin setup</link>.</para>
|
|
<para>If GNU diff isn't already installed or
|
|
available as a package for your platform, you can get it at:
|
|
<ulink url="http://www.gnu.org/software/diffutils/diffutils.html" />.</para>
|
|
<para>After correct installation, typing at the
|
|
bash command line prompt:</para>
|
|
<para>
|
|
<prompt>$</prompt>
|
|
<userinput>diff --version</userinput>
|
|
</para>
|
|
<para>should result in something like:
|
|
<programlisting>
|
|
<![CDATA[diff (GNU diffutils) 2.8.7
|
|
Written by Paul Eggert, Mike Haertel, David Hayes,
|
|
Richard Stallman, and Len Tower.
|
|
|
|
Copyright (C) 2004 Free Software Foundation, Inc.
|
|
This is free software; see the source for copying conditions. There is NO
|
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.]]>
|
|
</programlisting>However, the version string may vary.</para>
|
|
</section>
|
|
<section id="ChToolsWin32Diff">
|
|
<title>Win32 native: diff</title>
|
|
<para>A native Win32 diff package can be obtained from
|
|
<ulink url="http://gnuwin32.sourceforge.net/" />. The
|
|
installation should be straightforward.</para>
|
|
<para>The Subversion client TortoiseSVN has a built-in diff
|
|
feature, see
|
|
<xref linkend="ChToolsTortoiseSVN" />. It is currently unknown
|
|
if this tool can be used to
|
|
create diff files in the required format, so other persons
|
|
can use them.</para>
|
|
</section>
|
|
</section>
|
|
<section id="ChToolsPatch">
|
|
<title>patch (optional)</title>
|
|
<para>The patch utility is used to merge a diff file into your
|
|
own source tree. This tool is only needed, if you want to apply
|
|
a patch (diff file) from someone else (probably from the
|
|
developer mailing list) to try out in your own private source
|
|
tree.</para>
|
|
<tip>
|
|
<title>Tip!</title>
|
|
<para>Unless you are in the rare case needing to apply a
|
|
patch to your private source tree, you won't need the patch
|
|
tool installed.</para>
|
|
</tip>
|
|
<para>You will find more instructions in
|
|
<xref linkend="ChSrcPatchApply" /> on how to use the patch
|
|
tool.</para>
|
|
<section id="ChToolsUnixPatch">
|
|
<title>UNIX or Win32 Cygwin: patch</title>
|
|
<para>Patch is available for most of the UNIX-like platforms
|
|
and as the patch package from the
|
|
<link linkend="ChToolsCygwin">Cygwin setup</link>.</para>
|
|
<para>If GNU patch isn't already installed or
|
|
available as a package for your platform, you can get it at:
|
|
<ulink url="http://www.gnu.org/software/patch/patch.html" />.</para>
|
|
<para>After correct installation, typing at the
|
|
bash command line prompt:</para>
|
|
<para>
|
|
<prompt>$</prompt>
|
|
<userinput>patch --version</userinput>
|
|
</para>
|
|
<para>should result in something like:
|
|
<programlisting>
|
|
<![CDATA[patch 2.5.8
|
|
Copyright (C) 1988 Larry Wall
|
|
Copyright (C) 2002 Free Software Foundation, Inc.
|
|
|
|
This program comes with NO WARRANTY, to the extent permitted by law.
|
|
You may redistribute copies of this program
|
|
under the terms of the GNU General Public License.
|
|
For more information about these matters, see the file named COPYING.
|
|
|
|
written by Larry Wall and Paul Eggert]]>
|
|
</programlisting>However, the version string may vary.</para>
|
|
</section>
|
|
<section id="ChToolsWin32Patch">
|
|
<title>Win32 native: patch</title>
|
|
<para>A native Win32 patch package can be obtained from
|
|
<ulink url="http://gnuwin32.sourceforge.net/" />. The
|
|
installation should be straightforward.</para>
|
|
<para>The Subversion client TortoiseSVN has a built-in patch
|
|
feature, see
|
|
<xref linkend="ChToolsTortoiseSVN" />. The last time tested
|
|
(Version 1.1.0), this feature failed to apply patches known
|
|
to be ok.</para>
|
|
</section>
|
|
</section>
|
|
<section id="ChToolsWget">
|
|
<title>Win32: GNU wget (optional)</title>
|
|
<para>GNU wget is used to download files from the internet
|
|
using the command line.</para>
|
|
<para>GNU wget is available for most of the UNIX-like platforms
|
|
and as the wget package from the
|
|
<link linkend="ChToolsCygwin">Cygwin setup</link>.</para>
|
|
<para>You will only need wget, if you want to use the Win32
|
|
automated library download, see
|
|
<xref linkend="ChLibsSetup" /> for details.</para>
|
|
<para>If GNU wget isn't already installed or
|
|
available as a package for your platform (well, for Win32 it is
|
|
available as a Cygwin package), you can get it at:
|
|
<ulink url="http://www.gnu.org/software/wget/wget.html" />.</para>
|
|
<para>If wget is trying to download files but fails to do so,
|
|
your Internet connection might use an HTTP proxy. Some Internet
|
|
providers use such a proxy and it is common in many company
|
|
networks today. Wireshark's setup script will try to discover
|
|
your proxy settings automatically, but you you may need to set
|
|
the environment variable HTTP_PROXY by hand before using wget.
|
|
For example, if you are behind proxy.com which is listening on
|
|
port 8080, you have to set it to something like:</para>
|
|
<para>
|
|
<programlisting>set HTTP_PROXY=http://proxy.com:8080/</programlisting>
|
|
</para>
|
|
<para>If you are unsure about the settings, you might ask your
|
|
system administrator.</para>
|
|
</section>
|
|
<section id="ChToolsUnzip">
|
|
<title>Win32: GNU unzip (optional)</title>
|
|
<para>GNU unzip is used to, well, unzip the zip files
|
|
downloaded using the wget tool.</para>
|
|
<para>GNU unzip is available for most of the UNIX-like platforms
|
|
and as the unzip package from the
|
|
<link linkend="ChToolsCygwin">Cygwin setup</link>.</para>
|
|
<para>You will only need unzip, if you want to use the Win32
|
|
automated library download, see
|
|
<xref linkend="ChLibsSetup" /> for details.</para>
|
|
<para>If GNU unzip isn't already installed or
|
|
available as a package for your platform (well, for Win32 it is
|
|
available as a Cygwin package), you can get it at:
|
|
<ulink url="http://gnuwin32.sourceforge.net/packages/unzip.htm" />.</para>
|
|
</section>
|
|
<section id="ChToolsNSIS">
|
|
<title>Win32: NSIS (optional)</title>
|
|
<para>The NSIS (Nullsoft Scriptable Install System) is used to
|
|
generate <filename>wireshark-win32-&WiresharkCurrentVersion;.x.exe</filename>
|
|
from all the files needed to be installed, including all required DLL's and
|
|
such.</para>
|
|
<para>To install it, simply download the latest released
|
|
version (currently: 2.45) from
|
|
<ulink url="http://nsis.sourceforge.net" /> and start the
|
|
downloaded installer. You will need NSIS version 2 final or
|
|
higher.</para>
|
|
<para>You will find more instructions in
|
|
<xref linkend="ChSrcNSIS" /> on how to use the NSIS tool.</para>
|
|
</section>
|
|
</chapter>
|
|
<!-- End of WSDG Chapter Tools -->
|