Compile and install FFADO from source
We assume that you have successfully downloaded the FFADO source code, and made sure all the build dependencies are in place.
The first thing you should do is change into the FFADO source directory and read the README file.
If your system already contains a pre-installed FFADO package, you should read about avoiding multiple parallel installations before proceeding.
Quick run-through for the impatient
The actual compilation is strikingly simple:
$ cd /where/you/keep/libffado $ scons
This will start the build process. Sometimes, scons displays scary-looking error messages. You can usually ignore these.
Afterwards, you need to install FFADO. This requires root privileges. If you have sudo configured for your user, just do
$ sudo scons install
If not,
$ su -c "scons install"
will work.
Now your FFADO is ready to be used.
Customized builds
scons has a number of compile-time options that you can use to tweak your build process. Here is a list of the available options as of revision r1372:
$ scons -h
...
BUILDDIR: Path to place the built files in
default:
actual:
DEBUG: Toggle debug-build. DEBUG means "-g -Wall" and more, otherwise we will use
"-O2" to optimise. (yes|no)
default: True
actual: True
PROFILE: Build with symbols and other profiling info (yes|no)
default: False
actual: False
PREFIX: The prefix where ffado will be installed to. ( /path/to/PREFIX )
default: /usr/local
actual: /usr/local
BINDIR: Overwrite the directory where apps are installed to. ( /path/to/BINDIR )
default: $PREFIX/bin
actual: /usr/local/bin
LIBDIR: Overwrite the directory where libs are installed to. ( /path/to/LIBDIR )
default: $PREFIX/lib
actual: /usr/local/lib
INCLUDEDIR: Overwrite the directory where headers are installed to. ( /path/to/INCLUDEDIR )
default: $PREFIX/include
actual: /usr/local/include
SHAREDIR: Overwrite the directory where misc shared files are installed to. ( /path/to/SHAREDIR )
default: $PREFIX/share/libffado
actual: /usr/local/share/libffado
ENABLE_BEBOB: Enable/Disable the bebob part. (yes|no)
default: True
actual: True
ENABLE_FIREWORKS: Enable/Disable the ECHO Audio FireWorks AV/C part. (yes|no)
default: True
actual: True
ENABLE_MOTU: Enable/Disable the MOTU part. (yes|no)
default: True
actual: True
ENABLE_DICE: Enable/Disable the DICE part. (yes|no)
default: False
actual: False
ENABLE_METRIC_HALO: Enable/Disable the Metric Halo part. (yes|no)
default: False
actual: False
ENABLE_RME: Enable/Disable the RME part. (yes|no)
default: False
actual: False
ENABLE_GENERICAVC: Enable/Disable the the generic avc part (mainly used by apple).
Note that disabling this option might be overwritten by other devices needing
this code. (yes|no)
default: False
actual: False
ENABLE_ALL: Enable/Disable support for all devices. (yes|no)
default: False
actual: False
SERIALIZE_USE_EXPAT: Use libexpat for XML serialization. (yes|no)
default: False
actual: False
BUILD_TESTS: Build the tests in their directory. As some contain quite some functionality,
this is on by default.
If you just want to use ffado with jack without the tools, you can disable this. (yes|no)
default: True
actual: True
BUILD_STATIC_TOOLS: Build a statically linked version of the FFADO tools. (yes|no)
default: False
actual: False
DIST_TARGET: Build target for cross compiling packagers (auto|i386|i686|x86_64|powerpc|powerpc64|none)
default: auto
actual: auto
ENABLE_OPTIMIZATIONS: Enable optimizations and the use of processor specific extentions (MMX/SSE/...). (yes|no)
default: False
actual: False
You can set options by adding them to the scons command line. For example:
$ scons ENABLE_OPTIMIZATIONS=True PREFIX=/usr ENABLE_METRIC_HALO=True
Note that you only need to specify the options once, scons saves them for further runs.
Tuning FFADO for production
For production systems, it may be advisable to turn on optimization and to turn off debugging. But: the FFADO developers will not be able to help you if you compile without the debugging feature. So if you do run into problems, you will have to recompile with debugging enabled, reproduce your issue and then contact the developers with the full debugging output available.
