Building and installing the SpanDSP library on Linux, BSD and other Unix like machines

Version compatibility

The current version of SpanDSP in wide use is 0.0.6pre17. SpanDSP is under continuous development. Many of the functional modules in SpanDSP, like the soft FAX machine, have been providing good service to many people for a long time. However, subtle issues affecting small numbers of people are constantly being addressed.

Software designed to work with older versions of SpanDSP may not compile with the latest version, due to a key change in the header files. A minor change to the application's source code files will usually fix this. Look for every occurance of

#include <spandsp.h>

and replace it with

#define SPANDSP_EXPOSE_INTERNAL_STRUCTURES
#include <spandsp.h>

After this change the application should build OK with both old er and newer versions of SpanDSP.

Preparing to install the library

A number of Linux and other software distributions include SpanDSP, but they usually supply older versions of the library, which lack a lot of the features of the current version. Before installing SpanDSP, make sure there are no older versions already on your machine. On Linux machines the command

whereis spandsp.so

will usually show you all the versions of SpanDSP in the machine's library search path. If there are SpanDSP files in directories other than the one you intend to install in, you should deal with those.

You will need libtiff installed on your machine. There have been several bugs related to FAX document handling in some older versions of libtiff, so check which version you have. Versions 3.5.7, 3.6.0, 3.7.1 and 3.8.2 seem to work OK. Some people have had trouble using SpanDSP, because they had more than one version of libtiff on their machine, installed in different directories. Try using the whereis command to check for this. If you are using an RPM based system, such as RedHat or Fedora, you will need both the libtiff and libtiff-devel RPMs installed to be able to build SpanDSP. Other packaging systems may also require some kind of development package be installed, as well as the main libtiff package.

Building and installing the library

You can use the usual:

./configure
make
make install

process to build the SpanDSP library. Note that if you use configure in this way, the software will be installed in /usr/local. In this case make sure your /etc/ld.so.conf file has an entry for /usr/local/lib. If you wish the software to be installed in /usr, you should build it with the commands.

./configure --prefix=/usr
make
make install

Some systems happily build and install the library, even though the directory in which the library is installed is not in the machine's library search path. As a final check that applications will be able to find SpanDSP, try

whereis spandsp.so

and make sure the library can be seen in the directory where you expect it to be. If it can, you should be ready to begin building and running your applications.

Building the programming documentation

If you wish to build the programming documentation for SpanDSP, configure SpanDSP with:

./configure --enable-doc
You need doxygen installed on your machine.

Building the test suite

Most sections of the SpanDSP library have an accompanying test program in the test directory. If you wish to build these test programs, configure SpanDSP with:

./configure --enable-tests

To build these tests you will need libaudiofile installed on your machine. To build the modem tests, with the GUI monitoring feature you will need Fltk 1.1.4 or later, and audio meter module, and a cartesian plotting module. Fltk may be obtained from http://www.fltk.org. The audio meter module may be obtained from downloads/Fl_Audio_meter.tgz . The cartesian plotting module may be obtained from http://134.226.68.29/fltk. However, there is no suitable makefile supplied with that. You can find a version at downloads/Fl_Cartesian.tgz which will build as a Linux library. The actual code in both these versions is identical. You need to have Fltk 1.1.4 or later installed before building the plotting library.

Applications

SpanDSP is used by various popular applications packages, for various purposes. For example:

Note than recent versions of SpanDSP are licenced under LGPL 2.1. Earlier versions were licenced under GPL 2.0.