File: INSTALL

package info (click to toggle)
shogun 0.6.3-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 8,688 kB
  • ctags: 6,563
  • sloc: cpp: 61,677; python: 5,233; sh: 2,767; makefile: 555; objc: 37
file content (364 lines) | stat: -rw-r--r-- 9,776 bytes parent folder | download
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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
GENERAL

On most platforms (Linux,MacOSX,cygwin) it is sufficient to issue

./configure --interface=<interface>
make

where <interface> is one of the following R, matlab, python, octave.
Just running ./configure will compile a stand-a-lone version.

See ./configure --help for additional options.

If this does not work for you, see the SPECIFIC BUILD INSTRUCTIONS below


SPECIAL FEATURES

To enable Multiple Kernel Learning CPLEX(tm) is needed and one needs
to issue configure with ./configure --interface=<interface> --enable-cplex


REQUIREMENTS

Apart from the standard linux utils like bash, grep, test, sed, cut, ldd, uname gcc g++ and cat
python (debian package: python2.3 or python2.4 or python2.5), 
as well as makedepend (xutils-dev package) need to be installed, for the ./configure to work.

To compile the R interface you need to have the R developer files 
(debian package r-base-dev) installed.

To compile the octave interface you need to have the octave developer files 
(debian package octave2.1-headers or octave2.9-headers) installed.

To compile the python interface you need to have numpy version 1.x installed 
(debian package python-numpy and python-numpy-ext) installed.

Optionally you will need atlas and lapack (debian packages lapack3-dev, 
atlas3-headers atlas3-base-dev or atlas3-altivec-dev atlas3-sse2-dev)
installed. Note that atlas/lapack is only supported under linux (high
performance computing should be done under linux only anyway). In case
 atlas/lapack is unavailable, don't worry shogun will work without, though
slightly slower versions are used.


SPECIFIC BUILD INSTRUCTIONS


BUILDING ON DEBIAN GNU LINUX

Python (python2.3 or python2.4 or python2.5), as well as makedepend (xutils-dev package)
need to be installed.  To get atlas/lapack optimizations optionally also install the atlas3-*
packages aswell as the lapack3-* packages.

standalone:
===========

cd src
./configure
make

a shogun executable can be found in src/

octave
======

To compile the octave interface you need to have the octave developer files 
(debian package octave2.1-headers or octave2.9-headers).

then do a

./configure --interface=octave
make

a sg.oct file should be created. as a test start octave in the src/ directory
and type

addpath('../octave/examples')
svr_regression

R
=

To compile the R interface you need to have the R developer files 
(debian package r-base-dev) installed.

do the usual R CMD INSTALL <package>

python
======

To compile the python interface you need to have numpy version 1.x installed 
(debian package python-numpy and python-numpy-ext) and optionally for plotting
python-matplotlib installed. When using matplotlib, make sure you use numpy as
the underlying numeric toolkit, i.e. you have the line 

numerix      : numpy

in your /etc/matplotlibrc


then do a
./configure --interface=python
make

A sg.so file should be created in the src/ directory:
To test whether it is working try
PYTHONPATH=`pwd` python ../python/examples/svm_classification.py

object oriented python/swig interface:
======================================

proceed as for the python interface but now in addition install the swig package and
configure+compile shogun with:

  ./configure --interface=python-modular
  make
  sudo make install

to test if it is working try python ../python/examples/numpy_svm_matplotlib.py

BUILDING ON MACOSX

python:
=======
Get the precompiled binary packages
python, matplotlib, NumPy and wxPython from http://pythonmac.org/packages/py24-fat/index.html

Make sure you installed the XCode tools including X11 (such that makedepend
/usr/X11R6/bin/makedepend exists).

Note: On powerpc archs don't use gcc-4.0 / gcc-4.1 as it will fail with an internal compiler
error. Try gcc-4.2 instead or disable optimization (using -O0).
Furthermore there it *may* happen that compiling hangs with an error in
 /usr/include/architecture/ppc/math.h:513.
 
A workaround is to uncomment this in math.h:

 typedef struct __complex_s {
        double Real;
        double Imag;
 } __complex_t;
 
Also make sure you don't mix python versions (i.e. python2.4 and python2.5) on build/runtime.
You can specify the python version as a argument to configure, e.g.: --python=python2.4

./configure --interface=python
make

to test if it is working try:

PYTHONPATH=`pwd` python ../python/examples/svm_classification.py

object oriented python/swig interface:
======================================
Follow the above instructions for python. Then use fink/darwinports to install swig.

./configure --interface=python-modular
make
sudo make install

to test if it is working try python ../python/examples/numpy_svm_matplotlib.py

octave:
=======
Use fink/darwinports to install octave. For intel-macs octave currently is only in the
unstable repository + it has to be compiled from source. Also note that g77
 got replaced by gfortran, so you might need to do a fink install gcc4 first (which takes
 an endless amount time to compile).

