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

github.setup        cburstedde p4est 2.8.6 v
revision            0
categories          science math
maintainers         {mcalhoun @MarcusCalhoun-Lopez} openmaintainer
license             GPL-2+
homepage            https://www.p4est.org
master_sites        https://p4est.github.io/release/

description         A graph coloring algorithm package
long_description    ${description}

checksums           rmd160  ba927cfa8969edb36f663850b248c6d356ac9e95 \
                    sha256  46ee0c6e5a24f45be97fba743f5ef3d9618c075b023e9421ded9fc8cf7811300 \
                    size    13228213
github.tarball_from archive

mpi.setup           require require_fortran

# do not attempt to use la files from libsc
patchfiles-append   patch-libsc-lib.diff

depends_lib-append  \
    port:lua \
    port:zlib \
    port:metis \
    port:libsc

mpi.enforce_variant libsc

configure.args-append \
    --enable-mpi \
    --with-metis \
    --with-petsc=no \
    --with-sc=${prefix}

pre-configure {
    configure.args-append \
        --with-blas="-L${prefix}/lib ${linalglib}" \
        --with-lapack=""
}

variant petsc description {build with PETSc support} {
    depends_lib-append  \
        port:petsc

    configure.args-replace \
        --with-petsc=no \
        --with-petsc=yes

    configure.env-append \
        PETSC_DIR=${prefix}/lib/petsc

    mpi.enforce_variant petsc
}

if {!${universal_possible} || ![variant_isset universal]} {
    # remove arch flags
    post-destroot {
        reinplace -E {s|-arch [a-z0-9_]+||g} ${destroot}${prefix}/etc/Makefile.p4est.mk
        #reinplace -E {s|-m[0-9]+||g}         ${destroot}${prefix}/etc/Makefile.p4est.mk
    }
} else {
    # remove arch flags
    merger-post-destroot {
        foreach arch ${configure.universal_archs} {
            reinplace -E {s|-arch [a-z0-9_]+||g} ${destroot}-${arch}${prefix}/etc/Makefile.p4est.mk
            #reinplace -E {s|-m[0-9]+||g}         ${destroot}-${arch}${prefix}/etc/Makefile.p4est.mk
        }
    }
}
