Difference between revisions of "BuildingMacOSX"

From Mumble Wiki
Jump to: navigation, search
(Layout fix for 'export MACOSX_DEPLOY[..]')
(Refer people to use Qt 4.3.4.)
Line 8: Line 8:
 
* 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)
 
* pkg-config (http://pkg-config.freedesktop.org/)
 
* pkg-config (http://pkg-config.freedesktop.org/)
* QT >= 4.3.1 (http://trolltech.com/developer/downloads/qt/mac)
+
* Qt 4.3.4 (http://trolltech.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/)
Line 36: Line 36:
 
  export MACOSX_DEPLOYMENT_TARGET="10.4"
 
  export MACOSX_DEPLOYMENT_TARGET="10.4"
 
  ./configure -universal -qt-sql-sqlite -qt-libpng -sdk /Developer/SDKs/MacOSX10.4u.sdk
 
  ./configure -universal -qt-sql-sqlite -qt-libpng -sdk /Developer/SDKs/MacOSX10.4u.sdk
in the QT dir.
+
in the Qt directory.
 
If configure runs sucessfully, continue by executing:
 
If configure runs sucessfully, continue by executing:
 
  make && sudo make install
 
  make && sudo make install
QT will be installed to the directory ''/usr/local/Trolltech/Qt-4.3.X''.
+
Qt will be installed to the directory ''/usr/local/Trolltech/Qt-4.3.4''.
  
To make the QT tools visible add the following line to your ''~/.profile'' file:
+
To make the Qt tools visible add the following line to your ''~/.profile'' file:
  export PATH=$PATH:/usr/local/Trolltech/Qt-4.3.X/bin
+
  export PATH=$PATH:/usr/local/Trolltech/Qt-4.3.4/bin
  
 
=== Compiling Boost ===
 
=== Compiling Boost ===

Revision as of 11:39, 11 April 2008

Universal or not Universal?

If you want to build Mumble as universal binary you will first have to build all dependencies as universal binary.

Dependencies

To build Mumble you will need:

Compiling 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

Compiling 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:

export MACOSX_DEPLOYMENT_TARGET="10.4"
./configure -universal -qt-sql-sqlite -qt-libpng -sdk /Developer/SDKs/MacOSX10.4u.sdk

in the Qt directory. If configure runs sucessfully, continue by executing:

make && sudo make install

Qt will be installed to the directory /usr/local/Trolltech/Qt-4.3.4.

To make the Qt tools visible add the following line to your ~/.profile file:

export PATH=$PATH:/usr/local/Trolltech/Qt-4.3.4/bin

Compiling Boost

As Mumble only uses some Boost headers you do not have to build/install this. Just unpack Boost.

Compiling Portaudio

PortAudio builds universal binaries by default - it will also try to make your binaries as backwards compatible as possible, so there's no need to explicitly tell it to build against the 10.4 SDK. Therefore, just download, unpack and:

./configure && make

For the Mumble build system to find PortAudio you will have to modify the included portaudio-2.0.pc.in, rename it to portaudio-2.0.pc and put it in your PKG_CONFIG_PATH. My portaudio-2.0.pc file looks like this:

prefix=/Users/username/Development/portaudio
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${exec_prefix}/include

Name: PortAudio
Description: Portable audio I/O
Requires:
Version: 19

Libs: -L${libdir} -lportaudio 
Cflags: -I${includedir}

Building Mumble

Fetch the Mumble source from SVN. First build speex by changing into the speexbuild subdirectory and running:

qmake speexbuild.pro && make release

After that change to the src/mumble subdirectory. Here you might have to change some parameters in mumble.pro, so open it in a text editor. Change the path in the line:

INCLUDEPATH += /usr/local/include/boost-1_34/

to the path where your boost headers are located.

then run:

qmake mumble.pro && make release

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!