# -*- 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 55900 2009-08-20 23:05:28Z ryandesign@macports.org $

PortSystem                  1.0

name                        ncarg
version                     5.1.1
revision                    1
categories                  science
maintainers                 takeshi
description                 language for scientific data processing and visualization
long_description \
    The NCAR Command Language (NCL), a product of           \
    the Computational & Information Systems Laboratory      \
    at the National Center for Atmospheric Research (NCAR)  \
    and sponsored by the National Science Foundation,       \
    is a free interpreted language designed specifically    \
    for scientific data processing and visualization.

homepage                    http://www.ncl.ucar.edu/
platforms                   darwin
master_sites                http://www.earthsystemgrid.org/

distname                    ncl_${name}_src-${version}
worksrcdir                  ncl_${name}-${version}
checksums                   md5    42154992f2966320dc9f8958b9d81da3         \
                            sha1   729abefde701f1f812bc168dd9ef04ca753b861c \
                            rmd160 cc83ee928d05ff82794021ef589300d80961955e

depends_lib                 port:jpeg       \
                            port:netcdf     \
                            port:hdf4       \
                            port:libpng     \
                            port:gdal       \
                            port:udunits    \
                            port:vis5d      \
                            port:hdfeos     \
                            port:wgrib2     \
                            port:openssl    \
                            port:curl       \
                            port:libxml2    \
                            port:libnc-dap
depends_build               port:gcc43      \
                            port:triangle

use_parallel_build          no
universal_variant           no

fetch {
    if {![file exists ${distpath}/${distfiles}]} {
        xinstall -d ${distpath}
        ui_error "Download ${distfiles} manually and place it in ${distpath}.\n \
            See instructions on ${homepage}/Download/index.shtml"
    }
}

set usedap y
platform darwin 8 {
    set usedap n
    depends_lib-delete      port:libnc-dap
} 

patch {
    foreach f {Darwin Darwin_Intel} {
        if {[variant_isset g95]} {
            reinplace "s|-lgfortran|-lf95|" ${worksrcpath}/config/${f}
            reinplace "s| gfortran$| g95|" ${worksrcpath}/config/${f} 
        } else {
            reinplace "s|-lgfortran|-L${prefix}/lib/gcc43 -lgfortran|" \
                ${worksrcpath}/config/${f} 
            reinplace "s| gfortran$| gfortran-mp-4.3|" ${worksrcpath}/config/${f} 
        }
        reinplace "s|-lXext$|-lXext\\
#define CcOptions -fPIC -ansi -D_DARWIN_C_SOURCE\\
#define COptimizeFlag ${configure.cflags}\\
#define FOptimizeFlag ${configure.fflags}\\
#define ManRoot ${destroot}${prefix}/share/man\\
#define NetCDF4lib -lnetcdf|" ${worksrcpath}/config/${f}
        reinplace "s|\/sw\/lib|${prefix}/lib|" ${worksrcpath}/config/${f}
        reinplace "s|\/sw\/include|${prefix}/include|" ${worksrcpath}/config/${f}
    }
    if {[variant_isset g95]} {
        reinplace "s|-fno-range-check||" ${worksrcpath}/config/Darwin_Intel
    }
    reinplace "s|hdf\/||" ${worksrcpath}/ni/src/ncl/NclHDF.c
    reinplace "s|hdf\/||" ${worksrcpath}/ni/src/ncl/NclHDFEOS.c
    reinplace "s|hdf\/||" ${worksrcpath}/ncarview/src/lib/libncarg_ras/hdf.c
}

pre-configure {
    system "cd ${worksrcpath}/config; \
        make -f Makefile.ini; \
        ./ymake -config `pwd`"
    system "unzip -o ${prefix}/var/macports/distfiles/triangle/triangle.zip -d /tmp; \
        mv /tmp/triangle.* ${worksrcpath}/ni/src/lib/hlu"
}
configure {
    system "cd ${worksrcpath}; ./Configure -v << EOF


y
${destroot}${prefix}
y
y
y
y
n
y
y
y
y
y
${usedap}



y
EOF"
}
post-configure {
    system "cd ${worksrcpath}; make Info"
    system "cat ${worksrcpath}/config/Site.local"
}

build.target                Build

variant g95 description {compile with g95} {
    depends_build-delete    port:gcc43
    depends_build-append    port:g95
}

livecheck.check             regex
livecheck.url               ${homepage}
livecheck.regex             {Current Version:.* .*([0-9]+\.[0-9]+\.[0-9]+)}
