...
The advantages of using shared libraries are that the size of executables will be smaller and that a different version of Magics can be used without recompiling the executable (if the libraries are binary compatible).
Requirements
...
Compilers | |||
---|---|---|---|
C++ | |||
Fortran |
The following list of software should be installed on your system before you try to install Magics. If you use a package manager, such as RPM, to install software make sure to include the corresponding development packages with the header files. The configure script will test for these libraries and give error messages if one of them is missing.
- CMake
NetCDF library with C++ interface (http://www.unidata.ucar.edu/software/netcdf/)
Expat XML parser
- Perl XML-Parser (most of the time it comes with Perl, but if not: XML-Parser)
GhostScript (especially the fonts!)
Boost C++ library (http://www.boost.org )
- Proj4 projection library (http://trac.osgeo.org/proj/)
- SWIG to build the Python interface
Optional for raster output (PNG) you should also install:
Cairo graphics library (1.4.10 or later - www.cairographics.org)
ECMWF support libraries
To read GRIB and BUFR data formats these two libraries, provided by ECMWF without charge, need to be installed on your system before Magics is installed:
GribAPI ( 1.9.9 or higher ) - https://software.ecmwf.int/wiki/display/GRIB/Releases
EmosLib ( 376 or higher) - https://software.ecmwf.int/wiki/display/EMOS/Releases
When installing these two packages please be aware of the following:
...
GribAPI should be installed first
...
Magics internally works only in double floating point precision and therefore requires the double precision version of EmosLib.
...
EmosLib requires a Fortran 90 compiler with Cray pointer support (Portland Pgf90 7.2 and GFortran 4.2 and newer).
If fortran or bufr support needed | |||
Utilities | |||
---|---|---|---|
make | |||
cmake | |||
Python Support | |||
swig | to generate the python interface | ||
python/python-numpy | |||
python-numpy | |||
Third party libraries | |||
proj | Proj4 to handle projections | ||
boost | used for coastlines | ||
netcdf | if netcdf support neeed | ||
pango | if png/jpeg support needed | ||
Ecmwf libraries | |||
grib-api | if grib support needed | ||
odb-api | if odb support needed | ||
emoslib | if bufr support needed |
...
Compilation environment
At ECMWF, OpenSuSE 10.3/11.3 Linux systems (32 and 64bit) were used for testing. Any C++ Compiler which supports features required for the ANSI C++ standard from 1998 (STL, namespaces, templates) should work. At ECMWF we tested GCC’s g++ 4.x successfully. A Fortran compiler is not required for the compilation of Magics, but is needed if you want to use the Fortran interface or compile a dependent Fortran library (Emoslib).
...
After the CMake command has run successfully, the user can compile the library by typing make in the same build directory.
Testing your build
...