= Building Jack For FFADO = {{{ #!LegendBox #!legend: Warning Before attempting to build and install JACK from source, make sure you understand how to [wiki:AvoidingParallelInstallations avoid parallel JACK installations], or you will very likely break stuff and get very very frustrated. The following instructions assume that you plan to '''overwrite''' your existing jack files in {{{/usr}}}. }}} The first step is obtaining the source: {{{ $ svn co http://subversion.jackaudio.org/jack/trunk/jack jack }}} Before you can compile JACK, you need to make sure all its dependencies are there. In addition to those packages you installed for FFADO, make sure you have the {{{autotools}}} installed (another automated build system, same as {{{scons}}} for FFADO). If your distro does not have an autotools meta-package: the single tools are {{{autoheader, autoconf, automake, libtoolize, make}}}. Now we will configure, compile and install the new jackd. We’ll need to specify a default temporary directory. For performance reasons, this should be a special in-memory file system such as {{{/dev/shm}}}. If you don't have it, you can probably use {{{/tmp}}}, but make sure it's not a journalling filesystem like ext3 or reiserfs - those will cause problems. If you already have jackd installed do {{{ jackd --version jackd version 0.112.0 tmpdir /dev/shm protocol 23 }}} to see which temporary directory is currently in use - it's easiest to just re-use it. {{{ $ cd jack $ ./autogen.sh $ ./configure --prefix=YOUR_PREFIX --with-default-tmpdir=/dev/shm [copious output] }}} {{{ #!LegendBox #!legend: Note If this step fails with the error "libtoolize not found", make sure you have libtool installed. If this step fails with the error "expected specifier-qualifier-list before 'pthread_rwlock_t'", make sure to add --enable-ancient-libc to the configure arguments. }}} At the end of the configure phase you should see something like this: {{{ jack-audio-connection-kit 0.111.0 : | Build with ALSA support............................... : true | Build with old FireWire (FreeBob) support............. : true | Build with new FireWire (FFADO) support............... : true | Build with OSS support................................ : true | Build with Sun audio support.......................... : false | Build with CoreAudio support.......................... : false | Build with PortAudio support.......................... : false | Build with NetJack support............................ : true ... }}} If the output indicates 'false' for !FireWire (FFADO) support, there are two options: 1. You did install ffado into /usr/local but pkg-config only checks /usr/lib/pkgconfig. Try to run the above as "PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure" 1. there is a problem with your libffado installation. In this case, [wiki:CompileAndInstallFfado fix your libffado installation first]. Now we can proceed to the make & make install steps: {{{ $ make [more output] }}} As root: {{{ $ make install }}} It is a good idea to run {{{ $ ldconfig }}} (as root also) to update the shared library cache. You should have it all now.