The tool installation on Win32 can be quite confusing as there are several ways to do so. The following will give you a step-by-step guide to install the development tools in the recommended way.
![]() | Warning! |
|---|---|
Unless you know exactly what you are doing, you should strictly follow the recommendations! |
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.
The native Win32 tools will typically be a bit faster, but more complicated to install. You will have to download the tools from different webpages, and install them in different ways, tweaking the PATH and alike.
![]() | Note! |
|---|---|
As there's no Win32 native bash version available, at least a basic installation of cygwin is required in any case. |
For all these reasons, the following recommends to use Cygwin tools where appropriate.
Table 2.1. The recommended tools
| Tool | Cygwin (Category/Package) | Win32 native | Remark |
|---|---|---|---|
| Section 2.4, “C compiler” | - | cl.exe (MSVC V6) | |
| Section 2.5, “Debugger” | - | integrated debugger (MSVC V6) | |
| Section 2.6, “make” | - | nmake.exe (MSVC V6) | |
| Section 2.7, “bash” | Base/bash | - | No Win32 native version available! |
| Section 2.10, “sed” | Base/sed | - | |
| Section 2.8, “python” | Interpreters/python | - | |
| Section 2.9, “perl” | Interpreters/perl | - | |
| Section 2.11, “yacc (bison)” | Devel/bison | - | |
| Section 2.12, “lexx (flex)” | Devel/flex | - | |
| Section 2.16, “Win32: GNU wget (optional)” | Web/wget | - | |
| Section 2.17, “Win32: GNU unzip (optional)” | Archive/unzip | - | |
| Section 2.13, “Subversion (SVN) client (optional)” | - | TortoiseSVN | Only needed if you access the Ethereal sources using the subversion repository (the recommended way). |
| Section 2.18, “Win32: NSIS (optional)” | - | NSIS | Only needed if you want to build your own ethereal-setup.exe. |
Don't get confused by the (optional) marker at some of the items in the "Tool" column. Although these tools are not required to build Ethereal they can make development life much easier and some are even required by the following installation procedure.
Install MSVC the usual way. Don't forget to install vcvars32.bat or call it manually before building Ethereal. vcvars32.bat will set some required environment settings.
![]() | Warning! |
|---|---|
Using any other MSVC version is not recommended and will certainly not work (at least without a lot of advanced tweaking). For further details on this topic, see Section 2.4, “C compiler”. |
Although Cygwin consists of several seperate 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
C:\cygwin.
You will find this network based setup.exe at: http://www.cygwin.com/. Click on one of the "Install Cygwin now"
appearances to download the setup.exe.
After the download completed, start this setup.exe
on your machine.
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:
Archive/unzip
Devel/bison
Devel/flex
Interpreters/perl
Interpreters/python
Utils/patch
Web/wget
After clicking the Next button several times, the setup will then download and install the selected packages (this may take a while).
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.exe/cmd.exe) in Win32, but much more powerful.
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:
a specific version number - this different package version will be installed
Skip - not installed, no changes
Keep - already installed, no changes
Uninstall - uninstall this package
Reinstall - reinstall this package
Depending on your actual task the following tools are recommended. Please note that they are not required to build Ethereal but can be quite helpful.
If you want to work with the Ethereal subversion source repositories (which is highly recommended, see Section 4.4, “Obtain the Ethereal sources”), it's recommended to use TortoiseSVN. You can download the setup from http://tortoisesvn.tigris.org/ and simply install it.
If you want to build your own ethereal-setup.exe, you'll need NSIS. You can download the NSIS setup from http://nsis.sourceforge.net and simply install it.
You may check the MAKENSIS setting in the file
config.nmake of the Ethereal sources.
After you've installed the Ethereal sources (see Section 4.4, “Obtain the Ethereal sources”), you can check the correct installation of
all tools by using the verify_tools target of the
Makefile.nmake from the source package.
![]() | Warning! |
|---|---|
You will need the Ethereal sources and some tools (nmake, bash) installed, before this verification is able to work. |
Enter at the command line (cmd.exe, not Cygwin's bash!):
>
nmake -f Makefile.nmake verify_tools
This will check for the various tools needed to build Ethereal:
Checking for required applications:
cl: /cygdrive/c/Program Files/Microsoft Visual Studio/VC98/bin/cl
link: /cygdrive/c/Program Files/Microsoft Visual Studio/VC98/bin/link
nmake: /cygdrive/c/Program Files/Microsoft Visual Studio/VC98/bin/nmake
bash: /usr/bin/bash
bison: /usr/bin/bison
flex: /usr/bin/flex
env: /usr/bin/env
grep: /usr/bin/grep
/usr/bin/find: /usr/bin/find
perl: /usr/bin/perl
env: /usr/bin/env
python: /usr/bin/python
sed: /usr/bin/sed
unzip: /usr/bin/unzip
wget: /usr/bin/wget
If you have problems with all the first three ones, check if you called ...\Microsoft Visual Studio\VC98\Bin\vcvars32.bat before (which will "fix" your PATH settings).
Unfortunately, the link command is defined both from cygwin and from MSVC with completely different purpose, you'll need the MSVC link. If your link command looks something like: /usr/bin/link, the link command of cygwin takes precedence over the MSVC one. To fix this, you can change your PATH environment setting or simply renaming the link.exe in cygwin. If you rename it, make sure to remember that a cygwin update may provide a new version of it.