Editing
Advanced Installation
(section)
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=Platform-specific installation advice= ==Supported platforms== Madagascar attempts to support any [http://en.wikipedia.org/wiki/POSIX POSIX-compliant] operating system demanded by users. For systems that bundle Python (i.e. Linux distributions, BSDs), backwards compatibility will attempt to cover those systems that were bundled with the oldest non-deprecated Python version currently supported by the latest stable version of [http://scons.org/ SCons]. For example, in early 2009 the stable SCons release (1.2) supported Python 2.2 or newer. [http://distrowatch.com/table.php?distribution=redhat Python 2.2 was bundled by RHEL3], so RHEL 3 and newer are supported. Attempts for backward compatibility with a given operating system are also stopped if the operating system itself becomes unsupported. For example, Python 2.2 was bundled by Fedora 1 and newer, but in January 2010 only Fedora 11 and 12 are actively maintained. Thus, in January 2010 Madagascar was not attempting to support Fedora 1, even though it included Python 2.2. Please keep in mind that the above statements constitute only general guidelines for what will be attempted, and do not constitute in any way a warranty of support. An application of the above guidelines to some Linux distributions follows: '''Support info''' {| class="wikitable" align="center" cellspacing="0" border="1" |- ! style="background:#ffdead;" | Distribution ! style="background:#ffdead;" | Life Cycle ! style="background:#ffdead;" | Supported versions |- | RHEL/CentOS/Scientific Linux | [https://www.redhat.com/security/updates/errata/ 7 years] | * 6 until 2017-11-30 * 5 until 2014-03-31 |- | Fedora | [http://fedoraproject.org/wiki/Fedora_Release_Life_Cycle Release X maintained until one month after the release of X+2] | * 15 until 2012-06-24 * 14 until 2011-12-02 |- | Ubuntu | [https://wiki.ubuntu.com/Releases Releases every 6 mo, maintained for 1.5 yrs; LTS versions every 2 yrs, maintained for 5 yrs] | * 15.10 until July 2016 * 14.04 LTS until end of April 2019 * 12.04.4 LTS until end of April 2017 |- | Debian | [http://wiki.debian.org/DebianLenny Usually: stable releases every 1.5-3 yrs, release X maintained 1 yr after release X+1] | * 6 until its TBD end of life (approx. 2014) * 5 until 2012-04 |- | openSUSE | [http://en.opensuse.org/Lifetime openSUSE releases Lifetime of 1.5-2.5 years] | * 11.4 until 2012-09-10 * 11.3 until 2012-01-15 |} ==Ubuntu== In '''Ubuntu 22.04''', you can install the essential Madagascar depenencies by running <pre> sudo apt install python3 python-is-python3 python3-dev python-dev-is-python3 python3-pip \ python3-numpy libxaw7-dev </pre> and (optionally) all of Madagascar's dependencies by running <pre> sudo apt install python3 python-is-python3 python3-dev python-dev-is-python3 python3-pip \ python3-numpy libxaw7-dev freeglut3-dev libnetpbm10-dev libgd-dev libplplot-dev \ libcairo2-dev libjpeg-dev swig g++ gfortran libopenmpi-dev libfftw3-dev libsuitesparse-dev git </pre> In '''Ubuntu 18.04''', you can install the essential Madagascar depenency by running <pre> sudo apt-get install libxaw7-dev </pre> and (optionally) all of Madagascar's dependencies by running <pre> sudo apt-get install libxaw7-dev freeglut3-dev libnetpbm10-dev libgd-dev libplplot-dev \ libavcodec-dev libcairo2-dev libjpeg-dev swig python-dev python-numpy g++ gfortran \ libopenmpi-dev libfftw3-dev libsuitesparse-dev python-epydoc git emacs25 </pre> In '''Ubuntu 15.10 ''Wily Werewolf''''' (as well as some previous versions), you can install the essential Madagascar depenency by running <pre> sudo apt-get install libxaw7-dev </pre> and (optionally) all of Madagascar's dependencies by running <pre> sudo apt-get install libxaw7-dev freeglut3-dev libnetpbm10-dev libgd-dev libplplot-dev \ libavcodec-dev libcairo2-dev libjpeg-dev swig python-dev python-numpy g++ gfortran \ libopenmpi-dev libfftw3-dev libsuitesparse-dev python-epydoc </pre> In Ubuntu 13.04 ''Raring Ringtail'', you can install all of Madagascar's dependencies by running <pre> sudo apt-get install freeglut3-dev g++ gfortran libgd2-xpm-dev libx11-dev libxaw7-dev \ libnetpbm10-dev swig python-dev python-numpy libblas-dev libcairo2-dev liblapack-dev \ libavcodec-dev python-epydoc scons </pre> In Ubuntu 12.10 ''Quantal Quetzal'', you can install all of Madagascar's dependencies by running <pre> sudo apt-get install freeglut3-dev g++ gfortran libgd2-xpm-dev libx11-dev libxaw7-dev \ libnetpbm10-dev swig python-dev python-numpy libblas-dev libcairo2-dev liblapack-dev \ libavcodec-dev python-epydoc </pre> In Ubuntu 12.04 ''Precise Pangolin'', you can install all of Madagascar's dependencies by running <pre> sudo apt-get install scons openmpi-bin libopenmpi-dev freeglut3-dev g++ gfortran libgd2-xpm-dev \ libglew1.6-dev libx11-dev libxaw7-dev libnetpbm10-dev swig python-dev python-scipy python-numpy \ libtiff4-dev scons units libblas-dev libcairo2-dev liblapack-dev libavcodec-dev python-epydoc </pre> In Ubuntu 10.10 ''Maverick Meerkat'', you can install all of Madagascar's dependencies by running <pre> sudo apt-get install freeglut3-dev g++ gfortran libgd2-xpm-dev libglew1.5-dev libjpeg62-dev \ libx11-dev libxaw7-dev libnetpbm10-dev swig python-dev python-scipy python-numpy libtiff4-dev \ scons units libblas-dev libcairo2-dev libavcodec-dev libplplot-dev </pre> In Ubuntu 9.04 ''Jaunty Jackalope'', the corresponding command is <pre> sudo apt-get install freeglut3-dev g++ gfortran libc6-dev libgd2-xpm-dev libglew1.5-dev libjpeg62-dev \ libx11-dev libxaw7-dev libnetpbm10-dev swig python-dev python-scipy python-numpy libtiff4-dev scons units </pre> Earlier versions may work with <pre> sudo apt-get install mesa-libGL-devel g++ g77 libc6-dev libgd2-xpm-dev libglew-dev libjpeg62-dev \ libx11-dev libxaw7-dev libnetpbm10-dev swig python-dev python-scipy python-numpy libtiff4-dev scons units </pre> If working with the development version, you will also need <tt>git</tt> or <tt>subversion</tt>. ==Alpine== In Alpine Linux, you can install the essential Madagascar depenencies by running <pre> sudo apk add python3 py3-pip gcc musl-dev libxaw-dev make </pre> ==Fedora, RedHat, CentOS, Scientific Linux, openSUSE== Install essential Madagascar dependencies with <pre> sudo yum install python gcc numpy libXaw-devel </pre> To install Python in the latest versions, you can use <pre> yum install python3 alternatives --set python /usr/bin/python3 </pre> Dependency package names, sorted by Linux distribution and Madagascar feature they provide. Packages that are not included in the standard distro repositories are hyperlinked to their providers. The tables below cover build dependencies. Names of packages that are runtime dependencies are '''highlighted''' in the tables below (task under construction). ''Note: In the future, it should be possible for the configuration scripts to output the dependency tables below, so that they are guaranteed to be in synch with a given Madagascar version'' '''Minimal install ("Core"), publishing and development''' {| class="wikitable" align="center" cellspacing="0" border="1" |- | ! style="background:#ffdead;" | Core ! style="background:#ffdead;" | LaTeX ! style="background:#ffdead;" | Development version ! style="background:#ffdead;" | C++ API ! style="background:#ffdead;" | F77 API, F90 API ! style="background:#ffdead;" | Python API ! style="background:#ffdead;" | Java API ! style="background:#ffdead;" | Octave API ! style="background:#ffdead;" | Matlab API |- ! style="background:#ffdead;" | Fedora 15 | binutils, gcc, glibc-headers, python | texlive-latex | subversion | gcc-c++ | gcc-gfortran | numpy, swig, python-devel | Java (Sun's? IcedTea?) | octave, octave-devel | [http://www.mathworks.com/ Matlab] with Mex |- ! style="background:#ffdead;" | Fedora 14 | binutils, gcc, glibc-headers, python | texlive-latex | subversion | gcc-c++ | gcc-gfortran | numpy, swig | Java (Sun's? IcedTea?) | octave, octave-devel | [http://www.mathworks.com/ Matlab] with Mex |- ! style="background:#ffdead;" | Fedora 13 | binutils, gcc, glibc-headers, python | texlive-latex | subversion | gcc-c++ | gcc-gfortran | numpy, swig | Java (Sun's? IcedTea?) | octave, octave-devel | [http://www.mathworks.com/ Matlab] |- ! style="background:#ffdead;" | CentOS 5 | binutils, gcc, glibc-headers; python (needs [http://dag.wieers.com/rpm/FAQ.php#B2 RPMforge's RHEL5 repository]) | ? | subversion | gcc-c++ | gcc-gfortran | numpy, swig | Java (Sun's? IcedTea?), [http://inside.mines.edu/~dhale/jtk/ Mines JTK] | [http://www.gnu.org/software/octave/ Octave, octave-devel] | [http://www.mathworks.com/ Matlab] |- ! style="background:#ffdead;" | openSUSE 11.0 | gcc, python | texlive-latex | subversion | gcc-c++ | gcc-fortran | [http://numpy.scipy.org/ NumPy], swig | Java (Sun's? IcedTea?), [http://inside.mines.edu/~dhale/jtk/ Mines JTK] | [http://www.gnu.org/software/octave/ Octave] | [http://www.mathworks.com/ Matlab] |} '''Graphics and visualization''' The minimum requirement is X11 graphics for running '''xtpen'''. {| class="wikitable" align="center" cellspacing="0" border="1" |- | ! style="background:#ffdead;" | X11 graphics ! style="background:#ffdead;" | vplot2gif ! style="background:#ffdead;" | vplot2avi ! style="background:#ffdead;" | Some sort of movies? ! style="background:#ffdead;" | TIFF output ! style="background:#ffdead;" | JPEG output ! style="background:#ffdead;" | PLplot graphics ! style="background:#ffdead;" | OpenGL graphics ! style="background:#ffdead;" | ppm (?) ! style="background:#ffdead;" | unknown |- ! style="background:#ffdead;" | Fedora 13 | libXaw-devel | gifsicle | ffmpeg (needs the [http://rpmfusion.org/ RPM Fusion] repository enabled) | ffmpeg-devel (needs the [http://rpmfusion.org/ RPM Fusion] repository enabled) | libtiff-devel | libjpeg-devel | plplot-devel | mesa-libGL-devel, freeglut, freeglut-devel | netpbm-devel | ? |- ! style="background:#ffdead;" | openSUSE 11.0 | xorg-x11-devel | ? | ? | ? | libtiff-devel | libjpeg-devel | plplot-devel | mesa-libGL-devel, freeglut, freeglut-devel | netpbm-devel | cairo-devel, gd-devel, glew-devel |} '''Numerical and file manipulation utilities''' {| class="wikitable" align="center" cellspacing="0" border="1" |- | ! style="background:#ffdead;" | OpenMP ! style="background:#ffdead;" | MPI ! style="background:#ffdead;" | BLAS/ATLAS ! style="background:#ffdead;" | Interface to the Fast Discrete Curvelet Transform ! style="background:#ffdead;" | sfunits |- ! style="background:#ffdead;" | Fedora 13 | libgomp | openmpi, openmpi-devel; openmpi-libs (?) | blas, blas-devel, atlas, atlas-devel | [https://wave.eos.ubc.ca/Software/Licenced/ pyct] | units |- ! style="background:#ffdead;" | CentOS 5 | ? | ? | ? | [https://wave.eos.ubc.ca/Software/Licenced/ pyct] | [http://www.gnu.org/software/units/units.html Gnu Units] |} '''Other''' {| class="wikitable" align="center" cellspacing="0" border="1" |- | ! style="background:#ffdead;" | Inclusions from Seismic Unix |- ! style="background:#ffdead;" | Fedora 14, 15 | [http://www.cwp.mines.edu/cwpcodes/ Seismic Unix] |- ! style="background:#ffdead;" | CentOS 5 | [http://www.cwp.mines.edu/cwpcodes/ Seismic Unix] |} '''Command to install all dependencies present in the public repositories''' Usually package management software will not install again a package that is already installed, so it should be safe to copy and paste the command below to a command line: {| class="wikitable" align="center" cellspacing="0" border="1" |- ! style="background:#ffdead;" | Fedora 15 | '''yum -y install''' binutils gcc glibc-headers scons texlive-latex subversion gcc-c++ gcc-gfortran numpy python python-devel swig octave octave-devel libgomp openmpi openmpi-devel blas blas-devel atlas atlas-devel units gifsicle ffmpeg ffmpeg-devel libtiff-devel libjpeg-devel plplot-devel mesa-libGL-devel freeglut freeglut-devel libXaw-devel netpbm-devel |- ! style="background:#ffdead;" | Fedora 13 | '''yum -y install''' binutils gcc glibc-headers scons texlive-latex subversion gcc-c++ gcc-gfortran numpy python swig octave octave-devel libgomp openmpi openmpi-devel blas blas-devel atlas atlas-devel units gifsicle ffmpeg ffmpeg-devel libtiff-devel libjpeg-devel plplot-devel mesa-libGL-devel freeglut freeglut-devel libXaw-devel netpbm-devel |- ! style="background:#ffdead;" | CentOS 5 | '''yum -y install''' binutils freeglut freeglut-devel gcc gcc-c++ gcc-gfortran glibc-headers libjpeg-devel libXaw-devel netpbm-devel |- ! style="background:#ffdead;" | openSUSE 11.0 | '''zypper install''' cairo-devel gcc gcc-c++ gcc-fortran gd-devel glew-devel libjpeg-devel libtiff-devel octave scons subversion texlive-latex xorg-x11-devel |} '''List of runtime dependencies only''' (needed by packagers of Madagascar in order to properly list dependencies): UNDER CONSTRUCTION ===Fedora 25=== The following explains how to install madagascar on Fedora 25. We use the following compiler: <code>gcc</code>, <code>g++</code> and <code>gfortran</code>. * Install some packages <syntaxhighlight lang="bash" inline style="white-space:wrap">sudo dnf install scons lapack-static lapack64-static atlas-static fftw-static gd gd-devel libtool-ltdl-devel \ libXaw-devel mesa-libGL-devel freeglut-devel netpbm-devel plplot-devel ffmpeg-devel swig openmpi openmpi-devel suitesparse-devel</syntaxhighlight> This installed the following packages: <pre> scons-2.5.1-1.fc25.noarch lapack-static-3.6.1-2.fc25.x86_64 lapack64-static-3.6.1-2.fc25.x86_64 atlas-static-3.10.2-14.fc25.x86_64 fftw-static-3.3.5-3.fc25.x86_64 gd-2.2.4-1.fc25.x86_64 gd-devel-2.2.4-1.fc25.x86_64 libtool-ltdl-devel-2.4.6-13.fc25.x86_64 libXaw-devel-1.0.13-4.fc25.x86_64 mesa-libGL-devel-17.0.5-3.fc25.x86_64 freeglut-devel-3.0.0-3.fc24.x86_64 netpbm-devel-10.78.00-1.fc25.x86_64 plplot-devel-5.11.1-13.fc25.x86_64 ffmpeg-devel-3.1.9-1.fc25.x86_64 swig-3.0.11-1.fc25.x86_64 openmpi-1.10.5-1.fc25.x86_64 openmpi-devel-1.10.5-1.fc25.x86_64 suitesparse-devel-4.4.6-7.fc25.x86_64 </pre> and many other dependencies. * Get the sources from the git repository <syntaxhighlight lang="bash">git clone https://github.com/ahay/src</syntaxhighlight> If you run now the <code>configure</code> script, you will get: <syntaxhighlight lang="bash"> checking for Python ... /usr/bin/python checking Python version ... 2.7.13 checking for RSFROOT ... /usr/local/rsf checking for SCons ... /usr/bin/scons checking SCons version ... v2.5.1.rel_2.5.1:3735:9dc6cee5c168[MODIFIED] Running RSFROOT=/usr/local/rsf /usr/bin/scons config ... ------------------------ scons: Reading SConscript files ... checking platform ... (cached) linux [fedora] checking for C compiler ... (cached) gcc checking if gcc works ... yes checking if gcc accepts '-x c -std=gnu99 -Wall -pedantic' ... yes checking for ar ... (cached) ar checking for libraries ... ['m'] checking complex support ... yes checking for X11 headers ... /usr/include checking for X11 libraries ... /usr/lib checking for OpenGL ... yes checking for sfpen ... (cached) xtpen checking for ppm ... yes checking for tiff ... yes checking for GD (PNG) ... yes checking for GD (GIF) ... yes checking for plplot ... no Optional package: plplot-devel checking for ffmpeg ... yes checking for cairo (PNG) ... yes checking for cairo (SVG) ... yes checking for cairo (PDF) ... yes checking for jpeg ... yes checking for BLAS ... yes checking for LAPACK ... no Optional package: blas + blas-devel + atlas + atlas-devel checking for SWIG ... (cached) /usr/bin/swig checking for numpy ... (cached) yes checking API options ... (cached) [] checking for C++ compiler ... (cached) g++ checking if g++ works ... yes checking if g++ accepts '-std=c++11 -U__STRICT_ANSI__ -Wall -pedantic' ... yes checking for MPICC ... (cached) /usr/lib64/openmpi/bin/mpicc checking if /usr/lib64/openmpi/bin/mpicc works ... yes checking for MPICXX ... (cached) /usr/lib64/openmpi/bin/mpicxx checking if /usr/lib64/openmpi/bin/mpicxx works ... yes checking for MPIRUN ... (cached) /usr/lib64/openmpi/bin/mpirun checking for Posix threads ... yes checking for OpenMP ... yes checking for CUDA ... (cached) no checking for FFTW ... yes checking if FFTW supports threads ... yes checking for SuiteSparse ... yes checking for pfft ... no scons: done reading SConscript files. scons: Building targets ... shell_script(["env.sh"], []) shell_script(["env.csh"], []) scons: done building targets. ------------------------ Done with configuration. </syntaxhighlight> Libraries <code>plplot</code> and <code>lapack</code> are not found. File <code>config.log</code> says <pre> /bin/ld: cannot find -lplplotd </pre> and <pre> gcc -o .sconf_temp/sfconftest_21 .sconf_temp/conftest_21.o -L/usr/lib64/atlas -lm -lf77blas -lcblas -latlas -llapack -lcblas /usr/lib64/atlas/liblapack.a(dgesv.o): In function `dgesv_': (.text+0x69): undefined reference to `xerbla_' /usr/lib64/atlas/liblapack.a(ATL_f77wrap_dgesv.o): In function `atl_f77wrap_dgesv_': (.text+0x10d): undefined reference to `ATL_xerbla' /usr/lib64/atlas/liblapack.a(ATL_dgetf2.o): In function `ATL_dgetf2': (.text+0x184): undefined reference to `ATL_dger' ... </pre> So library <code>plplotd</code> doesn't exist on Fedora 25 and the <code>configure</code> script is looking for the wrong <code>lapack</code> library. If compiling now, 2 other libraries won't be found: <code>gfortran</code> and <code>quadmath</code> * Regarding the <code>plplotd</code> library, edit file <code>framework/configure.py</code> and change the line 724: <syntaxhighlight lang="python" line start="724">plplot = context.env.get('PLPLOT','plplotd')</syntaxhighlight> to <syntaxhighlight lang="python" line start="724">plplot = context.env.get('PLPLOT','plplot')</syntaxhighlight> * As for the libraries ** <code>lapack</code> ** <code>gfortran</code> ** <code>quadmath</code> We must use the <code>lapack</code> library installed in <code>/usr/lib64</code>, not the one installed in <code>/usr/lib64/atlas</code>. And libraries <code>gfortran</code> and <code>quadmath</code> are installed in <code>/usr/lib/gcc/x86_64-redhat-linux/6.3.1/</code>. Edit file <code>framework/configure.py</code> and add the following 4 lines: <pre> ['/usr/lib/gcc/x86_64-redhat-linux/6.3.1/', '/usr/lib64/', </pre> and <pre> LIBS.append('gfortran') LIBS.append('quadmath') </pre> so that we end up with the following <code>blas</code> function: <syntaxhighlight lang="python" line start="971">def blas(context): context.Message("checking for BLAS ... ") text = ''' #ifdef __APPLE__ #include <Accelerate/Accelerate.h> #else #ifdef HAVE_MKL #include <mkl.h> #else #include <cblas.h> #endif #endif int main(int argc,char* argv[]) { float d, x[]={1.,2.,3.}, y[]={3.,2.,1.}; d = cblas_sdot(3,x,1,y,1); return 0; }\n''' if plat['OS'] == 'cygwin': context.env['ENV']['PATH'] = context.env['ENV']['PATH'] + \ ':/lib/lapack' res = context.TryLink(text,'.c') if res: context.Result(res) context.env['BLAS'] = True else: # first try blas LIBS = path_get(context,'LIBS') blas = context.env.get('BLAS','blas') LIBS.append(blas) res = context.TryLink(text,'.c') if res: context.Result(res) context.env['LIBS'] = LIBS context.env['BLAS'] = blas else: # some systems require cblas and atlas for atlas_dir in filter(os.path.isdir, ['/usr/lib/gcc/x86_64-redhat-linux/6.3.1/', # <--- add this line '/usr/lib64/', # <--- add this line '/usr/lib64/atlas/', '/usr/lib/atlas/']): context.env['LIBPATH'].append(atlas_dir) LIBS.pop() LIBS.append('f77blas') LIBS.append('cblas') LIBS.append('atlas') LIBS.append('gfortran') # <----------------------------------------------- add this line LIBS.append('quadmath') # <----------------------------------------------- add this line res = context.TryLink(text,'.c') if res: context.Result(res) context.env['LIBS'] = LIBS context.env['BLAS'] = 'cblas' else: context.Result(context_failure) context.env['CPPDEFINES'] = \ path_get(context,'CPPDEFINES','NO_BLAS') LIBS.pop() LIBS.pop() LIBS.pop() context.env['BLAS'] = None need_pkg('blas', fatal=False) </syntaxhighlight> * Run the <code>configure</code> script, for example: <syntaxhighlight lang="bash">./configure --prefix=/usr/local/rsf</syntaxhighlight> Output should give: <syntaxhighlight lang="bash"> checking for Python ... /usr/bin/python checking Python version ... 2.7.13 checking for RSFROOT ... /usr/local/rsf checking for SCons ... /usr/bin/scons checking SCons version ... v2.5.1.rel_2.5.1:3735:9dc6cee5c168[MODIFIED] Running RSFROOT=/usr/local/rsf /usr/bin/scons config ... ------------------------ scons: Reading SConscript files ... checking platform ... (cached) linux [fedora] checking for C compiler ... (cached) gcc checking if gcc works ... yes checking if gcc accepts '-x c -std=gnu99 -Wall -pedantic' ... yes checking for ar ... (cached) ar checking for libraries ... ['m'] checking complex support ... yes checking for X11 headers ... /usr/include checking for X11 libraries ... /usr/lib checking for OpenGL ... yes checking for sfpen ... (cached) xtpen checking for ppm ... yes checking for tiff ... yes checking for GD (PNG) ... yes checking for GD (GIF) ... yes checking for plplot ... yes checking for ffmpeg ... yes checking for cairo (PNG) ... yes checking for cairo (SVG) ... yes checking for cairo (PDF) ... yes checking for jpeg ... yes checking for BLAS ... yes checking for LAPACK ... yes checking for SWIG ... (cached) /usr/bin/swig checking for numpy ... (cached) yes checking API options ... (cached) [] checking for C++ compiler ... (cached) g++ checking if g++ works ... yes checking if g++ accepts '-std=c++11 -U__STRICT_ANSI__ -Wall -pedantic' ... yes checking for MPICC ... (cached) /usr/lib64/openmpi/bin/mpicc checking if /usr/lib64/openmpi/bin/mpicc works ... yes checking for MPICXX ... (cached) /usr/lib64/openmpi/bin/mpicxx checking if /usr/lib64/openmpi/bin/mpicxx works ... yes checking for MPIRUN ... (cached) /usr/lib64/openmpi/bin/mpirun checking for Posix threads ... yes checking for OpenMP ... yes checking for CUDA ... (cached) no checking for FFTW ... yes checking if FFTW supports threads ... yes checking for SuiteSparse ... yes checking for pfft ... no scons: done reading SConscript files. scons: Building targets ... shell_script(["env.sh"], []) shell_script(["env.csh"], []) scons: done building targets. ------------------------ Done with configuration. </syntaxhighlight> * Then run the compilation: <syntaxhighlight lang="bash">make</syntaxhighlight> * and finally the installation <syntaxhighlight lang="bash">sudo make install</syntaxhighlight> ==Debian 5== Specific dependencies: * Debian 5.0 ("Lenny"): Please make sure you have the <tt>libc6-dev</tt> package before trying to compile from source. The <tt>libXaw7-dev</tt> package might be a dependency for <tt>xtpen</tt> (was in Debian 4.0) ==Yellow Dog Linux 6.1 on Sony PlayStation 3== See [http://www.reproducibility.org/rsflog/uploads/Friday_Seminar_Madagascar_on_PS3.ppt Will Burnett's guide (PowerPoint)] ==Mac OS X== Install necessary Mac OS X applications using: * [http://www.macports.org/ MacPorts], an easy-to-use system for compiling, installing, and upgrading open-source software on Mac OS X. Installation on Mac OS X requires the following: # <b>Xcode</b>: Download and install [https://developer.apple.com/xcode/ XCode] from Apple using App Store application. In Xcode, make sure to enable and install the command-line tools in Xcode/Preferences/Downloads # (Optionally) <b>X11</b>: Install X11 libraries from [http://xquartz.macosforge.org Xquartz]. # (Optionally) <b>gcc</b>: Install the Gnu C compiler from [http://hpc.sourceforge.net HPC Mac OS X]. # (Optionally) [[SEGTeX]]: To use <b>SEGTeX</b>, you may need [http://www.tug.org/texlive/ TeX Live]. <b>MacPorts</b> provide an easy way to install it with commands <pre>sudo port install texlive texlive-latex-extra texlive-fontutils</pre> # (Optionally) <b>FFTW</b>: Using <b>MacPorts</b>, run <pre>sudo port install fftw-3-single</pre><pre>sudo port install fftw-3 +gfortran</pre> # (Optionally) <b>MPI</b>: Using <b>MacPorts</b>, run <pre>sudo port install openmpi</pre><pre>sudo port select --set mpi openmpi-mp-fortran</pre> # (Optionally) <b>ppmpen</b>: Using <b>MacPorts</b>, run <pre>sudo port install libnetpbm</pre> # (Optionally) <b>Open vplots using double click</b>: [[machacks|Instructions]]. # (Optionally) You can install Python with libraries including jupyter using the Anaconda distribution, available at https://www.anaconda.com/download # (Optionally) <b>SWIG</b> can be installed with <pre>conda install swig</pre> or <pre>sudo port install swig-python</pre> Additionally, run<pre>ln -s `which swig` /usr/local/bin</pre> to get ./configure to find swig. #Proceed with configuration and installation following the normal procedure. Build the system with: <pre>make install</pre> # To use Apple's compiler (clang) instead of gcc, run <tt>./configure</tt> with options <pre>./configure CC=clang CXX=clang++</pre> ==OpenSolaris== Use <tt>pkg</tt> to install missing components such as X11 headers. <syntaxhighlight lang="bash"> pfexec pkg install SUNWxorg-headers </syntaxhighlight> ==MS Windows== Due to its size, this topic has been assigned [[Windows | its own Wiki page]]. ==How to adapt Madagascar to a new platform== The most laborious part of adapting madagascar to a new platform is finding the proper dependency names. This usually proceeds as follows: dependency X fails with a "missing file" error either as a header file in <tt>config.log</tt>, or a missing library during the build step. Possible package names are found through an internet search for the missing file name and the distribution name or by using specific [http://rpm.pbone.net/ rpm search tools]. Packages are installed and the configure (and, if necessary) build processes are repeated until the error goes away.
Summary:
Please note that all contributions to Madagascar are considered to be released under the GNU Free Documentation License 1.3 or later (see
My wiki:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
English
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Getting Madagascar
download
Installation
GitHub repository
SEGTeX
Introduction
Package overview
Tutorial
Hands-on tour
Reproducible documents
Hall of Fame
User Documentation
List of programs
Common programs
Popular programs
The RSF file format
Reproducibility with SCons
Developer documentation
Adding programs
Contributing programs
API demo: clipping data
API demo: explicit finite differences
Community
Conferences
User mailing list
Developer mailing list
GitHub organization
LinkedIn group
Development blog
Twitter
Slack
Tools
What links here
Related changes
Special pages
Page information