ALSA library installation
=========================
-Installation from tarbal
-------------------------
+Installation from tarball
+-------------------------
For installation you can use these commands:
./configure
make install
-If ./configure command complain that alsa-driver package isn't 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/linux directory (usually in
-/usr/include/linux directory).
-Note: If you change kernel sources frequently, please, check if you have
- installed alsa-driver for current version of your kernel.
+Compilation from Git-sources
+---------------------------
-Compilation from CVS sources
-----------------------------
+Requirements:
+ * automake
+ * libtool
-You need also GNU packages automake and libtool installed in your system
-to compile CVS sources of alsa-lib package.
+To compile alsa-lib from source:
-For compilation you can use these commands:
+ ./gitcompile
+
+If you do not want to use the supplied gitcompile-script, you can
+compile alsa-lib manually by using these steps:
libtoolize --force --copy --automake
aclocal
./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
-----------------------------
Unfortunately, due to bug in the libtool script, the shared and static
library cannot be built together.
+
+
+Partial Builds
+--------------
+
+You can choose the core components to build via --enable-* or --disable-*
+configure option for reducing the size of libasound. The selectable
+components are: pcm, mixer, rawmidi, hwdep, seq and instr.
+For example, --disable-rawmidi will prevent to build the stuff related
+with raw MIDI. As default, all components are enabled.
+
+The PCM plugins to build can be selected via --with-pcm-plugins
+configure option. Multiple plugins can be passed by separation with
+comma. For example, to select _only_ rate and linear plugins (and
+disable other plugins), pass
+ --with-pcm-plugins=rate,linear
+Note that "hw" plugin is always enabled.
+Passing "all" will select all available plugins (which is the default
+behavior).
+
+When you select "plug" plugin, copy and linear plugins will be
+automatically selected, too. That is, the linear-format and
+access-type conversions are always available with plug layer.
+The other conversions of plug (channel shrink/expansion, rate,
+non-linear and float conversions) are enabled when the corresponding
+plugin is selected, too.
+
+
+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 additional parameters:
+
+CC=arm-linux-gcc ./configure --host=arm-linux
+
+You can omit setting 'CC' variable and cross-compiler will be guessed too.
+
+So simplest version would be:
+
+./configure --host=arm-linux
+
+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.
+
+Thread-safety option
+--------------------
+
+As default, major PCM functions of alsa-lib are built to be
+thread-safe with pthread mutex (while this wasn't present in the
+versions earlier than 1.1.2). If you want to build without this
+thread-safety support but reduce the overhead, pass
+--disable-thread-safety configure option.
+
+Jack plugin
+-----------
+
+JACK plugin is moved to alsa-plugins package.
+
+Trouble Shooting
+----------------
+
+* Install path on Fedora Core 3
+
+ FC3 installs its system ALSA library to /lib instead of /usr/lib.
+ Specify --libdir=/lib to configure to overwrite it with the new library,
+ or run like
+
+ # ln -sf /usr/lib/libasound.so.2.0.0 /lib/libasound.so.2.0.0
+
+ to make symlink to the new path.
+ Note that /lib might be /lib64 on 64bit architecture.