Installation
Madagascar has been installed and is periodically tested on different platforms
- Linux distributions (Fedora, RedHat, Ubuntu, etc.)
- MacOS X
- Windows under the Cygwin environment.
Precompiled binary packages[edit]
See the Madagascar download page for the availability of binary packages.
Installation from source[edit]
Platform-specific instructions[edit]
Specific instructions are provided for Windows users.
Please consult the Advanced Installation guide for other platform-specific instructions.
Prerequisites[edit]
- C compiler. Any ANSI-compliant compiler such as GCC should work. GCC usually comes pre-installed on Linux machines.
- 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 supports Python 3.
Each API option has its own prerequisites.
Prerequisites for optional add-on functionality are platform-specific.
Building under cygwin on Windows requires several preparatory steps.
General instructions[edit]
- Configuration: Open a terminal window, change to the top Madagascar source directory, and run You can examine the config.py file that this command generates. Additional options are available. You can obtain a full list of customizable variables by running scons -h. For example, to install Fortran-90 API bindings in addition to the basic package, run
./configure --prefix=/directory/where/you/want/madagascar/installed
After running ./configure you may see a list of dependencies that your system does not have installed (the items that have "no" next to them). Most of them are optional. If you decide to install additional packages for your platform, rerun the ./configure command../configure API=f90 --prefix=/directory/where/you/want/madagascar/installed
- Building and installing the package: Run If you need "root" privileges for installing under $RSFROOT, you may need to run
make install
ormake; su; make install
If make does not exist on your system, an alternative procedure can be found in the Troubleshooting section.make; sudo make install
- User setup: If your shell is sh or bash, add to your $HOME/.bashrc and $HOME/.profile files the line (if used something different in the --prefix option to ./configure, use that instead of ~/RSFSRC). If your shell is (t)csh, add to your $HOME/.cshrc file the line
source ~/RSFSRC/share/madagascar/etc/env.sh
(if used something different in the --prefix option to ./configure, use that instead of ~/RSFSRC.) Please be aware that, on some systems, the default value for DATAPATH set in the script above may get automatically cleaned at some intervals, so if you want to keep your data binaries for a long time, set DATAPATH in your resource file to another location where you have write access and that allows large files. Remember that the value of DATAPATH should have a slash at the end. e.g. addsource ~/RSFSRC/share/madagascar/etc/env.csh
to ~/.bashrc and ~/.profile .export DATAPATH=~/RSFDATA/
Uninstall[edit]
To clean all intermediate files and all installed files, run
scons -c install
or
make distclean
in the source code directory.
Troubleshooting[edit]
Alternative build/install procedure[edit]
- Set the environment variables: If your shell is sh or bash, type Else, if your shell is csh or tcsh, type
source env.sh
source env.csh
- Build: Type scons
- Install: Run scons install . If you need "root" privileges for installing under $RSFROOT, you may need to run or
su; scons install
sudo scons install
Other issues[edit]
Note that scons does not inherit your environmental variables including PATH. If the configuration part ends with the message like
checking if cc works ... failed
the problem may be that your compiler is in an unusual place. Try
./configure CC=/full/path/to/cc
or
./configure CC=`which cc`
On Windows under SFU, use the gcc compiler
./configure CC=/opt/gcc.3.3/bin/gcc
Please consult the Advanced Installation guide for more information.
Testing and quick start[edit]
Here are a few simple tests and a brief introduction to Madagascar:
Typing any Madagascar command in a terminal window without parameters should generate brief documentation. 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=y < 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=y | \ 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:
#
# Setting up
#
from rsf.proj import *
#
# Make filter.rsf
#
Flow('filter',None,'spike n1=1000 k1=300 | bandpass fhi=2 phase=y')
#
# Make filter.vpl
#
Result('filter','wiggle clip=0.02 title="Welcome to Madagascar"')
End()
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 a SConstruct file makes more than one graphics file, the scons view command will display all of them in sequence.
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.