# -*- 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

PortSystem      1.0

name            vis5d
version         1.3.0-beta
revision        18
distname        ${name}+-${version}
categories      science graphics
license         {GPL-2 Restrictive}
maintainers     {takeshi @tenomoto}
description     OpenGL-based scientific visualization program
long_description \
    Vis5D+ is a system for interactive visualization of large 5-D         \
    gridded data sets such as those produced by numerical weather models. \
    One can make isosurfaces, contour line slices, colored slices,        \
    volume renderings, etc of data in a 3-D grid, then rotate and         \
    animate the images in real time. There's also a feature for wind      \
    trajectory tracing, a way to make text anotations for publications,   \
    support for interactive data analysis, etc.
homepage        http://vis5d.sourceforge.net/
master_sites    sourceforge:vis5d
use_bzip2       yes

checksums       rmd160 d8390deea19ec8bc1da0f27c779afd25dfa1a42a \
                sha256 f408c43f97df6b48e2a9f1241435d54bee5118e23b70468e0ee842a415867a2d \
                size   1854911

depends_build   port:pkgconfig \
                port:libtool

depends_lib     port:netcdf \
                port:gettext \
                port:tcl \
                port:libpng \
                port:libiconv \
                port:libGLU \
                port:mesa \
                port:xorg-libsm

patchfiles      patch-configure.diff \
                patch-graph_labels.c.diff \
                patch-src-api.c.diff \
                patch-src-graphics.ogl.c.diff \
                patch-src-misc.c.diff \
                patch-src-misc.h.diff \
                patch-src-pipe.c.diff \
                patch-src-render.c.diff \
                patch-src-sounding.c.diff \
                patch-util-igg3d.f.diff \
                patch-util-igmk3d.f.diff \
                patch-util-makemap.c.diff \
                patch-util-maketopo.c.diff \
                patch-util-sdest.f.diff \
                patch-util-topo.f.diff
post-patch {
    reinplace "s|LIBTOOL='\$\(SHELL\) \$\(top_builddir\)/libtool'|LIBTOOL=\"${prefix}/bin/glibtool --tag=CC\"|" ${worksrcpath}/configure
}

post-configure {
    reinplace -E {s|-arch [^ ]+||g} ${worksrcpath}/vis5d+.pc
    if {[variant_exists universal] && [variant_isset universal]} {
        reinplace "s|-dynamiclib|-dynamiclib ${configure.universal_ldflags}|" \
            ${worksrcpath}/libtool
    }
}

#configure.env-append        PTHREAD_LIBS=-lpthread
configure.cflags-append     -std=c89
configure.cflags-append     -Wno-error=uninitialized
configure.cflags-append     -Wno-error=implicit-function-declaration
configure.cflags-append     -Wno-error=implicit-int 
configure.cflags-append     -Wno-error=int-conversion
configure.cflags-append     -Wno-error=incompatible-pointer-types
configure.env-append        RANLIB=/usr/bin/ranlib
configure.cppflags          -DUSE_INTERP_RESULT
configure.args              -disable-fortran            \
                            -disable-dependency-tracing \
                            --x-includes=${prefix}/include \
                            --x-libraries=${prefix}/lib \
                            --with-netcdf=${prefix} \
                            --without-mixkit
if {![info exists universal_possible]} {
    set universal_possible [expr {${os.universal_supported} && [llength ${configure.universal_archs}] >= 2}]
}
if {!${universal_possible} || ![variant_isset universal]} {
    configure.ldflags-append    ${configure.cc_archflags}
}

# seems to use up CPU all the time
#                            -enable-threads

post-destroot {
    xinstall -d ${destroot}${prefix}/share/${name}/convert
    xinstall -m 644 {*}[glob ${worksrcpath}/convert/*.c] \
        ${destroot}${prefix}/share/${name}/convert
    xinstall -m 644 {*}[glob ${worksrcpath}/convert/*.m] \
        ${destroot}${prefix}/share/${name}/convert
    xinstall -m 644 {*}[glob ${worksrcpath}/convert/*.f] \
        ${destroot}${prefix}/share/${name}/convert
    xinstall -d ${destroot}${prefix}/share/${name}/userfuncs
    foreach foo {example.f externf.m probe.f README \
                 externf externf_all spd3d.f} {
        xinstall -m 644 ${worksrcpath}/userfuncs/${foo} \
        ${destroot}${prefix}/share/${name}/userfuncs
    }
    xinstall -d ${destroot}${prefix}/share/${name}/scripts
    xinstall -m 644 {*}[glob ${worksrcpath}/scripts/*.tcl] \
        ${destroot}${prefix}/share/${name}/scripts
    xinstall -d ${destroot}${prefix}/share/doc/${name}
    xinstall -d ${destroot}${prefix}/share/doc/${name}/html
    xinstall -d ${destroot}${prefix}/share/doc/${name}/html/stylesheet-images
    xinstall -m 644 ${worksrcpath}/doc/vis5d.pdf \
        ${destroot}${prefix}/share/doc/${name}
    xinstall -m 644 {*}[glob ${worksrcpath}/doc/html/*.html] \
        ${destroot}${prefix}/share/doc/${name}/html
    xinstall -m 644 \
        {*}[glob ${worksrcpath}/doc/html/stylesheet-images/*.gif] \
        ${destroot}${prefix}/share/doc/${name}/html/stylesheet-images
}

variant g95 description {compiles fortran interface for g95} { \
        depends_build           port:g95
        configure.args-delete   -disable-fortran
        configure.f77           ${prefix}/bin/g95
        configure.env-append    FLIBS=${prefix}/lib/libf95.a
}

#variant gcc43 description {compiles fortran interface for gcc43} \
#    conflicts g95 {
#        depends_build           port:gcc43
#        configure.args-delete   -disable-fortran \
#        configure.f77           ${prefix}/bin/gfortran-mp-4.3
#        configure.env-delete    PTHREAD_LIBS=-lpthread
#}

notes-append {
ImageMagick's "convert" is no longer included by default.\
To use convert, please "port install ImageMagick".
}
