Note that you need X11 and the X11 developer headers and libraries
[obnox/wireshark/wip.git] / README.macos
1 $Id: README.macos,v 1.7 2004/03/23 03:19:06 guy Exp $
2
3 This file tries to help building Ethereal for Mac OS X (Ethereal does
4 not work on earlier versions of Mac OS).
5
6 In order to build Ethereal, you must have X11 and the X11 developer
7 headers and libraries installed; otherwise, you will not be able to
8 build or install GTK+, and will only be able to build Tethereal.  The
9 X11 and X11 SDK that come with Mac OS X 10.3[.x] are sufficient to build
10 and run Ethereal.
11
12 The changes to enable libwiretap and libethereal being built as shared
13 libraries have broken shared gtk1 builds on Mac OS X.  The GLib 1.x and
14 GTK+ 1.x release tarballs were built with an older version of libtool
15 that didn't support shared libraries on Mac OS X, so you can't build and
16 install them as shared libraries, but the shared-library build of
17 Ethereal requires GLib and GTK+, on Mac OS X, to be shared libraries. 
18 The alternative to build Ethereal as one big statically linked binary
19 isn't working either (and may never have worked on this OS).
20
21 The way out of this situation is to use gtk2 and associated libraries
22 which is known to work in this constellation:
23
24         GLib 2.4.0
25         Pango 1.4.0
26         GTK+ 2.4.0
27         ATK 1.6.0
28
29 and the corresponding dependencies, which you can download from the
30 "dependencies" subdirectory of the GTK+ download directory on the GTK+
31 FTP site:
32
33         pkg-config
34         jpegsrc
35         libpng
36         tiff
37
38 as well as GNU gettext, which isn't included in the directory of
39 dependencies on the GTK+ FTP site.
40
41 NOTE: you must set the PKG_CONFIG_PATH environment variable to include
42 "/usr/X11R6/lib/pkgconfig" (unless you've already set it, set it to
43 "/usr/X11R6/lib/pkgconfig") before running the Pango configuration
44 script, so that it can be configured to use the version of fontconfig
45 that comes with Mac OS X's X11.
46
47 NOTE: you must install the pkg-config dependency first; unless it is
48 installed, you cannot configure GLib or GTK+.  After that, you must
49 install GNU gettext; only after both of those have been built and
50 installed will you be able to configure GLib.  After configuring and
51 installing GLib, configure, build, and install Pango, ATK, jpegsrc,
52 libpng, tiff, and GTK+, in order.  (The exact order might not be
53 important, but you must configure, build, and install Pango and ATK
54 before configuring GTK+ and, if you want GTK+ to be able to use the
55 capabilities from the other libraries, you must configure, build, and
56 install them before configuring GTK+.)
57
58 You will need to do "make install-lib" for the JPEG library to install
59 its libraries - "make install" does not suffice.  You will also have to
60 do "sudo ranlib /usr/lib/libjpeg.a" after "make install-lib".
61
62 For libpng, use scripts/makefile.darwin, not scripts/makefile.macosx.
63
64 You will need to run Ethereal's configure script with the
65 "--enable-gtk2" argument - by default, it'll try to configure with GLib
66 1.2[.x] and GTK+ 1.2[.x], in which case:
67
68         if they're not installed, the configure script will fail;
69
70         if they are installed, the configure script will configure
71         Ethereal to build with them.
72
73 Another problem are compile errors in the wiretap directory like the
74 following:
75 pcap-util.c: In function `get_interface_list_findalldevs':
76 pcap-util.c:195: error: `pcap_if_t' undeclared (first use in this function)
77
78 On first sight, it would appear that Mac OS X 10.x ships with a weird
79 version of libpcap that includes pcap_findalldevs, but no definition for
80 pcap_if_t.
81
82 As it turns out, this isn't true for Mac OS X 10.3 through 10.3.2; they
83 ships with an 0.6[.x]-derived libpcap that doesn't include
84 "pcap_findalldevs()".  The problem in those releases is caused by a
85 Security Update - it updates the libpcap dylib to 0.8.1, but doesn't
86 update the header files (or the man page - and also doesn't update the
87 tcpdump man page to 3.8.1).
88
89 In addition, the Software Update to 10.3.3 and later will update the
90 libpcap dylib but not the header files.  If systems come pre-installed
91 with 10.3.3, they might have the correct header files (and man pages).
92
93 As a workaround, install pcap.h, pcap-bpf.h and pcap-stdinc.h from
94 tcpdump.org's libpcap 0.8.1 in "/usr/include".