1d5ac70f0Sopenharmony_ci
2d5ac70f0Sopenharmony_ci			ALSA library installation
3d5ac70f0Sopenharmony_ci			=========================
4d5ac70f0Sopenharmony_ci
5d5ac70f0Sopenharmony_ciInstallation from tarball
6d5ac70f0Sopenharmony_ci-------------------------
7d5ac70f0Sopenharmony_ci
8d5ac70f0Sopenharmony_ciFor installation you can use these commands:
9d5ac70f0Sopenharmony_ci
10d5ac70f0Sopenharmony_ci	./configure
11d5ac70f0Sopenharmony_ci	make install
12d5ac70f0Sopenharmony_ci
13d5ac70f0Sopenharmony_ci
14d5ac70f0Sopenharmony_ciCompilation from Git-sources
15d5ac70f0Sopenharmony_ci---------------------------
16d5ac70f0Sopenharmony_ci
17d5ac70f0Sopenharmony_ciRequirements:
18d5ac70f0Sopenharmony_ci	* automake
19d5ac70f0Sopenharmony_ci	* libtool
20d5ac70f0Sopenharmony_ci
21d5ac70f0Sopenharmony_ciTo compile alsa-lib from source:
22d5ac70f0Sopenharmony_ci
23d5ac70f0Sopenharmony_ci	./gitcompile
24d5ac70f0Sopenharmony_ci
25d5ac70f0Sopenharmony_ciIf you do not want to use the supplied gitcompile-script, you can
26d5ac70f0Sopenharmony_cicompile alsa-lib manually by using these steps:
27d5ac70f0Sopenharmony_ci
28d5ac70f0Sopenharmony_ci	libtoolize --force --copy --automake
29d5ac70f0Sopenharmony_ci	aclocal
30d5ac70f0Sopenharmony_ci	autoheader
31d5ac70f0Sopenharmony_ci	automake --foreign --copy --add-missing
32d5ac70f0Sopenharmony_ci	autoconf
33d5ac70f0Sopenharmony_ci	./configure
34d5ac70f0Sopenharmony_ci	make
35d5ac70f0Sopenharmony_ci
36d5ac70f0Sopenharmony_ci
37d5ac70f0Sopenharmony_ciNote: Some automake packages have missing aclocal program. Use newer version
38d5ac70f0Sopenharmony_ci      in the case.
39d5ac70f0Sopenharmony_ci
40d5ac70f0Sopenharmony_ci
41d5ac70f0Sopenharmony_ciCompilation of static library
42d5ac70f0Sopenharmony_ci-----------------------------
43d5ac70f0Sopenharmony_ci
44d5ac70f0Sopenharmony_ciIf you would like to use the static ALSA library, you need to use these
45d5ac70f0Sopenharmony_cioptions for the configure script:
46d5ac70f0Sopenharmony_ci
47d5ac70f0Sopenharmony_ci	./configure --enable-shared=no --enable-static=yes
48d5ac70f0Sopenharmony_ci
49d5ac70f0Sopenharmony_ciUnfortunately, due to bug in the libtool script, the shared and static
50d5ac70f0Sopenharmony_cilibrary cannot be built together.
51d5ac70f0Sopenharmony_ci
52d5ac70f0Sopenharmony_ci
53d5ac70f0Sopenharmony_ciPartial Builds
54d5ac70f0Sopenharmony_ci--------------
55d5ac70f0Sopenharmony_ci
56d5ac70f0Sopenharmony_ciYou can choose the core components to build via --enable-* or --disable-*
57d5ac70f0Sopenharmony_ciconfigure option for reducing the size of libasound.  The selectable
58d5ac70f0Sopenharmony_cicomponents are: pcm, mixer, rawmidi, hwdep, seq and instr.
59d5ac70f0Sopenharmony_ciFor example, --disable-rawmidi will prevent to build the stuff related
60d5ac70f0Sopenharmony_ciwith raw MIDI.  As default, all components are enabled.
61d5ac70f0Sopenharmony_ci
62d5ac70f0Sopenharmony_ciThe PCM plugins to build can be selected via --with-pcm-plugins
63d5ac70f0Sopenharmony_ciconfigure option.  Multiple plugins can be passed by separation with
64d5ac70f0Sopenharmony_cicomma.  For example, to select _only_ rate and linear plugins (and
65d5ac70f0Sopenharmony_cidisable other plugins), pass
66d5ac70f0Sopenharmony_ci	--with-pcm-plugins=rate,linear
67d5ac70f0Sopenharmony_ciNote that "hw" plugin is always enabled.
68d5ac70f0Sopenharmony_ciPassing "all" will select all available plugins (which is the default
69d5ac70f0Sopenharmony_cibehavior).
70d5ac70f0Sopenharmony_ci
71d5ac70f0Sopenharmony_ciWhen you select "plug" plugin, copy and linear plugins will be
72d5ac70f0Sopenharmony_ciautomatically selected, too.  That is, the linear-format and
73d5ac70f0Sopenharmony_ciaccess-type conversions are always available with plug layer.
74d5ac70f0Sopenharmony_ciThe other conversions of plug (channel shrink/expansion, rate,
75d5ac70f0Sopenharmony_cinon-linear and float conversions) are enabled when the corresponding
76d5ac70f0Sopenharmony_ciplugin is selected, too.
77d5ac70f0Sopenharmony_ci
78d5ac70f0Sopenharmony_ci
79d5ac70f0Sopenharmony_ciConfiguration for cross-compilation
80d5ac70f0Sopenharmony_ci-----------------------------------
81d5ac70f0Sopenharmony_ci
82d5ac70f0Sopenharmony_ciWhen you would like to cross-compile ALSA library (e.g. compile on
83d5ac70f0Sopenharmony_cii686 host but for arm architecture) you will need to call ./configure
84d5ac70f0Sopenharmony_ciscript with additional parameters:
85d5ac70f0Sopenharmony_ci
86d5ac70f0Sopenharmony_ciCC=arm-linux-gcc ./configure --host=arm-linux
87d5ac70f0Sopenharmony_ci
88d5ac70f0Sopenharmony_ciYou can omit setting 'CC' variable and cross-compiler will be guessed too.
89d5ac70f0Sopenharmony_ci
90d5ac70f0Sopenharmony_ciSo simplest version would be:
91d5ac70f0Sopenharmony_ci
92d5ac70f0Sopenharmony_ci./configure --host=arm-linux
93d5ac70f0Sopenharmony_ci
94d5ac70f0Sopenharmony_ciFor platform names in the form cpu-vendor-os (or aliases for this)
95d5ac70f0Sopenharmony_ciyou should look in 'config.guess' script. Target and all paths
96d5ac70f0Sopenharmony_ciused here are only examples and should not be directly applicable to
97d5ac70f0Sopenharmony_ciyour system.
98d5ac70f0Sopenharmony_ci
99d5ac70f0Sopenharmony_ciConfiguration for machines without FPU
100d5ac70f0Sopenharmony_ci--------------------------------------
101d5ac70f0Sopenharmony_ci
102d5ac70f0Sopenharmony_ciIf your machine does not have FP unit, you should use '--with-softfloat'
103d5ac70f0Sopenharmony_cioption. This option disables usage of float numbers in PCM route plugin.
104d5ac70f0Sopenharmony_ciALSA could then leave much more CPU cycles for your applications, but you 
105d5ac70f0Sopenharmony_cicould still need some floating point emulator.
106d5ac70f0Sopenharmony_ci
107d5ac70f0Sopenharmony_ciThread-safety option
108d5ac70f0Sopenharmony_ci--------------------
109d5ac70f0Sopenharmony_ci
110d5ac70f0Sopenharmony_ciAs default, major PCM functions of alsa-lib are built to be
111d5ac70f0Sopenharmony_cithread-safe with pthread mutex (while this wasn't present in the
112d5ac70f0Sopenharmony_civersions earlier than 1.1.2).  If you want to build without this
113d5ac70f0Sopenharmony_cithread-safety support but reduce the overhead, pass
114d5ac70f0Sopenharmony_ci--disable-thread-safety configure option.
115d5ac70f0Sopenharmony_ci
116d5ac70f0Sopenharmony_ciJack plugin
117d5ac70f0Sopenharmony_ci-----------
118d5ac70f0Sopenharmony_ci
119d5ac70f0Sopenharmony_ciJACK plugin is moved to alsa-plugins package.
120d5ac70f0Sopenharmony_ci
121d5ac70f0Sopenharmony_ciTrouble Shooting
122d5ac70f0Sopenharmony_ci----------------
123d5ac70f0Sopenharmony_ci
124d5ac70f0Sopenharmony_ci* Install path on Fedora Core 3
125d5ac70f0Sopenharmony_ci
126d5ac70f0Sopenharmony_ci  FC3 installs its system ALSA library to /lib instead of /usr/lib.
127d5ac70f0Sopenharmony_ci  Specify --libdir=/lib to configure to overwrite it with the new library,
128d5ac70f0Sopenharmony_ci  or run like
129d5ac70f0Sopenharmony_ci
130d5ac70f0Sopenharmony_ci	# ln -sf /usr/lib/libasound.so.2.0.0 /lib/libasound.so.2.0.0
131d5ac70f0Sopenharmony_ci
132d5ac70f0Sopenharmony_ci  to make symlink to the new path.
133d5ac70f0Sopenharmony_ci  Note that /lib might be /lib64 on 64bit architecture.
134