File: INSTALL

package info (click to toggle)
clam 1.4.0-6
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 17,836 kB
  • ctags: 20,981
  • sloc: cpp: 92,504; python: 9,721; ansic: 1,602; xml: 444; sh: 239; makefile: 153; perl: 54; asm: 15
file content (165 lines) | stat: -rw-r--r-- 5,792 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
This file explains how to compile and install the CLAM libraries and 
applications from the source tarballs or a subversion checkous. 
Alternatively, CLAM website provides already compiled packages for several 
platforms.

http://clam-project.org/download.html

Checkout the subversion repository

	$ svn co http://clam-project.org/clam/trunk clam

 1. Install CLAM dependencies

 This step is different for each architecture (Linux, Windows, MacOSX).
 Such platform dependant steps at detailed at the end of this file.
   
 2. Compile CLAM libraries from the source

 Change the directory to CLAM/ and execute:

        $ scons configure
        $ scons
        $ sudo scons install
 
 This will compile all the libraries with default options, and install
 them to the default dirs ( /usr/local/lib/ and /usr/local/include/ )

 Troubleshooting: in some scenarios, the first scons command ends with error
 and is necessary to re-run scons a second time.
 
 Tip: use "scons -j3" to take advantadge of multi-threading if you machine is a dual-core.

 To install clam in a non system-wide place (usefull when developing) use 
 scons configure with these options: (you must create the destination dir before)

	$ scons configure prefix=~/local
 
 Then export LD_LIBRARY_PATH=~/local/lib before running the apps with these libs.
 (Probably you also want to add this export line into your .bashrc)
 
 To see all available build options run:

        $ scons --help

 Note that scons saves the last used options in the options.cache file. 
 These options will be used by default in further "scons" commands.

 If you plan to use your CLAM build for performance-sensitive applications consult the
 tips below (4. Tips for increasing performance).
 
 MacOSX specific: the equivalent to LD_LIBRARY_PATH in mac is DYLD_LIBRARY_PATH.
   
 ** Warning about compiler Errors: ** 
 Because scons copies all sources in CLAM/scons/libs/ you must be aware that the 
 paths given by the g++ error log are NOT the original sources. For example, if scons 
 returns: "scons/libs/core/src/Processing.cxx:56: error: ..." you should not edit this 
 file but the one in src/ (searchable by  $ find  src/ -name "Processing.cxx")

 3. Compile CLAM applications.

 Applications can be download from the CLAM website in separate tarballs.
 If you are using svn they are folders at the clam trunk.
 Go to the root of the application source tree (e.g. NetworkEditor) 
 and issue: (maybe changing the prefix)

        $ scons prefix=/usr/local clam_prefix=/usr/local

 For further building options do :

        $ scons --help


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



2.1 Install CLAM dependencies on Linux

 Debian/Ubuntu
 (do "sudo apt-get install <packages>")

 * Packages to compile clam libs:
   build-essential scons ladspa-sdk  libfftw3-dev libjack-dev libmad0-dev libogg-dev libsndfile1-dev libvorbis-dev libid3-3.8.3-dev libasound2-dev portaudio19-dev libxerces-c2-dev

NOTE about libxerces: devel package to be installed for versions of Ubuntu < 8.10 is libxerces27-dev
libxerces27-dev

 ** to pass the tests: libcppunit-dev 

 * Qt4 packages to compile NetworkEditor and Annotator:
 qt4-dev-tools libqt4-dev libqt4-opengl-dev (the last, from revision 11755)

NOTE about Qt version: 
from CLAM svn revision 11755 support to qt4.3 is discontinued and qt4.4 is required.
If you are a Ubuntu 8.04 (Hardy) user you can enable the hardy-backports repository

* Qt3 packages to compile SMSTools and Voice2MIDI:
 libqt3-headers libqt3-mt-dev 

 
 Redhat / Fedora Core packages list (tested with FC5)
   gcc-c++ scons fftw2-devel fltk-devel libvorbis-devel libogg-devel qt-devel
   qt-designer libxml++-devel alsa-lib-devel libsndfile-devel ladspa-devel 
   id3lib-devel libXi-devel 
   Unofficial Pakages:
   libmad-devel (lvn5) jack-audio-connection-kit-devel (rhfc5.ccrma)
   qt4-devel, qt4 



2.2 Install CLAM dependencies on Mac OSX

Build instructions for CLAM in Mac OSX are currently in this wiki:

http://clam-project.org/wiki/Devel/Mac_OSX_build



2.3 Install CLAM dependencies on Windows

See instructions on the wiki for native compilation with MinGW 
or cross compilation from Linux

 http://www.clam-project.org/wiki/Devel/Windows_MinGW_build
 http://www.clam-project.org/wiki/Devel/Windows_MinGW_cross_compile

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 
 
 3. Tips for increasing performance

 If you plan to use CLAM in performance-sensitive applications it's a good idea to
 compile with the release flag set, as this tells the compiler to use optimizations:
 	
	$ scons configure release=1

 Also if you use the fourier transform a lot in CLAM, try using the fast fftw3 
 implementation:

 	$ scons configure with-fftw3=1

 Of course you can do both:

 	$ scons configure release=1 with-fftw3=1
 
 If you decide to use the fftw3 library you can further improve the fft performance
 by precomputing wisdom. The fftw3 tries to optimize the algorithms it uses for your
 system, this takes a long time at first but allows the transforms to be later 
 computed much faster. To calculate the wisdom for the transforms most often used in
 CLAM issue these commands (you need the fftw3 package):

 	$ fftw-wisdom -v -x -o wisdom rof32768 cif32768

 And then move the resulting wisdom file to the default system wisdom location (you
 need root access for this):

 	$ sudo mv wisdom /etc/fftw/

 Don't worry if the file /etc/fftw/wisdom already exists - you do not lose any
 information previously stored in it, because fftw-wisdom reads this file first and
 includes it in the new wisdom file it generates.

 Generating fftw wisdom has been tested under linux, for using wisdom on other 
 operating systems consult your fftw3 user documentation.