Difference between revisions of "BuildingMacOSX"

From Mumble Wiki
Jump to: navigation, search
(Introduction)
(Update the Mac OS X build instructions. (Note: work in progress :)))
Line 3: Line 3:
 
== Introduction ==
 
== Introduction ==
  
This guide describes the method to get a fully working and redistributable version of Mumble and Murmur that works across both Tiger (10.4) and Leopard (10.5) both on Intel and PowerPC Macs. These are the steps used to build the official Mumble releases on Mac OS X.
+
This guide describes the method to get a fully working and redistributable version of Mumble and Murmur that uses the Cocoa version of Qt 4. This build will work on both Intel and PowerPC Macs on Mac OS X 10.5 (Leopard).
  
This means that the instructions are a little more complicated than they would be if you were just building for, say, Leopard x86. What it boils down to is this:
+
If you don't want a universal build, you can achieve this by passing CONFIG+='no-universal' to qmake.
 
 
* We build all libraries as Universal Binaries for both i386 and ppc.
 
* We build against the 10.4 (Tiger) SDK, even on Leopard, to make sure our binaries run on Tiger, as well as Leopard.
 
 
 
If you are just interested in building an optimized binary for your exact architecture and operating system, many of the instructions below can be greatly simplified:
 
 
 
* Do not pass custom CFLAGS or LDFLAGS to the configure scripts of the various dependencies.
 
* Do not set the MAC_OSX_DEPLOYMENT_TARGET.
 
* Do not pass the '-sdk' or '-universal' parameters to Qt's configure script.
 
 
 
Also, by default Mumble expects its build environment on Mac OS X to be universal. If you're not building universal binaries, pass CONFIG+='no-universal' to qmake when building Mumble.
 
  
 
== Dependencies ==
 
== Dependencies ==
  
 
To build Mumble you will need:
 
To build Mumble you will need:
* Mac OS X 10.4 (Tiger) or 10.5 (Leopard)
+
* Mac OS X 10.5 (Leopard)
 
