2017-04-05 19:15:27 +00:00
|
|
|
This file tries to help building Wireshark for macOS (The Operating
|
|
|
|
System Formerly Known As Mac OS X And Then OS X) (Wireshark does not
|
|
|
|
work on the classic Mac OS).
|
2004-03-15 02:04:08 +00:00
|
|
|
|
2012-09-08 03:10:03 +00:00
|
|
|
You must have the developer tools (called Xcode) installed. For
|
2017-04-05 19:15:27 +00:00
|
|
|
versions of macOS up to and including Snow Leopard, Xcode 3 should be
|
2012-09-08 03:10:03 +00:00
|
|
|
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
|
2011-06-19 19:27:45 +00:00
|
|
|
|
|
|
|
http://guide.macports.org/chunked/installing.xcode.html
|
|
|
|
|
2013-01-05 19:42:04 +00:00
|
|
|
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.
|
2004-03-23 03:19:06 +00:00
|
|
|
|
2015-11-17 22:34:45 +00:00
|
|
|
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
|
2012-09-08 03:10:03 +00:00
|
|
|
|
2014-10-10 22:03:26 +00:00
|
|
|
https://www.qt.io/download-open-source/
|
|
|
|
|
2017-08-02 07:39:58 +00:00
|
|
|
or use the tools/macos-setup.sh script described below.
|
|
|
|
|
|
|
|
The tools/macos-setup.sh script can be used to download, patch as
|
|
|
|
necessary, build as necessary, 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
|
|
|
|
tools/macos-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.
|
|
|
|
|
|
|
|
The tools/macos-setup.sh script must be run from the top-level source
|
|
|
|
directory.
|
2014-10-10 22:03:26 +00:00
|
|
|
|
|
|
|
If you wish to build the legacy (GTK+) UI you must have X11 and the X11
|
2015-11-17 22:34:45 +00:00
|
|
|
developer headers and libraries installed, as well as the Pango, ATK,
|
|
|
|
and GTK+ libraries; otherwise, you will not be able to build or install
|
2017-04-05 19:15:27 +00:00
|
|
|
GTK+. The X11 and X11 SDK that come with macOS releases for releases
|
2015-11-17 22:34:45 +00:00
|
|
|
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
|
2014-10-10 22:03:26 +00:00
|
|
|
|
|
|
|
http://xquartz.macosforge.org/
|
|
|
|
|
2011-07-15 21:48:02 +00:00
|
|
|
After you have installed those libraries:
|
2004-03-22 23:40:44 +00:00
|
|
|
|
2014-06-11 23:56:55 +00:00
|
|
|
If you are building from a Git tree, rather than from a source
|
2011-06-19 17:34:22 +00:00
|
|
|
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.
|
2005-06-19 19:17:15 +00:00
|
|
|
|
2011-06-19 17:34:22 +00:00
|
|
|
Then run the configure script, and run make to build Wireshark.
|
2009-12-20 22:46:07 +00:00
|
|
|
|
2017-04-05 19:15:27 +00:00
|
|
|
If you upgrade the major release of macOS on which you are building
|
2009-12-20 22:46:07 +00:00
|
|
|
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
|
|
|
|
|
2014-06-11 23:56:55 +00:00
|
|
|
If you are building from Git:
|
2009-12-20 22:46:07 +00:00
|
|
|
make maintainer-clean
|
|
|
|
./autogen.sh
|
|
|
|
|
|
|
|
Then re-run the configure script and rebuild from scratch.
|
|
|
|
|
2012-09-08 03:10:03 +00:00
|
|
|
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.
|
2009-12-20 22:46:07 +00:00
|
|
|
|
|
|
|
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
|
2017-04-05 19:15:27 +00:00
|
|
|
or optional libraries for Wireshark on an earlier release of macOS, those
|
2012-09-08 03:10:03 +00:00
|
|
|
are probably 32-bit versions of the libraries, and you will need to
|
2017-04-05 19:15:27 +00:00
|
|
|
un-install them and rebuild them on your current version of macOS, to get
|
2012-09-08 03:10:03 +00:00
|
|
|
64-bit versions.
|
2009-12-20 22:46:07 +00:00
|
|
|
|
|
|
|
Some required and optional libraries require special attention if you
|
2012-09-08 03:10:03 +00:00
|
|
|
install them by building from source code on Snow Leopard and later
|
2017-08-02 07:39:58 +00:00
|
|
|
releases; the tools/macos-setup.sh script will handle that for you.
|
2009-12-20 22:46:07 +00:00
|
|
|
|
|
|
|
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
|
2017-04-05 19:15:27 +00:00
|
|
|
whether libiconv is GNU iconv. In macOS, libiconv is GNU iconv, but the
|
2012-09-08 03:10:03 +00:00
|
|
|
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
|
2017-08-02 07:39:58 +00:00
|
|
|
configure script before running the script. The tools/macos-setup.sh
|
|
|
|
setup script will patch GLib to work around this.
|
2012-09-08 03:10:03 +00:00
|
|
|
|
|
|
|
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
|
2017-08-02 07:39:58 +00:00
|
|
|
tools/macos-setup.sh setup script will, on Mountain Lion and later,
|
|
|
|
configure GTK+ with the CUPS printing backend disabled.
|
2009-12-20 22:46:07 +00:00
|
|
|
|
|
|
|
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
|
2017-04-05 19:15:27 +00:00
|
|
|
determine the processor type; however, in macOS, uname always reports
|
2009-12-20 22:46:07 +00:00
|
|
|
"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
|
2017-08-02 07:39:58 +00:00
|
|
|
the assembler-language routines are not used. The tools/macos-setup.sh
|
|
|
|
will configure libgcrypt with that option.
|
2009-12-20 22:46:07 +00:00
|
|
|
|
2017-04-05 19:15:27 +00:00
|
|
|
PortAudio - when compiling on macOS, the configure script for the
|
2011-06-19 18:51:11 +00:00
|
|
|
pa_stable_v19_20071207 version of PortAudio will cause certain
|
2012-09-08 03:10:03 +00:00
|
|
|
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
|
2017-08-02 07:39:58 +00:00
|
|
|
being done, and that will cause a compile-time error on Snow Leopard.
|
2012-09-08 03:10:03 +00:00
|
|
|
Newer versions don't have this problem, but still fail to build on Lion
|
2017-08-02 07:39:58 +00:00
|
|
|
if a universal build is attempted. The tools/macos-setup.sh script
|
|
|
|
downloads a newer version, and also suppresses the universal build.
|
2012-09-08 03:10:03 +00:00
|
|
|
|
|
|
|
GeoIP - Their man pages "helpfully" have an ISO 8859-1 copyright symbol
|
2017-08-02 07:39:58 +00:00
|
|
|
in the copyright notice, but macOS's default character encoding is
|
|
|
|
UTF-8. sed on Mountain Lion barfs at the "illegal character sequence"
|
2012-09-08 03:10:03 +00:00
|
|
|
represented by an ISO 8859-1 copyright symbol, as it's not a valid UTF-8
|
2017-08-02 07:39:58 +00:00
|
|
|
sequence. The tools/macos-setup.sh script uses iconv to convert the man
|
|
|
|
page files from ISO 8859-1 to UTF-8.
|
2013-01-05 19:42:04 +00:00
|
|
|
|
|
|
|
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).
|