then do:

./configure --interface=octave
make

a sg.oct file should be created. as a test start octave in the src/ directory
and type

addpath('../octave/examples')
svr_regression

standalone:
===========
cd src
./configure
make

The shogun executable can be found in src/

R:
==
Install the full R package (e.g. the 93MB R-2.4.0.dmg image from
http://cran.r-project.org/bin/macosx/ )

then do the usual R CMD INSTALL <pkg>

After starting the R aqua gui, choose File->Source File and select the
shogun/R/examples/svm_classification.R example

If that does not work out (send us a bug report) and also please try the following:

Enter the src/ directory and do:

./configure --interface=R
(if that fails attach the configure.log in the bug report)
make

a sg.so file should be created. To test if that file is OK try in the
src/ directory:

R
>> dyn.load('sg.so')
sg <- function(...) .External("sg",...,PACKAGE="sg")
sg('help')

if that was still working go to the shogun/R directory and try
make clean
make

if a .tar.gz is successfully created, then the R CMD INSTALL <file>.tar.gz
should go through.

matlab:
=======

BUILDING ON WINDOWS / CYGWIN

	install gcc version 3.3 (gcc-3.4 is currently broken)

R:
==
I did not try the long and painful way of compiling R to get etc/Makeconf etc.
to be setup correctly. Thus the usual R CMD INSTALL <pkg> won't work (help welcome).

Instead install the R package from cran (i.e. using the R-2.4.0-win32.exe
		installer from http://cran.r-project.org/bin/windows/base/ )

Enter the src/ directory and do:

./configure --interface=R
(if that fails attach the configure.log in the bug report)
make

a sg.dll file should be created. To test if that file is OK try in the
src/ directory:

R
>> dyn.load('sg.dll')
sg <- function(...) .External("sg",...,PACKAGE="sg")
sg('help')

Instead of using library(sg) in your .R scripts you now have to use 

dyn.load('<path_to_shogun>/sg.dll')
sg <- function(...) .External("sg",...,PACKAGE="sg").

After this modification, The examples in R/examples should all work. To get
them to go start the R gui, choose File->Source R Code and select 
shogun/R/examples/svr_regression.R  (as this example has no other package dependencies).

matlab:
=======
	cd src
	./configure --interface=matlab
	make

	a sg.dll can be found in src/

	startup matlab and type sg('help') 

standalone:
===========

	cd src
	./configure
	make

	a shogun.exe can be found in src/


octave:
=======

	install octave and octave-headers
	cd src
	./configure --interface=octave
	make

	a sg.oct file can be found in src/
	try

	cd src
	octave
	addpath('../octave/examples')
	svr_regression


python:
=======

  install python2.4. then get numpy 1.0 from http://sourceforge.net/project/showfiles.php?group_id=1369&package_id=175103
  
  extract the archive and in the numpy-1.0 directory type 

	python setup.py install

  this will eventually fail creating the _capi.dll library, as the libmingwex.a
  lib is not beeing linked with. as a workaround type

	gcc -shared -Wl,--enable-auto-image-base build/temp.cygwin-1.5.21-i686-2.4/numpy/numarray/_capi.o -L/usr/lib/python2.4/config -lpython2.4 -o build/lib.cygwin-1.5.21-i686-2.4/numpy/numarray/_capi.dll /usr/lib/mingw/libmingwex.a

  followed by another 

	python setup.py install

  to test whether all worked out do

	 cd
	 python
	 import numpy
	 print numpy.__version__
	 
	 it should list 1.0

  install matplotlib (optional):

  to do so first get the following cygwin packages: freetype2, libpng, zlib (don't forget the devel packages)
  then download the matplotlib src
  http://prdownloads.sourceforge.net/matplotlib/matplotlib-0.87.7.tar.gz?download and extract the archive

  add missing library links: ln -s /lib/libtk84.a /lib/libtk8.4.a and ln -s /lib/libtcl84.a /lib/libtcl8.4.a 
  edit the setup.py file: and modify the line: rc = dict({'backend':'GTKAgg', 'numerix':'numpy'})
  do unset DISPLAY; python setup.py install 


  now compile shogun:
	./configure --interface=python
	make

  this will create a sg.dll in the src/ dir

  to test if it is working, try:
	 cd src
	 PYTHONPATH=`pwd` python ../python/examples/svm_classification.py

object oriented python/swig interface:
======================================

do all of the above but now in addition install the swig package and
configure+compile shogun with:

  ./configure --interface=python-modular
  make install

to test if it is working try python ../python/examples/numpy_svm_matplotlib.py


PROBLEMS

In case header files or libraries are not at standard locations one needs
to manually adjust the libray/include paths using --includes or --libs
(see configure --help for additional options) 

The current gcc/g++ version in cygwin is broken. Please downgrade to 
gcc/g++ 3.x.x to get a working octave interface.