forked from osmocom/wireshark
![Gerald Combs](/assets/img/avatar_default.png)
Change-Id: Idbf879f20448eea0b69e793271439dec877832e9 Reviewed-on: https://code.wireshark.org/review/4602 Reviewed-by: Gerald Combs <gerald@wireshark.org>
141 lines
6.8 KiB
Text
141 lines
6.8 KiB
Text
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 have 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.
|
|
|
|
You must also have GLib and, if you want to build Wireshark as well as
|
|
TShark. 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; otherwise, you will not be
|
|
able to build or install GTK+. The X11 and X11 SDK that come with Mac
|
|
OS X releases for releases from Panther to Lion can be used to build and
|
|
run Wireshark. Mountain Lion does 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 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 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).
|