* XCode (http://developer.apple.com/tools/xcode/, or from your Mac OS X install disks)
 
* XCode (http://developer.apple.com/tools/xcode/, or from your Mac OS X install disks)
 
* Git (http://www.git-scm.org/)
 
* Git (http://www.git-scm.org/)
 
* pkg-config (http://pkg-config.freedesktop.org/)
 
* pkg-config (http://pkg-config.freedesktop.org/)
* Expat (http://expat.sourceforge.net/)
 
 
* DBus (http://dbus.freedesktop.org/)
 
* DBus (http://dbus.freedesktop.org/)
* Qt 4.5.0 (http://www.qtsoftware.com/developer/downloads/qt/mac)
+
* Qt 4.5.2 (http://www.qtsoftware.com/developer/downloads/qt/mac)
 
* Boost (http://www.boost.org/)
 
* Boost (http://www.boost.org/)
 
* PortAudio (http://www.portaudio.com/)
 
* PortAudio (http://www.portaudio.com/)
* libogg (http://xiph.org/)
+
* libsoundfile (http://www.mega-nerd.com/libsndfile/)
 
* Protocol Buffers (http://code.google.com/p/protobuf/)
 
* Protocol Buffers (http://code.google.com/p/protobuf/)
 +
* Berkeley DB (http://www.oracle.com/technology/products/berkeley-db/index.html) (Murmur only)
 +
* mcpp (http://www.sourceforge.net/projects/mcpp/) (Murmur only)
 +
* ZeroC Ice (http://www.zeroc.com) (Murmur only)
 +
 +
=== Setting up the build environment ===
 +
 +
#!/bin/bash
 +
 +
# C compiler
 +
export CC="$(xcode-select -print-path)/usr/bin/gcc-4.2"
 +
export CXX="$(xcode-select -print-path)/usr/bin/g++-4.2"
 +
 +
# Mac OS X SDK stuff
 +
export MACOSX_DEPLOYMENT_TARGET="10.5"
 +
export OSX_SDK="/Developer/SDKs/MacOSX10.5.sdk"
 +
 +
# Autotools, etc. setup
 +
export OSX_CFLAGS="-isysroot $OSX_SDK -arch ppc -arch i386"
 +
export OSX_LDFLAGS="-Wl,-syslibroot,$OSX_SDK -arch ppc -arch i386"
 +
export CFLAGS=$OSX_CFLAGS
 +
export CXXFLAGS=$OSX_CFLAGS
 +
export LDFLAGS=$OSX_LDFLAGS
 +
 +
# Mumble stuff
 +
export MUMBLE_PREFIX=/opt/mumble-1.2/
 +
 +
# pkgconfig, PATH, etc.
 +
export PKG_CONFIG_PATH=/usr/lib/pkgconfig/:$MUMBLE_PREFIX/lib/pkgconfig/:$PKG_CONFIG_PATH
 +
export PATH=$MUMBLE_PREFIX/qt-framework-4.5.2/bin/:$PATH
 +
export PATH=$MUMBLE_PREFIX/bin:$PATH
 +
 +
# ice path
 +
ICE_PREFIX=$MUMBLE_PREFIX/ice-3.3.1/
 +
export PATH=$ICE_PREFIX/bin/:$PATH
 +
 +
echo Now in Mumble 1.2 build environment
 +
 +
Remember to source the above script before doing any of the steps listed below.
  
 
=== Installing or building pkg-config ===
 
=== Installing or building pkg-config ===
Line 58: Line 84:
 
* Install it via MacPorts: port install git-core
 
* Install it via MacPorts: port install git-core
 
* Fetch the git-osx-installer package from Google Code: http://code.google.com/p/git-osx-installer/downloads/list?can=3
 
* Fetch the git-osx-installer package from Google Code: http://code.google.com/p/git-osx-installer/downloads/list?can=3
 
=== Building Expat ===
 
 
DBus depends on an XML parser, and fails to build with the libxml library included with Mac OS X, so we use Expat instead.
 
 
Grab version 2.0.1 from SourceForge: http://sourceforge.net/project/showfiles.php?group_id=10127 and unpack it.
 
 
To build it:
 
 
export MACOSX_DEPLOYMENT_TARGET="10.4"
 
export OSX_SDK="/Developer/SDKs/MacOSX10.4u.sdk"
 
export OSX_CFLAGS="-isysroot $OSX_SDK -arch ppc -arch i386"
 
export OSX_LDFLAGS="-Wl,-syslibroot,$OSX_SDK -arch ppc -arch i386"
 
CFLAGS="$OSX_CFLAGS" LDFLAGS="$OSX_LDFLAGS" ./configure --prefix=/opt/mumble/expat/
 
make
 
sudo make install
 
  
 
=== Building DBus ===
 
=== Building DBus ===
Line 81: Line 91:
 
Unpack it, and build it:
 
Unpack it, and build it:
  
  export MACOSX_DEPLOYMENT_TARGET="10.4"
+
  ./configure --prefix=/opt/mumble/dbus/ --without-x --with-xml=expat --disable-dependency-tracking
export OSX_SDK="/Developer/SDKs/MacOSX10.4u.sdk"
 
export OSX_CFLAGS="-isysroot $OSX_SDK -arch ppc -arch i386"
 
export OSX_LDFLAGS="-Wl,-syslibroot,$OSX_SDK -arch ppc -arch i386"
 
CFLAGS="$OSX_CFLAGS -I/opt/mumble/expat/include/" LDFLAGS="$OSX_LDFLAGS -L/opt/mumble/expat/lib/" ./configure --prefix=/opt/mumble/dbus/ --without-x --with-xml=expat --disable-dependency-tracking
 
 
  make
 
  make
  sudo make install
+
  make install
 
 
After building and install DBus, you should make sure the /opt/mumble/dbus/lib/pkgconfig/ directory is in your PKG_CONFIG_PATH, so Qt is able to pick it up.
 
 
 
=== Installing MySQL ===
 
 
 
We want users to be able to use a MySQL database with their Murmur installation, but we also want to make sure they can do that without too much hassle. Therefore we link against MySQL's official 10.4 universal binaries, so people can just use the official MySQL packages to get their database set up.
 
 
 
Grab the latest Universal .tar.gz package for 10.4 from MySQL's website: http://dev.mysql.com/downloads/mysql/5.1.html#macosx
 
 
 
To install it:
 
 
 
cd /opt/mumble/
 
sudo tar -zxf path/to/mysql-5.1.31-osx10.4-universal.tar.gz
 
sudo ln -sf mysql-5.0.51-osx10.4-universal mysql
 
cd mysql/lib/
 
d=`pwd`; for i in `ls *.dylib`; do install_name_tool -id $d/$i $i; done
 
  
 
=== Building Qt ===
 
=== Building Qt ===
Line 109: Line 99:
 
Download an unpack Qt.
 
Download an unpack Qt.
  
Since we want our build to be as compatible as possible, we will build against the 10.4 (Tiger) SDK (even on Leopard). To build Qt, run:
+
unset CFLAGS
  export MACOSX_DEPLOYMENT_TARGET="10.4"
+
unset CXXFLAGS
  ./configure -debug-and-release -no-exceptions -universal -qt-sql-sqlite -qt-sql-mysql -qt-libpng -qt-libjpeg -qdbus -no-phonon -no-phonon-backend -no-webkit -no-qt3support -sdk /Developer/SDKs/MacOSX10.4u.sdk/ -prefix /opt/mumble/qt-framework-4.5.0/ -I /opt/mumble/mysql/include/ -L /opt/mumble/mysql/lib/
+
  unset LDFLAGS
in the Qt directory.
+
  ./configure -debug-and-release -no-exceptions -universal -cocoa -qt-sql-sqlite -system-zlib -qt-gif -qt-libpng -qt-libjpeg -qdbus -webkit -phonon -phonon-backend -no-qt3support -sdk $OSX_SDK -prefix $MUMBLE_PREFIX/qt- framework-4.5.2/ -opensource
If configure runs sucessfully, continue by executing:
 
 
  make
 
  make
 
  sudo make install
 
  sudo make install
 
+
export CFLAGS=$OSX_CFLAGS
To make the Qt tools visible add the following line to your ''~/.profile'' file:
+
export CXXFLAGS=$OSX_CFLAGS
  export PATH=$PATH:/opt/mumble/qt-framework-4.5.0/bin/
+
  export LDFLAGS=$OSX_LDFLAGS
  
 
=== Installing Boost ===
 
=== Installing Boost ===
Line 124: Line 113:
 
As Mumble only uses some Boost headers you do not have to build Boost from scratch - you just need to unpack it.
 
As Mumble only uses some Boost headers you do not have to build Boost from scratch - you just need to unpack it.
  
It is advisible to unpack Boost to /usr/local/include/, so the Boost headers will be available in /usr/local/include/boost-1_34_1/, since Mumble will look for the headers in this place by default.
+
It is advisible to unpack Boost to $MUMBLE_PREFIX/include/, so the Boost headers will be available in $MUMBLE_PREFIX/include/boost-1_39_1/, since Mumble will look for the headers in this place by default.
 
 
If you have MacPorts installed, you can install Boost by executing
 
sudo port install boost
 
 
 
Mumble will also look for the headers in /opt/local/include/boost-1_34_1/ - the default install location for MacPorts.
 
  
 
=== Building PortAudio ===
 
=== Building PortAudio ===
Line 137: Line 121:
 
http://portaudio.com/archives/pa_snapshot.tar.gz
 
http://portaudio.com/archives/pa_snapshot.tar.gz
  
Build and install it:
+
Build and install:
  
  export MACOSX_DEPLOYMENT_TARGET="10.4"
+
  wget http://www.scorpius-project.org/mumble-stuff/portaudio-fix.patch
export OSX_SDK="/Developer/SDKs/MacOSX10.4u.sdk"
+
  patch -p1 < portaudio-fix.patch
export OSX_CFLAGS="-isysroot $OSX_SDK -arch ppc -arch i386"
+
  ./configure --disable-mac-universal --disable-dependency-tracking --prefix=$MUMBLE_PREFIX
  export OSX_LDFLAGS="-Wl,-syslibroot,$OSX_SDK -arch ppc -arch i386"
 
  CFLAGS="-O2 -g $OSX_CFLAGS" LDFLAGS="$OSX_LDFLAGS" ./configure --disable-mac-universal --disable-dependency-tracking --prefix=/opt/mumble/portaudio/
 
 
  make
 
  make
 
  sudo make install
 
  sudo make install
  
=== Building libogg ===
+
=== Building libsndfile ===
 +
 
 +
Grab the latest version. Build:
 +
 
 +
export CFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk -arch ppc"
 +
export CXXFLAGS=$CFLAGS
 +
export LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk -arch ppc"
 +
./configure --prefix=$(pwd)/ppc-root/
 +
make
 +
make install
 +
make distclean
 +
export CFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk -arch i386"
 +
export CXXFLAGS=$CFLAGS
 +
export LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk -arch i386"
 +
./configure --prefix=$MUMBLE_PREFIX
 +
make
 +
sudomake install
 +
lipo -create -arch ppc ppc-root/lib/libsndfile.1.dylib -arch i386 $MUMBLE_PREFIX/lib/libsndfile.1.dylib -output $MUMBLE_PREFIX/lib/libsndfile.1.dylib
 +
export CFLAGS=$OSX_CFLAGS
 +
export CXXFLAGS=$CFLAGS
 +
export LDFLAGS=$OSX_LDFLAGS
  
Download and extract the latest version of libogg. As of this writing, that is libogg 1.1.3.
+
=== Building Protocol Buffers ===
  
http://xiph.org/downloads/
+
Grab the latest version of Protocol Buffers from its Google Code project: http://code.google.com/p/protobuf/. As of this writing, that is version 2.0.3.
 +
Direct link: http://protobuf.googlecode.com/files/protobuf-2.0.3.tar.bz2
  
 
Build and install it:
 
Build and install it:
  
  export MACOSX_DEPLOYMENT_TARGET="10.4"
+
  ./configure --disable-dependency-tracking --prefix=$MUMBLE_PREFIX
export OSX_SDK="/Developer/SDKs/MacOSX10.4u.sdk"
 
export OSX_CFLAGS="-isysroot $OSX_SDK -arch ppc -arch i386"
 
export OSX_LDFLAGS="-Wl,-syslibroot,$OSX_SDK -arch ppc -arch i386"
 
CFLAGS="$OSX_CFLAGS" LDFLAGS="$OSX_LDFLAGS" ./configure --prefix=/opt/mumble/libogg/ --disable-dependency-tracking
 
sed -i -e 's,CC \-dynamiclib,CC \-dynamiclib \\$OSX_LDFLAGS,' libtool
 
 
  make
 
  make
 
  sudo make install
 
  sudo make install
  
=== Building Protocol Buffers ===
+
=== Logitech LCD SDK (optional) ===
 +
 
 +
Grab it, install it. Build it:
 +
 
 +
sudo mkdir -p $MUMBLE_PREFIX/lglcd-sdk/
 +
sudo tar -zxvf /Applications/Logitech/GamePanel\ Software/LCD\ Manager/LCDSDK/LCDSDK.tgz -C $MUMBLE_PREFIX/lglcd-sdk/
 +
sudo chmod -vR +r $MUMBLE_PREFIX/lglcd-sdk/
  
Grab the latest version of Protocol Buffers from its Google Code project: http://code.google.com/p/protobuf/. As of this writing, that is version 2.0.3.
+
=== libmcpp ===
Direct link: http://protobuf.googlecode.com/files/protobuf-2.0.3.tar.bz2
 
  
Build and install it:
+
Grab it. Build it:
  
  export MACOSX_DEPLOYMENT_TARGET="10.4"
+
  ./configure --disable-dependency-tracking --prefix=$MUMBLE_PREFIX --enable-mcpplib
export OSX_SDK="/Developer/SDKs/MacOSX10.4u.sdk"
 
export OSX_CFLAGS="-isysroot $OSX_SDK -arch ppc -arch i386"
 
export OSX_LDFLAGS="-Wl,-syslibroot,$OSX_SDK -arch ppc -arch i386"
 
CFLAGS="$OSX_CFLAGS" CXXFLAGS="$OSX_CFLAGS" LDFLAGS="$OSX_LDFLAGS" ./configure --prefix=/opt/mumble/protobuf/ --disable-dependency-tracking
 
 
  make
 
  make
 
  sudo make install
 
  sudo make install
  
Also, make sure that /opt/mumble/protobuf/bin/ is in your PATH before you start your Mumble build.
+
=== Berkeley DB ===
 +
 
 +
Grab it. Build it:
 +
 
 +
for i in 1 2 3 4; do wget http://www.oracle.com/technology/products/berkeley-db/db/update/4.7.25/patch.4.7.25.$i; done
 +
for i in 1 2 3; do patch -p0 < patch.4.7.25.$i; done
 +
patch -p1 < patch.4.7.25.4
 +
cd build_unix
 +
../dist/configure --disable-dependency-tracking --prefix=$MUMBLE_PREFIX --enable-cxx
 +
 
 +
=== ZeroC Ice ===
 +
 
 +
Grab it. Build it:
 +
 
 +
make prefix=$ICE_PREFIX embedded_runpath_prefix=$ICE_PREFIX OPTIMIZE=yes CXX="$CXX $OSX_CFLAGS" CC="$CC $OSX_CFLAGS" DB_HOME=$MUMBLE_PREFIX MCPP_HOME=$MUMBLE_PREFIX
 +
sudo make prefix=$ICE_PREFIX embedded_runpath_prefix=$ICE_PREFIX OPTIMIZE=yes CXX="$CXX $OSX_CFLAGS" CC="$CC $OSX_CFLAGS" DB_HOME=$MUMBLE_PREFIX MCPP_HOME=$MUMBLE_PREFIX install
  
 
== Building Mumble ==
 
== Building Mumble ==
Line 192: Line 206:
 
To build the client, execute:
 
To build the client, execute:
  
export PKG_CONFIG_PATH=/opt/mumble/portaudio/lib/pkgconfig/:$PKG_CONFIG_PATH
 
 
  qmake main.pro CONFIG+='release'
 
  qmake main.pro CONFIG+='release'
 
  make
 
  make
 
Note: If you didn't install Boost in the advised directory or through MacPorts, you should add your own include path to src/mumble/mumble.pro (search for boost).
 
  
 
If everything went well, you should now have a Mumble.app application bundle in the release directory of the root of the source tree.
 
If everything went well, you should now have a Mumble.app application bundle in the release directory of the root of the source tree.

Revision as of 21:05, 15 July 2009

Note: This guide is written for the current git HEAD (Mumble version 1.2.X). If you want instructions for 1.1.X, please check the history for this page.

Introduction

This guide describes the method to get a fully working and redistributable version of Mumble and Murmur that uses the Cocoa version of Qt 4. This build will work on both Intel and PowerPC Macs on Mac OS X 10.5 (Leopard).

If you don't want a universal build, you can achieve this by passing CONFIG+='no-universal' to qmake.

Dependencies

To build Mumble you will need:

Setting up the build environment

#!/bin/bash

# C compiler
export CC="$(xcode-select -print-path)/usr/bin/gcc-4.2"
export CXX="$(xcode-select -print-path)/usr/bin/g++-4.2"

# Mac OS X SDK stuff
export MACOSX_DEPLOYMENT_TARGET="10.5"
export OSX_SDK="/Developer/SDKs/MacOSX10.5.sdk"

# Autotools, etc. setup
export OSX_CFLAGS="-isysroot $OSX_SDK -arch ppc -arch i386"
export OSX_LDFLAGS="-Wl,-syslibroot,$OSX_SDK -arch ppc -arch i386"
export CFLAGS=$OSX_CFLAGS
export CXXFLAGS=$OSX_CFLAGS
export LDFLAGS=$OSX_LDFLAGS

# Mumble stuff
export MUMBLE_PREFIX=/opt/mumble-1.2/

# pkgconfig, PATH, etc.
export PKG_CONFIG_PATH=/usr/lib/pkgconfig/:$MUMBLE_PREFIX/lib/pkgconfig/:$PKG_CONFIG_PATH
export PATH=$MUMBLE_PREFIX/qt-framework-4.5.2/bin/:$PATH
export PATH=$MUMBLE_PREFIX/bin:$PATH

# ice path
ICE_PREFIX=$MUMBLE_PREFIX/ice-3.3.1/
export PATH=$ICE_PREFIX/bin/:$PATH

echo Now in Mumble 1.2 build environment

Remember to source the above script before doing any of the steps listed below.

Installing or building pkg-config

This is just a build tool, so you do not have to build it as universal binary.

If you have MacPorts installed, you probably already have pkg-config as well. If not, you can install it by doing

sudo port install pkgconfig

In case you want to compile it yourself, you'll have to download and unpack pkg-config.

sudo mkdir /usr/lib/pkgconfig (choose a path you like)
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
./configure && make && sudo make install 

To make the path permanent add the following line to your ~/.profile file:

export PKG_CONFIG_PATH=/usr/lib/pkgconfig

Also add a path entry to the pkg-config binary to this file:

export PATH=$PATH:/usr/local/bin

Installing or getting Git

To grab a copy of Mumble, you need Git.

You have three options:

Building DBus

Grab the latest release of DBus from http://dbus.freedesktop.org/. As of this writing that is version 1.2.12.

Unpack it, and build it:

./configure --prefix=/opt/mumble/dbus/ --without-x --with-xml=expat --disable-dependency-tracking
make
make install

Building Qt

Download an unpack Qt.

unset CFLAGS
unset CXXFLAGS
unset LDFLAGS
./configure -debug-and-release -no-exceptions -universal -cocoa -qt-sql-sqlite -system-zlib -qt-gif -qt-libpng -qt-libjpeg -qdbus -webkit -phonon -phonon-backend -no-qt3support -sdk $OSX_SDK -prefix $MUMBLE_PREFIX/qt- framework-4.5.2/ -opensource
make
sudo make install
export CFLAGS=$OSX_CFLAGS
export CXXFLAGS=$OSX_CFLAGS
export LDFLAGS=$OSX_LDFLAGS

Installing Boost

As Mumble only uses some Boost headers you do not have to build Boost from scratch - you just need to unpack it.

It is advisible to unpack Boost to $MUMBLE_PREFIX/include/, so the Boost headers will be available in $MUMBLE_PREFIX/include/boost-1_39_1/, since Mumble will look for the headers in this place by default.

Building PortAudio

Download and extract the latest nightly PortAudio snapshot:

http://portaudio.com/archives/pa_snapshot.tar.gz

Build and install:

wget http://www.scorpius-project.org/mumble-stuff/portaudio-fix.patch
patch -p1 < portaudio-fix.patch
./configure --disable-mac-universal --disable-dependency-tracking --prefix=$MUMBLE_PREFIX
make
sudo make install

Building libsndfile

Grab the latest version. Build:

export CFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk -arch ppc"
export CXXFLAGS=$CFLAGS
export LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk -arch ppc"
./configure --prefix=$(pwd)/ppc-root/
make
make install
make distclean
export CFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk -arch i386"
export CXXFLAGS=$CFLAGS
export LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk -arch i386"
./configure --prefix=$MUMBLE_PREFIX
make
sudomake install
lipo -create -arch ppc ppc-root/lib/libsndfile.1.dylib -arch i386 $MUMBLE_PREFIX/lib/libsndfile.1.dylib -output $MUMBLE_PREFIX/lib/libsndfile.1.dylib
export CFLAGS=$OSX_CFLAGS
export CXXFLAGS=$CFLAGS
export LDFLAGS=$OSX_LDFLAGS

Building Protocol Buffers

Grab the latest version of Protocol Buffers from its Google Code project: http://code.google.com/p/protobuf/. As of this writing, that is version 2.0.3. Direct link: http://protobuf.googlecode.com/files/protobuf-2.0.3.tar.bz2

Build and install it:

./configure --disable-dependency-tracking --prefix=$MUMBLE_PREFIX
make
sudo make install

Logitech LCD SDK (optional)

Grab it, install it. Build it:

sudo mkdir -p $MUMBLE_PREFIX/lglcd-sdk/
sudo tar -zxvf /Applications/Logitech/GamePanel\ Software/LCD\ Manager/LCDSDK/LCDSDK.tgz -C $MUMBLE_PREFIX/lglcd-sdk/
sudo chmod -vR +r $MUMBLE_PREFIX/lglcd-sdk/

libmcpp

Grab it. Build it:

./configure --disable-dependency-tracking --prefix=$MUMBLE_PREFIX --enable-mcpplib
make
sudo make install

Berkeley DB

Grab it. Build it:

for i in 1 2 3 4; do wget http://www.oracle.com/technology/products/berkeley-db/db/update/4.7.25/patch.4.7.25.$i; done
for i in 1 2 3; do patch -p0 < patch.4.7.25.$i; done
patch -p1 < patch.4.7.25.4
cd build_unix
../dist/configure --disable-dependency-tracking --prefix=$MUMBLE_PREFIX --enable-cxx

ZeroC Ice

Grab it. Build it:

make prefix=$ICE_PREFIX embedded_runpath_prefix=$ICE_PREFIX OPTIMIZE=yes CXX="$CXX $OSX_CFLAGS" CC="$CC $OSX_CFLAGS" DB_HOME=$MUMBLE_PREFIX MCPP_HOME=$MUMBLE_PREFIX
sudo make prefix=$ICE_PREFIX embedded_runpath_prefix=$ICE_PREFIX OPTIMIZE=yes CXX="$CXX $OSX_CFLAGS" CC="$CC $OSX_CFLAGS" DB_HOME=$MUMBLE_PREFIX MCPP_HOME=$MUMBLE_PREFIX install

Building Mumble

Fetch the Mumble source from Git:

git clone git://mumble.git.sourceforge.net/gitroot/mumble mumble.git cd mumble.git git submodule init git submodule update

To build the client, execute:

qmake main.pro CONFIG+='release'
make

If everything went well, you should now have a Mumble.app application bundle in the release directory of the root of the source tree.

Distributing Mumble

If you wish to create a proper redistributable Mumble application bundle, please refer to the osxdist.sh script in the scripts directory. This will help you clean up your application bundle, include the needed dependencies, resources etc., and create a compressed disk image - ready to redistribute!

The script expects you to be in the root of the source tree. After executing, it will spit out a .dmg of your Mumble build in the release folder.

Please note that the script currently is tuned for creating real redistributable versions of Mumble, and as such only works on universal (x86, ppc) release builds!