From Tony Trinh:
[obnox/wireshark/wip.git] / README.macos
index 891a6fc4f341ddb1b21bbf89e7589d71442b8789..d88d40f4798af3e070f3d90561db26559dc480cb 100644 (file)
@@ -3,88 +3,39 @@ $Id$
 This file tries to help building Wireshark for Mac OS X (Wireshark does
 not work on earlier versions of Mac OS).
 
-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 releases starting with Panther 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
-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.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 and later releases, 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.
-
-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+.)
-
-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".
-
-For libpng, use scripts/makefile.darwin, not scripts/makefile.macosx.
-
-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:
-
-       if they're not installed, the configure script will fail;
-
-       if they are installed, the configure script will configure
-       Wireshark to build with them.
+You must have the developer tools (called Xcode) installed. Xcode 3 should
+be available on the install DVD; Xcode 4 is available for download from
+developer.apple.com and, for Lion, from the Mac App Store. See
+
+       http://guide.macports.org/chunked/installing.xcode.html
+
+for details.
+
+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
+releases starting with Panther can be used to build and run Wireshark.
+
+You must also have GLib and, if you want to build Wireshark as well as
+TShark, GTK+.  The macosx-setup.sh script can be used to download, patch
+as necessary, build, and install those libraries and the libraries on
+which they depend; it will, by default, also install other libraries
+that can be used by Wireshark and TShark.  The versions of libraries to
+download are specified by variables set early in the script; you can
+comment out the settings of optional libraries if you don't want them
+downloaded and installed.  Before running the macosx-setup.sh script,
+and before attempting to build Wireshark, make sure your PKG_CONFIG_PATH
+environment variable's setting includes both /usr/X11/lib/pkgconfig
+and /usr/local/lib/pkgconfig.
+
+After you have installed those libraries:
+
+If you are building from a Subversion tree, rather than from a source
+distribution tarball, run the autogen.sh script.  This should not be
+necessary if you're building from a source distribution tarball, unless
+you've added new source files to the Wireshark source.
+
+Then run the configure script, and run make to build Wireshark.
 
 If you upgrade the major release of Mac OS X on which you are building
 Wireshark, we advise that, before you do any builds after the upgrade,
@@ -99,7 +50,7 @@ you do, in the build directory:
 
 Then re-run the configure script and rebuild from scratch.
 
-On Snow Leopard, if you are building on a machine with a 64-bit
+On Snow Leopard (10.6), if you are building on a machine with a 64-bit
 processor (with the exception of the early Intel Core Duo and Intel Core
 Solo machines, all Apple machines with Intel processors have 64-bit
 processors), the C/C++/Objective-C compiler will build 64-bit by
@@ -110,11 +61,12 @@ This means that you will, by default, get a 64-bit version of Wireshark.
 One consequence of this is that, if you built and installed any required
 or optional libraries for Wireshark on an earlier release of Mac OS X,
 those are probably 32-bit versions of the libraries, and you will need
-to un-install them and rebuild them on Snow Leopard, to get 64-bit
+to un-install them and rebuild them on Snow Leopard (10.6), to get 64-bit
 versions.
 
 Some required and optional libraries require special attention if you
-install them by building from source code on Snow Leopard:
+install them by building from source code on Snow Leopard; the
+macosx-setup.sh script will handle that for you.
 
 GLib - the GLib configuration script determines whether the system's
 libiconv is GNU iconv or not by checking whether it has libiconv_open(),
@@ -122,7 +74,8 @@ and the compile will fail if that test doesn't correctly indicate
 whether libiconv is GNU iconv.  In Mac OS X, libiconv is GNU iconv, but
 the 64-bit version doesn't have libiconv_open(); a workaround for this
 is to replace all occurrences of "libiconv_open" with "iconv_open" in
-the configure script before running the script.
+the configure script before running the script.  The macosx-setup.sh
+setup script will patch GLib to work around this.
 
 libgcrypt - the libgcrypt configuration script attempts to determine
 which flavor of assembler-language routines to use based on the platform
@@ -132,16 +85,14 @@ determine the processor type; however, in Mac OS X, uname always reports
 64-bit processors, so it will attempt to assemble the 32-bit x86
 assembler-language routines, which will fail.  The workaround for this
 is to run the configure script with the --disable-asm argument, so that
-the assembler-language routines are not used.
+the assembler-language routines are not used.  The macosx-setup.sh will
+configure libgcrypt with that option.
 
-PortAudio - when compiling on Darwin (e.g., on Mac OS X), the configure
-script for the pa_stable_v19_20071207 version of PortAudio will cause
-certain platform-dependent build environment #defines to be set in the
+PortAudio - when compiling on Mac OS X, the configure script for the
+pa_stable_v19_20071207 version of PortAudio will cause certain
+platform-dependent build environment #defines to be set in the
 Makefile rules, and to cause a universal build to be done; those
 #defines will be incorrect for all but one of the architectures for
 which the build is being done, and that will cause a compile-time error
-on Snow Leopard.  The current snapshot version of PortAudio still
-defines those values in the Makefile, but it appears to use them in ways
-that don't cause build problems; its configure script also has a
-"--disable-mac-universal" flag that can cause the build not to be done
-universal.
+on Snow Leopard.  Newer versions don't have this problem; the
+macosx-setup.sh script downloads a newer version.