# -*- 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 65322 2010-03-25 09:01:35Z takeshi@macports.org $

PortSystem          1.0

name                grib_api
version             1.8.0
revision            2
platforms           darwin
maintainers         takeshi
license             LGPL
categories          science
description         GRIB decoder
homepage            http://www.ecmwf.int/products/data/software/grib_api.html
master_sites        http://www.ecmwf.int/products/data/software/download/software_files/
checksums           md5     7503794f2a849fc015c39ec42250653b \
                    sha1    bbec9e62f46565808aed23bae88713946a0e7e8d \
                    rmd160  eae9ed26a0735be0f95b651362384a3502d1647c
long_description \
    The ECMWF GRIB API is an application program interface accessible \
    from C and FORTRAN programs developed for encoding and decoding   \
    WMO FM-92 GRIB edition 1 and edition 2 messages. A useful set of  \
    command line tools is also provided to give quick access to grib messages.

depends_lib         port:jasper \
                    port:openjpeg \
                    port:libpng

post-patch {
    foreach d {grib1 grib1_mlgrib2} {
        reinplace "s|ifs_samples_${d}dir = \$(datadir)|ifs_samples_${d}dir = \$(pkgdatadir)|" ${worksrcpath}/ifs_samples/${d}/Makefile.in
    }
    if [variant_isset g95] {
        reinplace "s|'none'|''|" ${worksrcpath}/configure
    }
    reinplace "/grib_f_context_.et_real/d" ${worksrcpath}/fortran/grib_api_externals.h
}

configure.args      --disable-dependency-tracking \
                    --disable-fortran \
                    --with-jasper=${prefix} \
                    --with-openjpeg=${prefix} \
                    --with-png-support=${prefix}

test.run            yes
test.target         check

post-destroot {
    xinstall -m 755 -d ${destroot}${prefix}/share/doc/${name}
    eval xinstall -m 644 [glob ${worksrcpath}/html/*.html] \
        ${destroot}${prefix}/share/doc/${name}
    foreach b {parser points} {
        file rename ${destroot}${prefix}/bin/${b} ${destroot}${prefix}/bin/grib_${b}
    }
}

if {![variant_isset g95]} {
    default_variants +gcc43
}

variant emos conflicts g95 description {conduct test using emos} {
}

variant gcc43 conflicts g95 description {builds fortran interface with gfortran} {
    depends_build-append    port:gcc43 port:emos
    configure.args-delete   --disable-fortran
    configure.compiler      macports-gcc-4.3
    configure.args-append   --with-fortranlibdir=${prefix}/lib/gcc43 \
                            --with-fortranlibs=-lgfortran \
                            --with-emos=-lemosR64
}

variant g95 conflicts gcc43 emos universal description {builds fortran interface with g95} {
    depends_build-append    port:g95
    configure.args-delete   --disable-fortran
    configure.fc            ${prefix}/bin/g95
    configure.f77           ${configure.fc}
    configure.args-append   --with-fortranlibdir=${prefix}/lib \
                            --with-fortranlibs=-lf95
}
