Views
Building for GNU/Linux using Fedora Core, Red Hat, and related distros
First you will need to make sure that you have all of the standard development tools installed.
yum install
curl
cvs
make
autoconf
gcc
gcc-c++
automake
bzip2
Required Packages
All of these packages are used in the compilation of Pd-extended on Fedora Core 4. All of them come from the standard Fedora repositories except those marked. The easiest way to install all of these is to copy and paste the list of packages on a line starting with yum install.
This is all that is needed to compile the Pd core:
tcl
tcl-devel
tk
tk-devel
jack-audio-connection-kit
alsa-lib
alsa-lib-devel
For all of the audio objects, you need these packages:
libogg
libogg-devel
libvorbis
libvorbis-devel
fftw3
fftw3-devel
liblo
liblo-devel
speex
speex-devel
flac
flac-devel
ladspa
ladspa-devel
libsndfile
libsndfile-devel
LAME is a free library that provides mp3 support. The mp3 format is patented (No Software Patents!) in the U.S. and maybe other countries, so Debian cannot include LAME. Make sure you have a license to use the MP3 patent, if needed in your country. You can get LAME packages here: http://atrpms.net/dist/fc4/lame/ You will need these packages:
lame-3.96.1-12.fc4.at.i386.rpm
lame-devel-3.96.1-12.fc4.at.i386.rpm
For all the video objects, you need these packages:
libquicktime
libquicktime-devel
gsl
gsl-devel
libtheora
libtheora-devel
libtiff
libtiff-dev
libpng
libpng-dev
I've converted the Debian HOWTO up to this point, from here on, its basically just the Debian HOWTO. -Hans
These are Debian package names that need to be converted to Fedora package names:
libusb
For all the video objects, you need these packages:
imagemagick
liblcms1
liblcms1-dev
libjasper-dev
libjpeg62
libjpeg62-dev
libmpeg-dev
libmpeg1
libmpeg2-4
libmpeg3-1
libmpeg3-dev
ffmpeg
libavcodec-dev
libavc1394-0
libavc1394-dev
libdv4
libdv4-dev
libxv-dev
libxv1
libdts-dev
ftgl-dev
libimlib2
libimlib2-dev
libfreetype6
libfreetype6-dev
graphviz
libbz2-dev
zlib1g-dev
libice6
libice-dev
libsm6
libsm-dev
libxml2
libxml2-dev
libxext6
libxext-dev
libxt6
libxt-dev
libx11-6
libx11-dev
libgsl0-dev
libglu1-mesa
libglu1-mesa-dev
libavformat-dev
For Debian/stable, add these:
libmagick++6
libmagick++6-dev
libdps1
libdps-dev
For Debian/testing and Debian/unstable, add these:
libmagick++9c2a
libmagick++9-dev
libavifile-0.7c2
For Ubuntu/dapper, add these:
libavifile-0.7-dev
libmagick++9-dev
libmagick++9c2a
For building gridflow, you will need :
ruby1.9-dev
ruby1.9
libx11-dev
libpng12-dev
libmpeg3-dev
libquicktime-dev
libjpeg62-dev
xlibs-dev
You should use the version from the gridflow.ca CVS repository. Download it in a new directory as it is not self-contained. Type ./configure; make;. Then, you will need to manually copy the directory to anywhere you want it to be installed. Let say /usr/local/lib/pd/extra/gridflow.
Checking out the code from CVS
The easy way to do checkout everything is to run this script where you want to put the Pd code: checkout-developer-layout.sh.
But you can also do it manually: How to download from the SourceForge CVS and Directory Layout for Developers
If you are planning on building Pd-extended, you need to checkout the version of Pd that Pd-extended is currently compiling against. This is because Pd-extended relies on a lot of patches, and these patches will only apply cleaning against a specific version. To check out 0.39.2, for example:
cvs -d:pserver:anonymous@pure-data.cvs.sourceforge.net:/cvsroot/pure-data login
cvs -z3 -d:pserver:anonymous@pure-data.cvs.sourceforge.net:/cvsroot/pure-data checkout -r v0-39-2 pd
Building
Before starting to compile Pd-extended, you will need to apply the patches. Make sure everything applied cleanly by watching the output.
cd pure-data/packages/ && make patch_pd
Once you have all of the sources and the patches are applied, you can start compiling. Try building the whole thing and see if it works for you:
cd linux_make
make install
It will then build for a while, and it should end up with all the binaries in pure-data/packages/linux_make/build. To make a tarball, run:
make package
then you'll see a .tar.bz2 in pure-data/packages/linux_make/build.