On Windows, if we're running anything but plain Visual C++ 6 (including
[obnox/wireshark/wip.git] / README.macos
index 4339b692e16d2a12d0bf07450cfc048a178a80cc..ea0b1aef7c8193256c7be0797696d8130b3d44c0 100644 (file)
@@ -1,47 +1,87 @@
-$Id: README.macos,v 1.4 2004/03/21 22:55:59 guy Exp $
+$Id$
 
-This file tries to help building Ethereal for Mac OS X (Ethereal does
+This file tries to help building Wireshark for Mac OS X (Wireshark does
 not work on earlier versions of Mac OS).
 
-The changes to enable libwiretap and libethereal being built as shared
+In order to build Wireshark, you must have X11 and the X11 developer
+headers and libraries installed; otherwise, you will not be able to
+build or install GTK+, and will only be able to build TShark.  The X11
+and X11 SDK that come with Mac OS X Panther and Tiger are sufficient to
+build and run Wireshark.
+
+The changes to enable libwiretap and libwireshark being built as shared
 libraries have broken shared gtk1 builds on Mac OS X.  The GLib 1.x and
 GTK+ 1.x release tarballs were built with an older version of libtool
 that didn't support shared libraries on Mac OS X, so you can't build and
 install them as shared libraries, but the shared-library build of
-Ethereal requires GLib and GTK+, on Mac OS X, to be shared libraries. 
-The alternative to build Ethereal as one big statically linked binary
+Wireshark requires GLib and GTK+, on Mac OS X, to be shared libraries. 
+The alternative to build Wireshark as one big statically linked binary
 isn't working either (and may never have worked on this OS).
 
 The way out of this situation is to use gtk2 and associated libraries
 which is known to work in this constellation:
 
-        GLib 2.2.3
-        Pango 1.2.5
-        GTK+ 2.2.3
-        ATK 1.2.4
+        GLib 2.4.0
+        Pango 1.4.0
+        GTK+ 2.4.0
+        ATK 1.6.0
+
+and the corresponding dependency, which you can download from the
+"dependencies" subdirectory of the GTK+ download directory on the GTK+
+FTP site:
+
+       pkg-config
+
+as well as GNU gettext, which isn't included in the directory of
+dependencies on the GTK+ FTP site.
+
+GTK+ can also be configured to include code to load various sorts of
+images.  To do so, you would also need the following dependencies, also
+available from the "dependencies" subdirectory of the GTK+ download
+directory:
+
+       jpegsrc
+       libpng
+       tiff
+
+However, on Tiger, it appears that the libraries built and installed by
+those packages collide with libraries that come with the OS, so you
+might have to configure GTK+ not to support loading those images
+(Wireshark doesn't use the ability to load JPEG, PNG, or TIFF images), by
+using the "--without-libpng", "--without-libjpeg", and
+"---without-libtiff" flags when running "configure" in the GTK+ source
+directory.
+
+NOTE: you must set the PKG_CONFIG_PATH environment variable to include
+"/usr/X11R6/lib/pkgconfig" (unless you've already set it, set it to
+"/usr/X11R6/lib/pkgconfig") before running the Pango configuration
+script, so that it can be configured to use the version of fontconfig
+that comes with Mac OS X's X11. This is also needed for the GTK+
+configuration.
 
-and the corresponding dependencies. In case you also have gtk1 installed,
-you will need to run configure with the "--enable-gtk2" argument.
+NOTE: you must install the pkg-config dependency first; unless it is
+installed, you cannot configure GLib or GTK+.  After that, you must
+install GNU gettext; only after both of those have been built and
+installed will you be able to configure GLib.  After configuring and
+installing GLib, configure, build, and install Pango, ATK, jpegsrc,
+libpng, tiff, and GTK+, in order.  (The exact order might not be
+important, but you must configure, build, and install Pango and ATK
+before configuring GTK+ and, if you want GTK+ to be able to use the
+capabilities from the other libraries, you must configure, build, and
+install them before configuring GTK+.)
 
-Another problem are compile errors in the wiretap directory like the
-following:
-pcap-util.c: In function `get_interface_list_findalldevs':
-pcap-util.c:195: error: `pcap_if_t' undeclared (first use in this function)
+You will need to do "make install-lib" for the JPEG library to install
+its libraries - "make install" does not suffice.  You will also have to
+do "sudo ranlib /usr/local/lib/libjpeg.a" after "make install-lib".
 
-On first sight, it would appear that Mac OS X 10.x ships with a weird
-version of libpcap that includes pcap_findalldevs, but no definition for
-pcap_if_t.
+For libpng, use scripts/makefile.darwin, not scripts/makefile.macosx.
 
-As it turns out, this isn't true for Mac OS X 10.3 through 10.3.2; they
-ships with an 0.6[.x]-derived libpcap that doesn't include
-"pcap_findalldevs()".  The problem in those releases is caused by a
-Security Update - it updates the libpcap dylib to 0.8.1, but doesn't
-update the header files (or the man page - and also doesn't update the
-tcpdump man page to 3.8.1).
+Finally run the configure script. By default it will use
+the Glib2 and GTK+2 libraries. If you run Wireshark's configure script
+with the "--disable-gtk2" argument it'll try to configure with GLib
+1.2[.x] and GTK+ 1.2[.x], in which case:
 
-In addition, the Software Update to 10.3.3 and later will update the
-libpcap dylib but not the header files.  If systems come pre-installed
-with 10.3.3, they might have the correct header files (and man pages).
+       if they're not installed, the configure script will fail;
 
-As a workaround, install pcap.h, pcap-bpf.h and pcap-stdinc.h from
-tcpdump.org's libpcap 0.8.1 in "/usr/include".
+       if they are installed, the configure script will configure
+       Wireshark to build with them.