ALSA library installation ========================= Installation from tarbal ------------------------ For installation you can use these commands: ./configure make install If ./configure command complain that alsa-driver package is not installed, please, check if --prefix option is same for alsa-driver and alsa-lib package. The configure script from alsa-lib package probably cannot find header file asound.h in $prefix/include/sound directory (usually in /usr/include/sound directory). Note: If you change kernel sources frequently, please, check if you have compiled and installed alsa-driver for current version of your kernel. Installation using a build-in version of ALSA in Linux kernel ------------------------------------------------------------- If you use a kernel build-in version of ALSA, use: ./configure --with-kernel= make install The directory /lib/modules//build/include/sound must exists for this kind of configuration. You may also specify the full-base for ALSA kernel headers: ./configure --with-soundbase= make install example: ./configure --with-soundbase=/usr/src/linux-2.5.5/include make install Compilation from CVS sources ---------------------------- You need also GNU packages automake and libtool installed in your system to compile CVS sources of alsa-lib package. For compilation you can use these commands: libtoolize --force --copy --automake aclocal autoheader automake --foreign --copy --add-missing autoconf ./configure make The included cvscompile script does this job for you. Note: Some automake packages have missing aclocal program. Use newer version in the case. Compilation of static library ----------------------------- If you would like to use the static ALSA library, you need to use these options for the configure script: ./configure --enable-shared=no --enable-static=yes Unfortunately, due to bug in the libtool script, the shared and static library cannot be built together. Configuration for cross-compilation ----------------------------------- When you would like to cross-compile ALSA library (e.g. compile on i686 host but for arm architecture) you will need to call ./configure script with aditional parameters: CC=arm-linux-gcc ./configure --target=arm-linux \ --with-soundbase=/usr/local/arm/src/linux/include In this example host where the library is build is guessed (should be given with --host=platform) and target for which is the library build is Linux on ARM architecture. You need to specify location of kernel includes configured for target architecture. This is used to find ALSA include files and so it should be set to prefix where '/sound' directory should be found. You should ommit setting 'CC' variable and cross-compiler will be guessed too. You could also use option '--prefix' to specify ALSA include directory directly if $prefix/include/sound exists. So simplest version would be: ./configure --target=arm-linux --with-soundbase=/usr/local/arm/include or ./configure --target=arm-linux --prefix=/usr/local/arm As you will likely specify the prefix, the last posibbility would be the best if everything match. On the listing of 'configure' script check if directory with ALSA headers was found properly same as platform specific configurations like processor type and selected cross-compiler. For platform names in the form cpu-vendor-os (or aliases for this) you should look in 'config.guess' script. Target and all paths used here are only examples and should not be directly applicable to your system. Configuration for machines without FPU -------------------------------------- If your machine does not have FP unit, you should use '--with-softfloat' option. This option disables usage of float numbers in PCM route plugin. ALSA could then leave much more CPU cycles for your applications, but you could still need some floating point emulator.