# -*- 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 104220 2013-03-21 03:37:44Z larryv@macports.org $

PortSystem          1.0

name                omnixmp
version             0.6.0
revision            2
categories          lang devel parallel
maintainers         takeshi
description         Omni OpenMP/XcalableMP Compiler
license             LGPL-2.1
long_description \
    Omni OpenMP/XcalableMP Compiler
homepage            http://www.xcalablemp.org/
platforms           darwin
master_sites        sourceforge:xcalablemp

checksums           rmd160  130f237976b5900dd251d614cdb7a1c551b4ecf3 \
                    sha256  f8a877d7d3f1a4400b387c0b56528faf5493d77ec8414785959cd92774abc031
use_bzip2           yes

depends_lib         port:flex \
                    port:gmp \
                    port:libxml2

patchfiles          patch-configure.diff \
                    patch-ompc_thread.c.diff \
                    patch-c-expr.c.diff

post-patch {
    if {${build_arch}=="x86_64"} {
        reinplace "s|CPU=i386|CPU=x86_64|g" ${worksrcpath}/configure
    }
}

configure.args      --prefix=${prefix}/lib/${name} \
                    --disable-xmpgpu \
                    --with-gmpLibDir=${prefix}/lib \
                    --with-gmpIncDir=${prefix}/include \
                    --with-cflag=${configure.cflags} \
                    --with-cppflag="${configure.cppflags} -I${prefix}/include/libxml2 -I/usr/include -DSIMPLE_SPIN"

post-destroot {
    ln -s ${prefix}/lib/${name}/bin/xmpcc ${destroot}${prefix}/bin
}

if {![variant_isset gcc44] && ![variant_isset gcc45] && ![variant_isset gcc46]} {
    default_variants    +gcc47
}

if {![variant_isset mpich]} {
    default_variants-append +openmpi
}

use_parallel_build  no

variant gcc44 conflicts gcc45 gcc46 gcc47 description {use gfortran-mp-4.4 as backend fortran compiler} {
    depends_lib-append  port:gcc44
    configure.compiler  macports-gcc-4.4
}

variant gcc45 conflicts gcc44 gcc46 gcc47 description {use gfortran-mp-4.5 as backend fortran compiler} {
    depends_lib-append  port:gcc45
    configure.compiler  macports-gcc-4.5
}

variant gcc46 conflicts gcc44 gcc45 gcc47 description {use gfortran-mp-4.6 as backend fortran compiler} {
    depends_lib-append  port:gcc46
    configure.compiler  macports-gcc-4.6
}

variant gcc47 conflicts gcc44 gcc45 gcc46 description {use gfortran-mp-4.7 as backend fortran compiler} {
    depends_lib-append  port:gcc47
    configure.compiler  macports-gcc-4.7
}

variant openmpi conflicts mpich description {build with OpenMPI} {
    depends_lib-append      port:openmpi
    configure.args-append   --with-mpicc=${prefix}/lib/openmpi/bin/mpicc
    configure.args-append   --with-mpif90=${prefix}/lib/openmpi/bin/mpif90
}

variant mpich2 requires mpich description {Variant remaned as +mpich} {}

variant mpich conflicts openmpi description {build with MPICH} {
    depends_lib-append      port:mpich
    configure.args-append   --with-mpicc=${prefix}/bin/mpicc
    configure.args-append   --with-mpif90=${prefix}/bin/mpif90
}

notes \
   ${name} is installed in ${prefix}/lib/${name}.
