Difference between revisions of "Installation"

From Madagascar
Jump to navigation Jump to search
Line 25: Line 25:
 
Each API option has [[Advanced Installation#Dependencies|its own prerequisites]].
 
Each API option has [[Advanced Installation#Dependencies|its own prerequisites]].
  
Note that building under cygwin on [[Windows]] requires several preparatory steps.
+
Note that building under cygwin on [[Windows]] requires several preparatory steps .
  
  

Revision as of 08:22, 17 June 2010

Fotolia 4727725 XS.jpg

Madagascar has been installed and is periodically tested on

  • Different Linux distributions (Fedora, RedHat, SuSE, Debian, Ubuntu, Oracle, Mandriva, YellowDog)
  • FreeBSD
  • Solaris
  • HP-UX
  • SGI Irix
  • MacOS X
  • Windows under the Cygwin environment and under Microsoft's Services for UNIX environment.

Precompiled binary packages

A precompiled binary package of the latest Madagascar stable release exists for Mac OS X. See the Madagascar download page for details.

Installation from source

Prerequisites

  1. C compiler. Any ANSI-compliant compiler such as GCC should work. GCC usually comes pre-installed on Linux machines.
  2. Python interpreter. Python is an interpretable programming language. It is used in Madagascar installation scripts and project management scripts. Python comes pre-installed on some platforms. Madagascar currently attempts to support Python versions 2.2 through 2.6. Versions before 2.2 are probably not common, but if you experience problems and you have an earlier version you should probably upgrade.

SCons is also required, but it is included with Madagascar and the configure scripts will attempt to install it for you if you don't have it already. For more information see the Advanced Installation guide.

Each API option has its own prerequisites.

Note that building under cygwin on Windows requires several preparatory steps .


Testing and quick start

Here are a few simple tests and and a brief introduction to Madagascar:

Typing any Madagascar command in a terminal window without parameters should generate a brief documentation on that command. Try one of the following:

sfin
sfattr
sfspike
sfbandpass
sfwiggle

If you get an error like "Command not found", you may not have your $PATH environment variable set correctly, or you may need to issue the rehash command.

Now try making a simple Madagascar data file:

sfspike n1=1000 k1=300 > spike.rsf

This command generates a one dimensional list of 1000 numbers, all zero except for a spike equal to one at position 300. If this generates an error like

Cannot write to data file /path/spike.rsf@: Bad file descriptor

you may need to create the directory pointed to by your $DATAPATH environment variable.

The file spike.rsf is a text header. The actual data are stored in the binary file pointed to by the in= parameter in the header. You can look at the header file directly with more, or better, examine the file properties with

sfin spike.rsf

You can learn more about the contents of spike.rsf with

sfattr < spike.rsf

The following command applies a bandpass filter to spike.rsf and puts the result in filter.rsf:

sfbandpass fhi=2 phase=1 < spike.rsf > filter.rsf

The following command makes a graphics file from filter.rsf:

sfwiggle clip=0.02 title="Welcome to Madagascar" < filter.rsf > filter.vpl

If you have an X11 display program running, and your $DISPLAY environment variable is set correctly, you can display the graphics file with:

sfpen < filter.vpl

You can pipe Madagascar commands together and do the whole thing at once like this:

sfspike n1=1000 k1=300 | sfbandpass fhi=2 phase=1 | \
sfwiggle clip=0.02 title="Welcome to Madagascar" | sfpen

If you have SCons installed, you can use it to automate Madagascar processing. Here is a simple SConstruct file to make filter.rsf and filter.vpl:

<python>

  1. Setting up

from rsfproj import *

  1. Make filter.rsf

Flow('filter',None,

    'spike n1=1000 k1=300 | bandpass fhi=2 phase=1')
  1. Make filter.vpl

Result('filter',

      'wiggle clip=0.02 title="Welcome to Madagascar"')

End() </python>

Put the file in an empty directory, give it the name SConstruct, cd to that directory, and issue the command:

scons

The graphics file is now stored in the Fig subdirectory. You can view it manually with:

sfpen Fig/filter.vpl

... or you can use:

scons view

When an SConstruct file makes more than one graphics file, the scons view command will display all of them in sequence.

Welcome to Madagascar.

Now edit the SConstruct file: change the title string on the Result line to "Hello World!", save the file, and rerun the scons command. You will see that scons has figured out that the file filter.rsf does not need to be rebuilt because nothing that affects it has changed. Only the file filter.vpl is rebuilt.