# -*- 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
PortGroup           github 1.0
PortGroup           linear_algebra 1.0
PortGroup           mpi 1.0

github.setup        sfilippone psblas3 3.8.1-2 v
revision            1
categories          math science parallel
maintainers         {@barracuda156 gmail.com:vital.had} openmaintainer
license             BSD
description         Library of parallel sparse linear algebra on high performance computer.
long_description    {*}${description}
checksums           rmd160  b82dbd520a1ec25f694d922fa4c48020d60633b4 \
                    sha256  285ddb7c9a793ea7ecb428d68cf23f4cc04f1c567631aa84bc2bedb65a3d1b0c \
                    size    2676861
github.tarball_from archive

depends_lib-append  port:metis \
                    port:SuiteSparse_AMD

if {${os.platform} eq "darwin" && ${os.arch} eq "powerpc"} {
    mpi.setup       require require_fortran \
                    -gcc44 -gcc45 -gcc46 -gcc47 -gcc48 -gcc49 -gcc5 -gcc6 \
                    -clang -fortran
} else {
    mpi.setup       require require_fortran \
                    -gcc44 -gcc45 -gcc46 -gcc47 -gcc48 -gcc49 -gcc5 -gcc6
}

# Consider moving .mod into ${prefix}/finclude: https://trac.macports.org/ticket/68384
patchfiles          patch-install-dirs.diff

pre-configure {
    configure.env   MPIFC=${prefix}/bin/${mpi.f90} \
                    MPICC=${prefix}/bin/${mpi.cc}
}

configure.args-append \
                    --enable-openmp \
                    --with-metis=${prefix} \
                    --prefix=${destroot}${prefix}

pre-configure {
    if {[variant_isset openblas]} {
        configure.args-append  \
                    --with-blas="-lopenblas"
    } elseif {[variant_isset accelerate]} {
        configure.args-append  \
                    --with-blas="-lvecLibFort"
    } elseif {[variant_isset atlas]} {
        configure.args-append  \
                    --with-blas="-lsatlas"
    }
}

compiler.openmp_version 3.0
# https://github.com/sfilippone/psblas3/issues/26
compilers.allow_arguments_mismatch yes

test.run            yes
test.target         check
