Building Ardour 3.X from source

Required tools

You will need to ensure that your system has the following sofware building tools installed:

Required libraries

You will need to ensure that your system has the following libraries installed. If you are installing these libraries using a package manager such as yum, apt-get, synaptic etc., please note that you must install the normal library package and the development version. The development package typically has the same name as the normal one with -dev or -devel appended. Alas, different package management systems use different conventions for this.

The normal library package is intended for people who just want to run software that uses the library; the development version is required for people who want to build software that uses the library ("developers").

In the lists below, we have tried to indicate some of the various names for the packages corresponding to these software libraries. Unfortunately, different package management systems use different names, and we cannot ensure that the names we mention below will exist for your system.

On Linux, you must also have the development version of the ALSA library installed. The package is typically called libasound2-dev, but your distribution might call it something else.

Depending on how your version of Raptor was built, you may need additional libraries to satisfy its dependencies, even though they will not be used by Ardour. If you build Raptor yourself, we recommend that you use --disable-www in the configure step, to avoid unnecessary dependencies on WWW-related libraries.

Note that almost all current Linux distributions will already have installed the XML, glib, GTK and libart_lgpl libraries on your system.

Building FFTW from source

If you are building the FFTW library from source yourself, you must do a full compile twice, once with ./configure --enable-float and once with ./configure --disable-float. This will build separate, independent single-precision and double-precision versions of the library. Be sure to run make install and then make clean after each build. In general there is no need to worry about other options to configure other than --prefix (which controls where it is installed).

Building Ardour on OS X

Building Ardour on OS X is generally a lot more difficult than on Linux. The environment just doesn't support the use of 3rd party libraries and open source frameworks as simply as Linux does. However, for a reasonably experienced programmer, its not a particularly hard process, just a very long and tedious one.

native (X11-free) version

Please read the documentation on this painful process

X11 version for OS X

We no longer support this build.

Building with VST Support (for Linux)

Please read the detailed instructions.

waf

Ardour3 uses an excellent software build system called waf You do not need to install this - the build system is distributed as part of the Ardour source code. We switched to waf because of the amazingly poor quality, consistency and overall design of the auto* tools traditionally used by Unix software projects, and the slow speed of SCons when used with a project under rapid, continuous development.

If you have any additional questions on waf, please post them on the ardour-dev mailing list. ardour-users should not be bothered about it yet to not confuse normal users.

Building Ardour3 with waf

waf is completely based on Python, but almost all Linux distributions and releases of OS X already have it already installed and working.

Building Ardour3 is a two-step process. First, you run a "configure" step" by changing to the top of source directory tree, and running this command:

./waf configure

This is equivalent to the “traditional” call of configure; make. If you want to change installation paths, you can simply set the parameters on the scons call like

./waf configure --prefix=/usr

Note that options are “sticky” - the same value will be used until you specify a different value for the option as part of a configure step. ./waf --help will list all available options. It is STRONGLY RECOMMENDED that you build Ardour3 with the --debug option as part of your configure step. Once configued, you can then run:

./waf

to actually build the program. This can take a long time. The record (so far) is 3:37 on a “warm” AMD Phenom II 3.2GHz 6-core system. Build times on typical current machines (Fall 2010) will range from 6 to 20 minutes. The link step consumes huge amounts of memory and can be extraordinarily slow if you machine has to swap.

You do not need to install in order to test the build: just change into the gtk2_ardour directory and run the ./ardev command.

To install the results:

./waf install

Uninstall is, unsuprisingly, accomplished by ./waf uninstall.

To clean up the build, use ./waf clean

This page is considered out of date and un-maintained. The full list of dependencies is defined by a pair of scripts in 2.0-ongoing/tools called build-gtk-stack and build-ardour-stack. The first one builds everything required by the GTK stack, the second one builds the additional set of libraries required by Ardour3. The scripts do not cover VST-enabled builds, because I do not want to support them.

As for Ubuntu 12.04 you also want to install these packages:

libglibmm-2.4-dev
uuid-dev
wine1.4-dev (if you compile with option --windows-vst)
liblrdf0-dev (as mentioned above. But it’s not librdf, it’s liblrdf)
libserd-dev
libgtkmm-2.4-dev
libasound2-dev
libgnomecanvasmm-2.6-dev
gcc-4.5

For lv2 proceed as follows (in a terminal):
wget http://lv2plug.in/spec/lv2-1.0.0.tar.bz2
tar xjf lv2-1.0.0.tar.bz2
cd lv2-1.0.0
./waf configure && ./waf build && sudo ./waf install

Repeat the above steps with the following tarballs:
http://download.drobilla.net/serd-0.14.0.tar.bz2
http://download.drobilla.net/sord-0.8.0.tar.bz2
http://download.drobilla.net/sratom-0.2.0.tar.bz2
http://download.drobilla.net/lilv-0.14.2.tar.bz2

For Ubuntu 12.10 the following will insure that waf configures ok for the bare minimum.

sudo apt-get install g++ libart-2.0-dev libasound2-dev libatkmm-1.6-dev libaubio-dev libc6-dev libcairo2-dev libcairomm-1.0-dev libcurl4-gnutls-dev libfftw3-dev libgdk-pixbuf2.0-dev libglib2.0-dev libglibmm-2.4-dev libgnomecanvas2-dev libgnomecanvasmm-2.6-dev libgtk2.0-dev libgtkmm-2.4-dev libjack-jackd2-dev liblilv-dev liblo-dev liblrdf0-dev libpango1.0-dev libpangomm-1.4-dev libsamplerate0-dev libsigc++-2.0-dev libsndfile1-dev libsuil-dev libx11-dev libxml2-dev libboost-dev uuid-dev

That might be slight overkill. I took someone else’s recent deb file and worked from the list of dependancies it declared.

For ubuntu-studio 12.10 I’ve had to do also : apt-get install libcppunit-dev libclalsadrv-dev

All concerning lv2 was possible to install via apt or synaptic

libclasadrv is fons adriensen’s library for interacting with ALSA. it is not a requirement of any component of ardour3. there is a package dependency error in ub12.X if something requires it. libcppunit is not a required component for ardour3 - not having it mean just prevents building and running various tests.

Ah ok sorry. When I did the ./waf configure, it told me that I missed two things ; libcppunit, and alsa. So I looked for “alsa” in name in my package manager, with something ending by “dev” and I found “alsa-source”, and “libclasadrv-dev” in the names. So I installed both, and configuration ended without errors.
I don’t know if it’s an ubuntu’s bug.

libasound-dev is the likely package you needed. the message about cppunit is not an error, just a note that you don’t have it.

@paul: Maybe so, but it is the current beta, right? It has a few rough spots, but overall it’s been very stable for me.

I installed the beta 5 just following the instructions on my Ubuntu Studio 12.04. As easy. I’ll test this in the next days. Greate job mates!

@puppet: beta5 is considered hopelessly out of date at this point.