Add a #define for the wildcard pattern that matches all files.
[metze/wireshark/wip.git] / README.macos
index 5bb5916f69f7b717f89b07dcaa81e08d8967f1cb..47f4a6b231c5c0610b4c5f1e12eb1645cac5a2f2 100644 (file)
-$Id: README.macos,v 1.6 2004/03/22 23:50:43 guy Exp $
-
-This file tries to help building Ethereal for Mac OS X (Ethereal 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".
+This file tries to help building Wireshark for (Mac) OS X (Wireshark
+does not work on earlier versions of Mac OS).
+
+You must have the developer tools (called Xcode) installed.  For
+versions of OS X up to and including Snow Leopard, Xcode 3 should be
+available on the install DVD; Xcode 4 is available for download from
+developer.apple.com and, for Lion and later releases, from the Mac App
+Store.  See
+
+       http://guide.macports.org/chunked/installing.xcode.html
+
+for details.  For Xcode 4, you will need to install the command-line
+tools; select Preferences from the Xcode menu, select Downloads in the
+Preferences window, and install Command Line Tools.
+
+You must also have GLib and, if you want to build Wireshark as well as
+TShark, you must have also Qt installed.  You can download precompiled
+Qt packages and source code from
+
+       https://www.qt.io/download-open-source/
+
+or use the macosx-setup.sh script described below.
+
+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.
+
+If you wish to build the legacy (GTK+) UI you must have X11 and the X11
+developer headers and libraries installed, as well as the Pango, ATK,
+and GTK+ libraries; otherwise, you will not be able to build or install
+GTK+.  The X11 and X11 SDK that come with OS X releases for releases
+from Panther to Lion can be used to build and run Wireshark.  Mountain
+Lion and later do not include X11; you should install X11 from
+elsewhere, such as
+
+       http://xquartz.macosforge.org/
+
+After you have installed those libraries:
+
+If you are building from a Git 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 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 Git:
+       make maintainer-clean
+       ./autogen.sh
+
+Then re-run the configure script and rebuild from scratch.
+
+On Snow Leopard (10.6) and later releases, 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 OS X, those
+are probably 32-bit versions of the libraries, and you will need to
+un-install them and rebuild them on your current version of OS X, 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 and later
+releases; 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 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.
+
+GTK+ - GTK+ 2.24.10, at least, doesn't build on Mountain Lion with the
+CUPS printing backend - either the CUPS API changed incompatibly or the
+backend was depending on non-API implementation details.  The
+macosx-setup.sh setup script will, on Mountain Lion and later, configure
+GTK+ with the CUPS printing backend disabled.
+
+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 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 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, but still fail to build on Lion
+if a universal build is attempted.  The macosx-setup.sh script downloads
+a newer version, and also suppresses the universal build.
+
+GeoIP - Their man pages "helpfully" have an ISO 8859-1 copyright symbol
+in the copyright notice, but OS X's default character encoding is UTF-8. 
+sed on Mountain Lion barfs at the "illegal character sequence"
+represented by an ISO 8859-1 copyright symbol, as it's not a valid UTF-8
+sequence.  The macosx-setup.sh script uses iconv to convert the man page
+files from ISO 8859-1 to UTF-8.
+
+If you want to build Wireshark installer packages on a system that
+doesn't include Xcode 3.x or earlier, you will need to install some
+additional tools.  From the Xcode menu, select the Open Developer Tool
+menu, and then select More Developer Tools... from that menu.  That will
+open up a page on the Apple Developer Connection Web site; you may need
+a developer account to download the additional tools.  Download the
+Auxiliary Tools for Xcode package; when the dmg opens, drag all its
+contents to the Contents/Applications subdirectory of the Xcode.app
+directory (normally /Applications/Xcode.app/Contents/Applications); then
+copy .../Contents/Applications/PackageMaker.app/Contents/MacOS/PackageMaker
+to /usr/bin/packagemaker (the PackageMaker app, when run from the
+command line rather than as a double-clicked app, is the packagemaker
+command).