1 <!-- EDG Chapter Libraries -->
4 <chapter id="ChapterLibraries">
5 <title>Libraries</title>
7 <section id="ChLibIntro">
8 <title>Introduction</title>
10 Several libraries are needed to build / run Ethereal. Most of the
11 libraries are splitted into three packages:
15 Runtime package: binaries (e.g. win32 DLL's) and alike
20 Developer package: documentation, header files and alike
25 Source package: library sources, usually not required to
30 <tip><title>Tip!</title>
32 Win32: All required libraries for the MSVC
33 generation are available at:
34 <ulink url="http://www.ethereal.com/distribution/win32/development/"/>,
35 but see <xref linkend="ChLibsSetup"/> for an easier way to install the
42 <section id="ChLibsFormat">
43 <title>Binary library formats</title>
45 Binary libraries are available in different formats, depending on the C
46 compiler (see <xref linkend="ChToolsCompiler"/>) used to build it and of
47 course the platform they were build for.
50 <section id="ChLibsFormatUnix">
53 If you have installed unix binary libraries on your system, they will
54 match the C compiler. If not already installed, the libraries should be
55 available as a package from the platform installer, or you can download
56 and compile the source and install that binaries then.
60 <section id="ChLibsFormatWin32MSVC6">
61 <title>Win32: MSVC V6</title>
63 Recommended for current Win32 Ethereal releases.
64 Most of the Win32 binary libraries you will find on the web are in this
65 format. You will recognize MSVC libraries by the .lib/.dll file extension.
69 <section id="ChLibsFormatWin32MSVC2003">
70 <title>Win32: MSVC 2003</title>
72 Currently not widely available, but the first libraries in that format can
73 be seen on the web. These libraries have the same .lib/.dll file
74 extension, but unfortunately they are not completely compatible as they
75 are linked with different dependant libraries, see <xref
76 linkend="ChToolsCompiler"/> for some further explanations.
80 <section id="ChLibsFormatWin32Cygwin">
81 <title>Win32: cygwin gcc</title>
83 Cygwin provides most of the required libraries (with file extension .a/.lib)
84 for Wireshark suitable for cygwin's gcc compiler.
89 <section id="ChLibsSetup">
90 <title>Win32: Automated library download</title>
92 You can download/install all required libraries by using the setup target
93 of the <filename>Makefile.nmake</filename> from the source package.
95 <tip><title>Tip!</title>
97 It's a really good idea to use the Win32 automated library download to
98 install the required libraries as it makes this download very easy.
101 <note><title>Note!</title>
103 Before you start the download, you must have installed both
104 the required tools (see <xref linkend="ChapterTools"/>) and also the
105 Ethereal sources (see <xref linkend="ChSrcObtain"/>).
109 By default the libraries will be downloaded and installed into
110 <filename>C:\ethereal-win32-libs</filename>.
111 You can change this to any other location by editing the file
112 <filename>config.nmake</filename> and changing the line containing
113 the WIRESHARK_LIBS setting to your favourite place (use an absolute path
117 Then enter at the command line:
120 <prompt>></prompt> <userinput>nmake -f Makefile.nmake setup</userinput>
123 This will first check for all the various tools needed to build Ethereal,
124 as described already in <xref linkend="ChToolsWin32Verify"/>.
127 Then it will download the zipped libraries into the directory specified by
128 WIRESHARK_LIBS and install (unzip) all required library files there.
131 If you have problems downloading the library files, see the wget proxy
132 comment in <xref linkend="ChToolsWget"/>.
135 <section id="ChLibsSetupUpdate">
136 <title>Update of a previous download</title>
138 As new versions of the libraries become available, maybe with bugfixes or
139 some new functionality, your libraries get outdated.
142 You could simply remove everything in the WIRESHARK_LIBS dir and call the
143 setup target again, but that would require to download every file again
144 (currently about 33MB), which isn't necessary.
147 The following will bring your libraries up to date:
152 Update your Ethereal sources to the latest SVN files (see <xref
153 linkend="ChSrcObtain"/>), so the zip filenames in the setup target
154 of Makefile.nmake is in sync with the library zip files on the server.
159 Remove all files previously unzipped from the downloaded files in your
160 WIRESHARK_LIBS library path (all the subdirs, e.g.
161 <filename>c:\ethereal_libs\gtk+</filename>),
162 except for the zip files located at the toplevel, which are the files
163 downloaded the last time(s). You could do this, be entering at the command line:
166 <prompt>></prompt> <userinput>nmake -f Makefile.nmake clean_setup</userinput>
171 Start the setup target described above. As wget will download only the
172 missing files, existing zip files in the WIRESHARK_LIBS dir won't be
173 downloaded again. Remaining (outdated) zip files shouldn't do any harm.
181 <section id="ChLibsGtk">
182 <title>GTK+ / GLib / GDK / Pango / ATK / GNU gettext / GNU libiconv</title>
184 The Glib library is used as a basic platform abstraction library, it's
185 not related to graphical user interface (GUI) things. For a detailed
186 description about GLib, see <xref linkend="ChCodeGLib"/>.
189 The GTK and it's dependant libraries are used to build Ethereal's GUI.
190 For a detailed description of the GTK libraries, see <xref
194 All other libraries are dependant on the two libraries mentioned above,
195 you will typically not come in touch with these while doing Ethereal
199 As the requirements for the GLib/GTK libraries increased in the past, it
200 depends on the GLib/GTK versions you have, which additional libraries are
201 required. The 1.x versions only needed GLib/GDK/GTK+, while the 2.x
202 versions require all mentioned libs.
205 <section id="ChLibsUnixGTK">
208 The GLib/GTK+ libraries are available for many unix-like platforms and
212 If these libraries aren't already installed and also not available as a
213 package for your platform, you can get them at:
214 <ulink url="http://www.gtk.org"/>.
218 <section id="ChLibsWin32GTK">
219 <title>Win32 MSVC</title>
221 You can get the latest version at:
222 <ulink url="http://www.gimp.org/%7Etml/gimp/win32/downloads.html"/>.
227 <section id="ChLibsSNMP">
228 <title>Net SNMP (previously known as "ucd-snmp")</title>
230 "Various tools relating to the Simple Network Management Protocol"
233 <section id="ChLibsUnixSNMP">
236 If this library isn't already installed and also not available as a
237 package for your platform, you can get it at:
238 <ulink url="http://sourceforge.net/projects/net-snmp/"/>.
242 <section id="ChLibsWin32SNMP">
243 <title>Win32 MSVC</title>
245 Ethereal uses the source Net-SNMP distribution at
246 <ulink url="http://sourceforge.net/projects/net-snmp/"/>.
247 Then libsnmp is compiled with the "libsnmp - Win32 Release" project
248 using MSVC++ 6.0. A file called "README.ethereal" has been placed in the
249 net-snmp zip archive at <ulink
250 url="http://anonsvn.ethereal.com/ethereal-win32-libs/trunk/packages/"/>
251 describing the changes in more detail.
258 <section id="ChLibsADNS">
259 <title>GNU ADNS (optional)</title>
261 "Advanced, easy to use, asynchronous-capable DNS client library and
265 <section id="ChLibsUnixADNS">
268 If this library isn't already installed and also not available as a
269 package for your platform, you can get it at:
270 <ulink url="http://www.gnu.org/software/adns/"/>.
274 <section id="ChLibsWin32ADNS">
275 <title>Win32 MSVC</title>
277 You can get the latest version at:
278 <ulink url="http://adns.jgaa.com/"/>
285 <section id="ChLibsPCRE">
286 <title>PCRE(optional)</title>
288 "Perl compatible regular expressions"
291 <section id="ChLibsUnixPCRE">
294 If this library isn't already installed and also not available as a
295 package for your platform, you can get it at:
296 <ulink url="http://www.pcre.org/"/>.
300 <section id="ChLibsWin32PCRE">
301 <title>Win32 MSVC</title>
303 You can get the latest version at:
304 <ulink url="http://gnuwin32.sourceforge.net/packages/pcre.htm"/>
311 <section id="ChLibsZlib">
312 <title>zlib (optional)</title>
314 "zlib is designed to be a
315 <ulink url="http://www.gzip.org/zlib/zlib_license.html">free</ulink>,
316 general-purpose, legally unencumbered -- that is, not covered by any
317 patents -- lossless data-compression library for use on virtually any computer
318 hardware and operating system."
321 <section id="ChLibsUnixZlib">
324 If this library isn't already installed and also not available as a
325 package for your platform, you can get it at:
326 <ulink url="http://www.gzip.org/zlib/"/>.
330 <section id="ChLibsWin32Zlib">
331 <title>Win32 MSVC</title>
333 You can get the latest version at:
334 <ulink url="http://gnuwin32.sourceforge.net/packages/zlib.htm"/>
337 (A version for the MSVC2003 compiler can be found at:
338 <ulink url="http://www.winimage.com/zLibDll/"/>)
345 <section id="ChLibsPcap">
346 <title>libpcap/WinPcap (optional)</title>
348 "packet capture library"
351 <section id="ChLibsLibpcap">
352 <title>Unix: libpcap</title>
354 If this library isn't already installed and also not available as a
355 package for your platform, you can get it at:
356 <ulink url="http://www.tcpdump.org/"/>.
360 <section id="ChLibsWinpPcap">
361 <title>Win32 MSVC: WinPcap</title>
363 You can get the "Windows packet capture library" at:
364 <ulink url="http://www.winpcap.org/install/default.htm"/>
371 <section id="ChLibsWimp">
372 <title>Win32: GTK WIMP (optional) for GTK 2.x only</title>
374 "GTK-Wimp ("Windows impersonator") is a GTK theme that blends well into
375 the Windows desktop environment."
378 Wimp is only available for the GTK2.x versions at:
379 <ulink url="http://gtk-wimp.sourceforge.net/"/>.
386 <!-- End of EDG Chapter Libraries -->