Dependencies

  • Python 2.4

Either use latest official binary from www.python.org (this has the advantage of being a Universal binary and supporting correct launch of applications via the python binary). Or install boost's python2.4 (which is required for boost anyway).

Ensure current python includes are in /usr/include e.g. /usr/include/python2.4

(This is only necessary for the Openlibraries build, which does not allow you to specify the python root)

  • BOOST

Use darwinports "boost +python"

  • Python 2.4 (Darwinports version)

To ensure that libboost_python is linked against the correct Framework ensure that the bjam variable PYTHON_ROOT is set to /opt/local/Library/Frameworks.

Or use the following bjam command:

bjam --prefix=/opt/local --layout=system -sTOOLS=darwin -sPYTHON_ROOT=/opt/local/Library/Frameworks/Python.framework/Versions/2.4 --with-python -sPYTHON_VERSION=2.4 stage

--layout=system is required, or else the file names include the boost version. This is in-compatible with the olib build.

This will stage libboost_python in the boost source tree.

  • Qt v3

ftp://ftp.trolltech.com/qt/source/

./configure -fast -thread -pch -plugin-imgfmt-png -plugin-imgfmt-jpeg -plugin-imgfmt-mng

  • FFMpeg (ffmpeg.sourceforge.net)

Fetch latest from SVN:

svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

Run configure:

./configure --prefix=/opt/local --enable-shared --extra-cflags=-DHAVE_LRINTF

Optionally the following flags if you want gpl'd plugins:

--enable-faac --enable-faad --enable-mp3lame --enable-gpl

Then make and make install.

FFmpeg exists as a darwinports port, but this version is stale - don't use with olibs.

Add --extra-cflags="-DHAVE_LOCALTIME_R" to Portfile to avoid duplicate symbol with OS library (see http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2004-April/025312.html)

Edit 'configure' to remove -mdynamic-no-pic flag. This flag leaves relocatable entries in the read-only TEXT section of the static library, which prevent openlibraries from linking. Then run 'ranlib' on libav*.a

  • Openlibraries

Ensure current python includes are in /usr/include e.g. /usr/include/python2.4 (configure script doesn't seem to respect CPPFLAGS so an alternative would be to add -I/opt/local/include to CFLAGS)

Configure using:

./configure --prefix=/opt --with-boostprefix=/opt/local --with-qtinclude=/usr/local/qt/include --with-qtlib=/usr/local/qt/lib --enable-openalframework --with-pythonversion=2.4 --enable-gpl

Currently (7/8/06) openlibraries use incorrect flags when linking the python plugins. They should use -bundle to produce a MH_BUNDLE shared library. However they currently use -dyanmiclib, which produces a dynamic shared libary of type MH_DYLIB. To work around this I have just "hacked" the dylib link by copying the command line, removing -dynamiclib (and associated flags) and replacing with -bundle. This need to be added to the configure/make system.