Building Ardour 2.X from source

Required tools

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

Required libraries

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").

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.

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.

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

We no longer support this build. You are recommended to use DarwinPorts to set up a build environment. If you run into issues, please consult the DarwinPorts folks.

Building with VST Support (for Linux)

Please read the detailed instructions.

SCons

Ardour uses an excellent software build system called SCons. Please refer to its web site for more detailled information and the SCons manual.

We switched to SCons because of the amazingly poor quality, consistency and overall design of the auto* tools traditionally used by Unix software projects. There comes a point in time where adding another 200 lines to a multi-thousand line shell script should be taken as a sign that something is wrong with the basic idea for the tool. SCons has proved itself entirely worthy of the few days of transition that were required.

On the other hand, SCons is not without its problems, and we look forward to the emergence of variants such as waf in the future

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

Building Ardour with Scons

SCons is completely based on Python. You need Python for it - but most Linux distributions already have it already installed and working. You will need to download and install SCons. Please see the download area on [1] for installation packages and instructions. Don't worry, it's easy, esp. if you are used to Python's distutils.

In general, building Ardour can be done by issuing the command

scons
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
scons PREFIX=/usr
Note that options are "sticky" - the same value will be used whenever you run scons until you specify a different value for the option. See scons --help in the top level directory of Ardour for other parameters.

Installing

For installing, you can use the special target "install", i.e.:

scons install
An additional destination dir for installing to some changed root path can be set with scons DESTDIR=/my_path install. This is equivalent to make DESTDIR=/my_path install and is usually not needed for normal installations. It's mainly helpful for package maintainers.

Please note, that SCons will only install changed files on subsequent scons install calls. If you want to re-install everything, you have to uninstall first.

Uninstalling

There is now a special "uninstall" target available, so that scons uninstall will remove all the files installed by scons install.

In addition, you can undo any scons target with the -c parameter. So, for example, to undo the default action when building, you could run scons -c. However, this command will also remove all built files as these are also part of the target "install". This is the way SCons works. This can be quite alarming if you are not anticipating it.

Speeding up SCons

If you rebuild Ardour a lot from source, you may want to use the --implicit-deps-unchanged flag to scons. You should not use this flag after an SVN update or after unpacking a new tarball. However, once you have run scons once without this flag, then assuming you do not make alterations that change the "dependencies" between files (e.g. by editing the source code to change the use of various #include directives), this is a valuable option. It makes scons perform more like make and dramatically speeds up a full or even partial build.

Some ardour developers have a shell script called sconsi which they use as their primary compile commmand. They switch to scons after SVN updates or significant code changes.

        #!/bin/sh

        exec scons --implicit-deps-unchanged $*

Build Options

You can get a general overview of all targets and options by issuing the following command in the Ardour main directory:

scons --help

Interesting scons options include:

ARCH
Set architecture-specific compilation flags by hand (all flags as 1 argument)
SYSLIBS
USE AT YOUR OWN RISK: CANCELS ALL SUPPORT FROM ARDOUR AUTHORS. Use existing system versions of various libraries instead of internal ones (yes|no)
DEBUG
Set to build with debugging information and no optimizations (yes|no)
DESTDIR
Set the intermediate install "prefix" ( /path/to/DESTDIR )
GTK
Build the GTK (graphical) version of Ardour (yes|no)
KSI
Build the KSI (text) version of Ardour (yes|no)
NLS
Set to turn on i18n support (yes|no)
PREFIX
Set the install "prefix" ( /path/to/PREFIX )
VST
Compile with support for VST (yes|no)
VERSIONED
Add version information to ardour/gtk executable name inside the build directory (yes|no)
DIST_TARGET
Build target for cross compiling packagers (auto|i386|i686|x86_64|powerpc|tiger|panther|none)
FPU_OPTIMIZATION
Build runtime checked assembler code (yes|no)
SURFACES
Build support for various optional control surfaces such as the Frontier Design Tranzport
FFT_ANALYSIS
If the required FFTW libraries are installed, adds a frequency domain analysis window to ardour.
SLV2
If the required libraries are installed, adds support for LV2 plugins to Ardour.
GTKOSX
Builds Ardour assuming that the GTK libraries are for GTK/OSX, and includes various OS X-specific integration improvements.

Shouldn't the requirements be

Shouldn't the requirements be updated to jack 0.120 or later?

this is the page for ardour

this is the page for ardour 2.X, not ardour3, which has its own separate build page.

There appears to be an

There appears to be an undocumented requirement for libsndfile-dev.

At least on Debian Squeeze, for some reason scons can't find /usr/include/fftw3.h unless run as root (even though the file has the expected 0644 permissions).

Please consider mentioning the libasound-dev dependency in the bulleted list as well as in the paragraph above.

You will need to ensure that

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.