Disable unused features to reduce binary size
[platform/upstream/alsa-lib.git] / INSTALL
1
2                         ALSA library installation
3                         =========================
4
5 Installation from tarball
6 -------------------------
7
8 For installation you can use these commands:
9
10         ./configure
11         make install
12
13
14 Compilation from HG sources
15 ---------------------------
16
17 You need also GNU packages automake and libtool installed in your system
18 to compile HG (Mercurial) sources of alsa-lib package.
19
20 For compilation you can use these commands:
21
22         libtoolize --force --copy --automake
23         aclocal
24         autoheader
25         automake --foreign --copy --add-missing
26         autoconf
27         ./configure
28         make
29
30 The included hgcompile script does this job for you.
31
32 Note: Some automake packages have missing aclocal program. Use newer version
33       in the case.
34
35
36 Compilation of static library
37 -----------------------------
38
39 If you would like to use the static ALSA library, you need to use these
40 options for the configure script:
41
42         ./configure --enable-shared=no --enable-static=yes
43
44 Unfortunately, due to bug in the libtool script, the shared and static
45 library cannot be built together.
46
47
48 Partial Builds
49 --------------
50
51 You can choose the core components to build via --enable-* or --disable-*
52 configure option for reducing the size of libasound.  The selectable
53 components are: pcm, mixer, rawmidi, hwdep, seq and instr.
54 For example, --disable-rawmidi will prevent to build the stuff related
55 with raw MIDI.  As default, all components are enabled.
56
57 The PCM plugins to build can be selected via --with-pcm-plugins
58 configure option.  Multiple plugins can be passed by separation with
59 comma.  For example, to select _only_ rate and linear plugins (and
60 disable other plugins), pass
61         --with-pcm-plugins=rate,linear
62 Note that "hw" plugin is always enabled.
63 Passing "all" will select all available plugins (which is the default
64 behavior).
65
66 When you select "plug" plugin, copy and linear plugins will be
67 automatically selected, too.  That is, the linear-format and
68 access-type conversions are always available with plug layer.
69 The other conversions of plug (channel shrink/expansion, rate,
70 non-linear and float conversions) are enabled when the corresponding
71 plugin is selected, too.
72
73
74 Configuration for cross-compilation
75 -----------------------------------
76
77 When you would like to cross-compile ALSA library (e.g. compile on
78 i686 host but for arm architecture) you will need to call ./configure
79 script with additional parameters:
80
81 CC=arm-linux-gcc ./configure --target=arm-linux
82
83 In this example host where the library is build is guessed (should be
84 given with --host=platform) and target for which is the library build is
85 Linux on ARM architecture.  You should omit setting 'CC' variable and
86 cross-compiler will be guessed too.
87
88 So simplest version would be:
89
90 ./configure --target=arm-linux
91
92 For platform names in the form cpu-vendor-os (or aliases for this)
93 you should look in 'config.guess' script. Target and all paths
94 used here are only examples and should not be directly applicable to
95 your system.
96
97 Configuration for machines without FPU
98 --------------------------------------
99
100 If your machine does not have FP unit, you should use '--with-softfloat'
101 option. This option disables usage of float numbers in PCM route plugin.
102 ALSA could then leave much more CPU cycles for your applications, but you 
103 could still need some floating point emulator.
104
105 Jack plugin
106 -----------
107
108 JACK plugin is moved to alsa-plugins package.
109
110 Trouble Shooting
111 ----------------
112
113 * Install path on Fedora Core 3
114
115   FC3 installs its system ALSA library to /lib instead of /usr/lib.
116   Specify --libdir=/lib to configure to overwrite it with the new library,
117   or run like
118
119         # ln -sf /usr/lib/libasound.so.2.0.0 /lib/libasound.so.2.0.0
120
121   to make symlink to the new path.
122   Note that /lib might be /lib64 on 64bit architecture.