# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
# $Id: Portfile 65325 2010-03-25 09:56:44Z takeshi@macports.org $

PortSystem          1.0

name                magicspp
version             2.8.0
platforms           darwin
maintainers         takeshi
license             Apache v2.0
categories          science
description         ECMWF's Meteorological plotting software
homepage            http://www.ecmwf.int/products/data/software/magics++.html
master_sites        http://www.ecmwf.int/products/data/software/download/software_files/
distname            Magics++-${version}
checksums           md5     cf696eaa5d8075e32cc48b8107c43ffb \
                    sha1    5b09244f6428895c38804402877a9447edf150f5 \
                    rmd160  63ad953c40b469729483817f2525a1999a1753c8
long_description \
    Magics++ is the latest generation of the ECMWF's Meteorological plotting \
    software MAGICS (Meteorological Applications Graphics Integrated Colour System) \
    redesigned in C++.  Magics++ offers interfaces in Fortran, C, and MagML, \
    a plot description language based on XML.  The library supports the plotting of \
    contours, wind fields, observations, satellite images, symbols, text, axis \
    and graphs (including boxplots). Input data can be in GRIB 1 and 2, BUFR and NetCDF \
    or retrieved from an ODB database. The produced meteorological plots can be saved \
    in various formats, such as PostScript, EPS, PDF, GIF, PNG and SVG.

depends_lib         port:grib_api \
                    port:emos \
                    port:mesa \
                    port:xorg-libXau \
                    port:xorg-libXdmcp \
                    port:p5-xml-parser \
                    port:gd2 \
                    port:pango \
                    port:ghostscript

use_parallel_build  no
universal_variant   no
#if {![variant_isset g95]} {
    default_variants    +gcc43
#}

patchfiles          patch-src-Makefile.in.diff \
                    patch-configure.diff \
                    patch-magics-config.in.diff
post-patch {
    foreach f {TeDefines.h TeMappedMemory.h TeMutex.h TeThread.h TeThreadSignal.h TeMappedMemory.cpp TeMutex.cpp TeThread.cpp TeThreadSignal.cpp TeUtils.cpp TeRasterMemManager.cpp} {
        reinplace "s:== TePLATFORMCODE_AIX:== TePLATFORMCODE_AIX || TePLATFORM == TePLATFORMCODE_APPLE:" ${worksrcpath}/src/terralib/kernel/${f}
    }
    reinplace "s:\.so:.dylib:" ${worksrcpath}/magics-config.in
    reinplace "s:gfortran:${configure.f77}:" ${worksrcpath}/magics-config.in
    reinplace "s:CYGWIN\):CYGWIN) || defined(__APPLE_CC__):" ${worksrcpath}/src/magics.h
    reinplace "s:__unix__:__unix__ || defined __APPLE__:" ${worksrcpath}/src/terralib/kernel/TeUtils.cpp
    reinplace "s:FreeBSD__ \):FreeBSD__ ) || defined(__APPLE__):" ${worksrcpath}/src/terralib/kernel/TeUtils.cpp
}

configure.env-append        LIBS=\"-lgrib_api -lopenjpeg -lpng\"
configure.cppflags-append   -I${prefix}/include/freetype2/
configure.args-append       --disable-dependency-tracking \
                            --enable-cairo \
                            --enable-bufr \
                            --with-grib_api=${prefix} \
                            --with-netcdf=${prefix} \
                            --with-emos-libraries=${prefix}/lib \
                            --with-gs-font-dir=${prefix}/share/ghostscript/fonts

variant gcc43 conflicts description {for emos +gcc43} {
    configure.ldflags-append    -lgrib_api -lopenjpeg -lpng -lemosR64 -L${prefix}/lib/gcc43 -lgfortran -lnetcdf_c++ -lnetcdf
    configure.compiler      macports-gcc-4.3
}

#variant g95 conflicts gcc43 description {for emos +g95} {
#    configure.ldflags-append    -lgrib_api -lopenjpeg -lpng -lemosR64 -lf95 -lnetcdf_c++ -lnetcdf
#    configure.f77           ${prefix}/bin/g95
#}
