# -*- 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 68041 2010-05-25 06:01:13Z takeshi@macports.org $

PortSystem                  1.0

name                        nco
version                     4.0.1
platforms                   darwin
maintainers                 takeshi
categories                  science
description                 The netCDF Operators
master_sites                http://${name}.sourceforge.net/src/
checksums                   md5     1a9cbba6d1dad256558b99ff1b32c237 \
                            sha1    da6bb139f6a0931ee1eb87d4b8a8527d1f3e2fb0 \
                            rmd160  66ae8ff36d962700e7e2303d65a496b61edc5c96
homepage                    http://nco.sourceforge.net/
long_description \
    Each NCO operator (e.g., ncks) takes netCDF or HDF input file(s), \
    performs an operation (e.g., averaging, hyperslabbing, or renaming), \
    and outputs a processed netCDF file. Although most users of netCDF \
    and HDF data are involved in scientific research, these data formats, \
    and thus NCO, are generic and are equally useful in fields like finance. \
    This version is OPeNDAP/DODS enabled, so it can be given \
    URLs to read remote datasets as if they were local netCDF files.

depends_lib                 port:curl \
                            port:gettext \
                            port:libiconv \
                            port:libxml2 \
                            port:netcdf-devel \
                            port:openssl \
                            port:udunits2 \
                            port:zlib \
                            port:antlr \
                            port:gsl \
                            port:hdf5-18 \
                            port:szip
depends_build               port:bison \
                            port:m4
depends_run                 port:wget

post-patch {
    reinplace "s|\${GSL_INC_ARG} ||" ${worksrcpath}/configure
}

configure.env               HAVE_ANTLR=yes ANTLR_ROOT=${prefix} \
                            PATH_TO_NCGEN=${prefix}/lib/netcdf-devel/bin/ncgen
configure.cppflags-delete   -I${prefix}/include
configure.cppflags-append   -I/usr/include/malloc \
                            -I${prefix}/lib/netcdf-devel/include \
                            -I${prefix}/include/udunits2 \
                            -I${prefix}/include
configure.ldflags-delete    -L${prefix}/lib
configure.ldflags-append    -L${prefix}/lib/netcdf-devel/lib \
                            -L${prefix}/lib
configure.args              --disable-dependency-tracking \
                            --mandir=${prefix}/share/man  \
                            --enable-udunits2 \
                            --enable-dap-netcdf           \
                            --disable-dap-opendap         \
                            --enable-netcdf4

if {![variant_isset openmpi]&&![variant_isset mpich2]} {
    post-configure {
        foreach d {nco nco++ nco_c++} {
            reinplace "s|= -I${prefix}/include|= |" ${worksrcpath}/src/${d}/Makefile
        }
        reinplace "s|nco \${GSL_INC_ARG}|nco|" ${worksrcpath}/src/nco++/Makefile
    }
}

post-destroot {
    xinstall -m 755 -d ${destroot}${prefix}/share/doc/${name}
    foreach f {ANNOUNCE ChangeLog LICENSE NEWS README TODO VERSION *.txt *.pdf} {
        eval xinstall -m 644 [glob ${worksrcpath}/doc/${f}] \
            ${destroot}${prefix}/share/doc/${name}
    }
}

variant mpich2 description {enable MPI with mpich2} {
    depends_lib-append      port:mpich2
    configure.args-append   --enable-mpi
}

variant openmpi description {enable MPI with openmpi} {
    depends_lib-append      port:openmpi
    configure.args-append   --enable-mpi
}

livecheck.type  regex
livecheck.url   ${homepage}
livecheck.regex  {Current NCO version is ([0-9]+\.[0-9]+\.[0-9]+)}
