Personal tools
You are here: Home documentation developer MacOSXFink

This HOWTO demonstrates how to set up a Mac OS X machine to build Pd and Pd-extended.

Setting up the Build Environment

Apple Developer Tools

You will need to install the Apple Developer's Tools to get the Apple compiler and tools. It comes with the Mac OS X CD's or you can download it from Apple. Make sure that you also have X11User.pkg and X11SDK.pkg installed.


Most of the external libraries used to build Pd can be installed very easily via Fink. If you don't already have Fink installed, here are the download instructions. The below commands install all of the needed libraries for the various parts of Pd.

To make sure your Fink install is all up-to-date before starting this process, it is good to run these commands before everything else:

fink selfupdate
sudo apt-get update
sudo apt-get -f install
sudo apt-get upgrade
sudo apt-get dist-upgrade

Simple Technique

For Pd-extended, you need a lot of packages. You can try using the new "bundle" package that installs all of the depencies, but it is new so I might not work fully. Run these commands any time you want to make sure you are getting the latest Pd-extended build setup:

fink selfupdate
fink purge pd-extended-dev
fink rebuild pd-extended-dev
fink install pd-extended-dev

If you run this on a new Fink install, it will take a very long time to download and build the long list of dependencies. After this completes, you should be ready to build Pd-extended.

Manual Technique

If you tried building Pd-extended and it still seems to be missing dependencies, then try following the rest of this.

sudo /sw/bin/apt-get install sed libsndfile1 libsndfile1-dev libogg libvorbis0 \
libtiff pcre imlib2 libgnugetopt libtheora0 libjpeg libpng3 libmpeg freetype219 gsl \
ladspa ladspa-dev sdl libusb a52dec-dev a52dec-shlibs libiconv \
libiconv-dev help2man texinfo pkgconfig audiofile esound graphviz glib \
gtk+ popt id3lib4-dev xmms \
appleotffonts applesystemfonts cyrus-sasl2-dev cyrus-sasl2-shlibs daemonic \
db44-aes db44-aes-shlibs docbook-dsssl-nwalsh docbook-dtd docbook-utils \
esound-bin esound-common esound-shlibs expat expat-shlibs fondu \
freetype219-shlibs gawk gd2 gd2-bin gd2-shlibs gdbm3 gdbm3-shlibs gsl-shlibs \
gtk+-data gtk+-shlibs io-string-pm jadetex lcms \
libgnugetopt-shlibs libjpeg-shlibs libkpathsea4 libkpathsea4-shlibs libmikmod \
libmikmod-shlibs libogg-shlibs libpng3-shlibs libtheora0-shlibs \
libtool14-shlibs libusb-shlibs libwww libwww-bin libwww-shlibs libxml libxml2 \
libxml2-bin libxml2-shlibs nkf openjade openldap23-dev openldap23-shlibs \
openmotif3 openmotif3-shlibs opensp4 opensp4-dev opensp4-shlibs pcre-shlibs \
tetex-base readline5 readline5-shlibs sdl-shlibs sgml-entities-iso8879 \
sgmls-pm svn-shlibs system-openssl-dev tetex-texmf texi2html xfontpath \
xmms-bin xmms-shlibs bison daemonic libxml2 libxml2-bin \
libxml2-shlibs libxslt libxslt-bin libxslt-shlibs passwd readline5 \
readline5-shlibs system-openssl-dev texi2html docbook-xsl \
doxygen gdk-pixbuf gdk-pixbuf-shlibs giflib giflib-bin glib2-dev glib2-shlibs \
gnome-libs-dev gnome-libs-shlibs gsm gtk-doc html-tagset-pm imlib imlib-shlibs \
intltool libmpfr1 libmpfr1-shlibs libogg libogg-shlibs libwww-pm586 netpbm \
netpbm-bin netpbm-shlibs netpbm10-shlibs orbit orbit-shlibs pkgconfig \
scrollkeeper xdg-base xml-parser-pm586 xvidcore xvidcore-shlibs gmp gmp-shlibs

Not all packages are available in binary format, so you'll have to use fink to compile those.

sudo fink install lua51 lua51-dev imagemagick10-dev \
mysql15-dev postgresql82-dev libcdio-dev

At this point, it is probably a good idea to update all of the installed packages to the latest versions in the stable repository. Unfortunately, that means building lots of things from source, which can take a long time. So start this process, and forget about it for a couple of hours. While it is not mandatory, it'll make the next steps runs smoother.

fink -y update-all &

These packages need to be installed from the "unstable" Fink distro. To use these packages also, then you need to configure your Fink install to use the "unstable" distro (which has been quite stable for me). The Fink FAQ, question 5.8 tells you how.

It is a good idea to try installing all of the dependencies from stable, then switch to unstable for the rest. If an unstable package adds more dependencies, then I switch back to stable and try building them all there, then switch back to unstable to finish everything. It may sound complicated, but it is not really. It is just some copy-n-pasting of package names, and running fink configure a few times.

sudo fink install coreutils-default svn ffmpeg ffmpeg-dev libavcodec-dev \
libdv4 speex3 lame-dev fftw3 libftgl1 libhid0 libquicktime1 faac-dev \
libfaad1-dev libpostproc1 libpostproc-dev libavutil-dev libavformat-dev \
libswscale-dev libavdevice-dev libgavl1 gmerlin-avdecoder1

These are dependencies that aren't required for the automatic builds as of now, but there are some libraries in SVN that use them. They can be a pain to build, so they are optional.

sudo fink install flite libflac8-dev ladspa-dev fftw artoolkit

Alternate Approach

For an alternate approach for installing all the libs, see: Alternate MacOSX Fink



You need the Tcl/Tk frameworks in order to build Pd. Currently, there aren't regular releases of Tcl/Tk for Mac, but it is easy to build from source. To download the version used for Pd-extended, use GettingPdSource. First, rsync pd-extended, then rsync tcltk_core-8-4-branch into the same folder, then run these commands:

cd tcltk_core-8-5-branch
sudo mv build/tcl/Tcl.framework /Library/Frameworks/
sudo mv build/tk/Tk.framework /Library/Frameworks/

If you are running Mac OS X 10.4 Tiger or newer, this is not technically necessary since Tcl/Tk 8.4.7 is included. But there are lots of advantages to running the newer versions of Tcl/Tk

Jack OS X

Pd-extended uses Jack on Mac OS X also. I have not used it beyond very basic testing, but it has been reported to work. It does compile fine. This is the version I used: Its an installer, once its downloaded, just run the installer.

Building Pd and/or Pd-extended

Before you start building, you will of course need to get the source code. There are multiple ways of getting it, check out GettingPdSource for the options. Then move on to BuildingPd or BuildingPdExtended, depending on what you want to build.

Powered by IEM Powered by Plone Section 508 WCAG Valid XHTML Valid CSS Usable in any browser