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 Ethereal suitable for cygwin's gcc compiler.
89 <section id="ChLibsSetup">
90 <title>Win32: Automated library download</title>
91 <tip><title>Tip!</title>
93 It's a really good idea to use the Win32 automated library download to
94 install the required libraries as it makes this download very easy.
97 <warning><title>Warning!</title>
99 The library zip files on the server and in the setup target will match
100 only for the latest sources, as old zip files will be moved into the
101 <filename>old</filename> folder on the server. So you cannot use the
102 setup target for "old" (this may even include the released) sources!
106 You can download/install all required libraries by using the setup target
107 of the <filename>Makefile.nmake</filename> from the source package.
110 Before you start the download, you must have installed both
111 the required tools (see <xref linkend="ChapterTools"/>) and also the
112 Ethereal sources (see <xref linkend="ChSrcObtain"/>).
115 By default the libraries will be downloaded and installed into
116 <filename>C:\ethereal-win32-libs</filename>.
117 You can change this to any other location by editing the file
118 <filename>config.nmake</filename> and changing the line containing
119 the ETHEREAL_LIBS setting to your favourite place (use an absolute path
123 Then enter at the command line:
126 <prompt>></prompt> <userinput>nmake -f Makefile.nmake setup</userinput>
129 This will first check for all the various tools needed to build Ethereal,
130 as described already in <xref linkend="ChToolsWin32Verify"/>.
133 Then it will download the zipped libraries into the directory specified by
134 ETHEREAL_LIBS and install (unzip) all required library files there.
137 If you have problems downloading the library files, see the wget proxy
138 comment in <xref linkend="ChToolsWget"/>.
141 <section id="ChLibsSetupUpdate">
142 <title>Update of a previous download</title>
144 As new versions of the libraries become available, maybe with bugfixes or
145 some new functionality, your libraries get outdated.
148 You could simply remove everything in the ETHEREAL_LIBS dir and call the
149 setup target again, but that would require to download every file again
150 (currently about 33MB), which isn't necessary.
153 The following will bring your libraries up to date:
158 Update your Ethereal sources to the latest SVN files (see <xref
159 linkend="ChSrcObtain"/>), so the zip filenames in the setup target
160 of Makefile.nmake is in sync with the library zip files on the server.
165 Remove all files previously unzipped from the downloaded files in your
166 ETHEREAL_LIBS library path (all the subdirs, e.g.
167 <filename>c:\ethereal_libs\gtk+</filename>),
168 except for the zip files located at the toplevel, which are the files
169 downloaded the last time(s). You could do this, be entering at the command line:
172 <prompt>></prompt> <userinput>nmake -f Makefile.nmake clean_setup</userinput>
177 Start the setup target described above. As wget will download only the
178 missing files, existing zip files in the ETHEREAL_LIBS dir won't be
179 downloaded again. Outdated zip files shouldn't do any harm.
187 <section id="ChLibsGtk">
188 <title>GTK+ / GLib / GDK / Pango / ATK / GNU gettext / GNU libiconv</title>
190 The Glib library is used as a basic platform abstraction library, it's
191 not related to graphical user interface (GUI) things. For a detailed
192 description about GLib, see <xref linkend="ChCodeGLib"/>.
195 The GTK and it's dependant libraries are used to build Ethereal's GUI.
196 For a detailed description of the GTK libraries, see <xref
200 All other libraries are dependant on the two libraries mentioned above,
201 you will typically not come in touch with these while doing Ethereal
205 As the requirements for the GLib/GTK libraries increased in the past, it
206 depends on the GLib/GTK versions you have, which additional libraries are
207 required. The 1.x versions only needed GLib/GDK/GTK+, while the 2.x
208 versions require all mentioned libs.
211 <section id="ChLibsUnixGTK">
214 The GLib/GTK+ libraries are available for many unix-like platforms and
218 If these libraries aren't already installed and also not available as a
219 package for your platform, you can get them at:
220 <ulink url="http://www.gtk.org"/>.
224 <section id="ChLibsWin32GTK">
225 <title>Win32 MSVC</title>
227 You can get the latest version at:
228 <ulink url="http://www.gimp.org/%7Etml/gimp/win32/downloads.html"/>.
233 <section id="ChLibsSNMP">
234 <title>Net SNMP (previously known as "ucd-snmp")</title>
236 "Various tools relating to the Simple Network Management Protocol"
239 <section id="ChLibsUnixSNMP">
242 If this library isn't already installed and also not available as a
243 package for your platform, you can get it at:
244 <ulink url="http://sourceforge.net/projects/net-snmp/"/>.
248 <section id="ChLibsWin32SNMP">
249 <title>Win32 MSVC</title>
251 You can get the latest version at:
252 <ulink url="http://sourceforge.net/projects/net-snmp/"/>.
259 <section id="ChLibsADNS">
260 <title>GNU ADNS (optional)</title>
262 "Advanced, easy to use, asynchronous-capable DNS client library and
266 <section id="ChLibsUnixADNS">
269 If this library isn't already installed and also not available as a
270 package for your platform, you can get it at:
271 <ulink url="http://www.gnu.org/software/adns/"/>.
275 <section id="ChLibsWin32ADNS">
276 <title>Win32 MSVC</title>
278 You can get the latest version at:
279 <ulink url="http://adns.jgaa.com/"/>
286 <section id="ChLibsPCRE">
287 <title>PCRE(optional)</title>
289 "Perl compatible regular expressions"
292 <section id="ChLibsUnixPCRE">
295 If this library isn't already installed and also not available as a
296 package for your platform, you can get it at:
297 <ulink url="http://www.pcre.org/"/>.
301 <section id="ChLibsWin32PCRE">
302 <title>Win32 MSVC</title>
304 You can get the latest version at:
305 <ulink url="http://gnuwin32.sourceforge.net/packages/pcre.htm"/>
312 <section id="ChLibsZlib">
313 <title>zlib (optional)</title>
315 "zlib is designed to be a
316 <ulink url="http://www.gzip.org/zlib/zlib_license.html">free</ulink>,
317 general-purpose, legally unencumbered -- that is, not covered by any
318 patents -- lossless data-compression library for use on virtually any computer
319 hardware and operating system."
322 <section id="ChLibsUnixZlib">
325 If this library isn't already installed and also not available as a
326 package for your platform, you can get it at:
327 <ulink url="http://www.gzip.org/zlib/"/>.
331 <section id="ChLibsWin32Zlib">
332 <title>Win32 MSVC</title>
334 You can get the latest version at:
335 <ulink url="http://gnuwin32.sourceforge.net/packages/zlib.htm"/>
338 (A version for the MSVC2003 compiler can be found at:
339 <ulink url="http://www.winimage.com/zLibDll/"/>)
346 <section id="ChLibsPcap">
347 <title>libpcap/WinPcap (optional)</title>
349 "packet capture library"
352 <section id="ChLibsLibpcap">
353 <title>Unix: libpcap</title>
355 If this library isn't already installed and also not available as a
356 package for your platform, you can get it at:
357 <ulink url="http://www.tcpdump.org/"/>.
361 <section id="ChLibsWinpPcap">
362 <title>Win32 MSVC: WinPcap</title>
364 You can get the "Windows packet capture library" at:
365 <ulink url="http://winpcap.polito.it/install/default.htm"/>
372 <section id="ChLibsWimp">
373 <title>Win32: GTK WIMP (optional) for GTK 2.x only</title>
375 "GTK-Wimp ("Windows impersonator") is a GTK theme that blends well into
376 the Windows desktop environment."
379 Wimp is only available for the GTK2.x versions at:
380 <ulink url="http://gtk-wimp.sourceforge.net/"/>.
387 <!-- End of EUG Chapter Libraries -->