X-Git-Url: http://git.samba.org/samba.git/?p=obnox%2Fwireshark%2Fwip.git;a=blobdiff_plain;f=README.macos;h=d88d40f4798af3e070f3d90561db26559dc480cb;hp=5bb5916f69f7b717f89b07dcaa81e08d8967f1cb;hb=664281be70b6a0dcd983a9f28ca595a64e0dd479;hpb=41d1d54f9ae44235664f155efd6936500213c502 diff --git a/README.macos b/README.macos index 5bb5916f69..d88d40f479 100644 --- a/README.macos +++ b/README.macos @@ -1,81 +1,98 @@ -$Id: README.macos,v 1.6 2004/03/22 23:50:43 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 -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 -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 - -(GTK+ 2.4 won't work, as it requires Pango 1.4 with fontconfig support, -and Pango 1.4 refuses to handle a fontconfig that pkg-config doesn't -know about, such as the fontconfig in Panther) and the corresponding -dependencies: - - pkg-config - jpegsrc - libpng - tiff - -as well as GNU gettext, which isn't included in the directory of -dependencies on the GTK+ FTP site. 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/lib/libjpeg.a" after "make install-lib". - -For libpng, use scripts/makefile.darwin, not scripts/makefile.macosx. - -You will need to run Ethereal's configure script with the -"--enable-gtk2" argument - by default, 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 - Ethereal to build with them. - -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) - -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. - -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). - -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). - -As a workaround, install pcap.h, pcap-bpf.h and pcap-stdinc.h from -tcpdump.org's libpcap 0.8.1 in "/usr/include". +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, +you do, in the build directory: + + If you are building from a release tarball: + make distclean + + If you are building from SVN: + make maintainer-clean + ./autogen.sh + +Then re-run the configure script and rebuild from scratch. + +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 +default. + +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 (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; 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(), +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 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 +type determined by standard autoconf code. That code uses uname to +determine the processor type; however, in Mac OS X, uname always reports +"i386" as the processor type on Intel machines, even Intel machines with +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 macosx-setup.sh will +configure libgcrypt with that option. + +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. Newer versions don't have this problem; the +macosx-setup.sh script downloads a newer version.