# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4 # $Id: Portfile 104220 2013-03-21 03:37:44Z larryv@macports.org $ PortSystem 1.0 name openmpi version 1.6.4 set branch [join [lrange [split ${version} .] 0 1] .] categories science parallel net platforms darwin license BSD maintainers mww openmaintainer description A High Performance Message Passing Library long_description Open MPI is a project combining technologies and resources \ from several other projects (FT-MPI, LA-MPI, LAM/MPI, and \ PACX-MPI) in order to build the best MPI library available. A \ completely new MPI-2 compliant implementation, Open MPI offers \ advantages for system and software vendors, application developers \ and computer science researchers. homepage http://www.open-mpi.org/ set subdir ompi/v${branch}/downloads/ master_sites http://www.open-mpi.org/software/${subdir} \ http://www.open-mpi.de/software/${subdir} \ http://icl.cs.utk.edu/open-mpi/${subdir} # keep md5 & sha1 checksums as they are published on http://www.open-mpi.org/software/ompi/v1.6/ checksums md5 62119579ab92b2592cd96b6a9d2a8cc3 \ sha1 38095d3453519177272f488d5058a98f7ebdbf10 \ rmd160 6abcb4ef5de3da00c23bcad521b66e1774675890 \ sha256 40cb113a27d76e1e915897661579f413564c032dc6e703073e6a03faba8093fa use_bzip2 yes pre-extract { file mkdir ${workpath}/build } configure.dir ${workpath}/build configure.cmd ${worksrcpath}/configure configure.args --disable-mpi-f77 --disable-mpi-f90 \ --sysconfdir=${prefix}/etc/${name} \ --includedir=${prefix}/include/${name} \ --bindir=${prefix}/lib/${name}/bin \ --mandir=${prefix}/share/man if {${configure.compiler} == "llvm-gcc-4.2"} { configure.compiler clang } build.dir ${configure.dir} destroot.dir ${build.dir} set wrappers {mpicc mpicxx mpic++} post-destroot { foreach bin {mpirun mpiexec} { system -W ${destroot}${prefix}/bin \ "ln -sf ${prefix}/lib/${name}/bin/orterun open${bin}" } foreach bin ${wrappers} { system -W ${destroot}${prefix}/bin \ "ln -sf ${prefix}/lib/${name}/bin/opal_wrapper open${bin}" system -W ${destroot}${prefix}/share/${name} \ "ln -sf ${prefix}/share/${name}/${bin}-wrapper-data.txt \ open${bin}-wrapper-data.txt" } } variant threads description {enable threads for MPI applications} { configure.args-append --enable-mpi-thread-multiple } variant valgrind description {enable valgrind support} { depends_lib-append path:${prefix}/lib/pkgconfig/valgrind.pc:valgrind configure.args-append --enable-debug --enable-memchecker --with-valgrind=${prefix} } variant gcc43 description {build mpif77 and mpif90 using gcc43} conflicts gcc44 gcc45 gcc46 gcc47 gcc48 g95 { configure.args-delete --disable-mpi-f77 --disable-mpi-f90 configure.args-append --enable-mpi-f77 --enable-mpi-f90 configure.f77 ${prefix}/bin/gfortran-mp-4.3 configure.fc ${prefix}/bin/gfortran-mp-4.3 depends_lib-append port:gcc43 lappend wrappers mpif77 mpif90 } variant gcc44 description {build mpif77 and mpif90 using gcc44} conflicts gcc43 gcc45 gcc46 gcc47 gcc48 g95 { configure.args-delete --disable-mpi-f77 --disable-mpi-f90 configure.args-append --enable-mpi-f77 --enable-mpi-f90 configure.f77 ${prefix}/bin/gfortran-mp-4.4 configure.fc ${prefix}/bin/gfortran-mp-4.4 depends_lib-append port:gcc44 lappend wrappers mpif77 mpif90 } variant gcc45 description {build mpif77 and mpif90 using gcc45} conflicts gcc43 gcc44 gcc46 gcc47 gcc48 g95 { configure.args-delete --disable-mpi-f77 --disable-mpi-f90 configure.args-append --enable-mpi-f77 --enable-mpi-f90 configure.f77 ${prefix}/bin/gfortran-mp-4.5 configure.fc ${prefix}/bin/gfortran-mp-4.5 depends_lib-append port:gcc45 lappend wrappers mpif77 mpif90 } variant gcc46 description {build mpif77 and mpif90 using gcc46} conflicts gcc43 gcc44 gcc45 gcc47 gcc48 g95 { configure.args-delete --disable-mpi-f77 --disable-mpi-f90 configure.args-append --enable-mpi-f77 --enable-mpi-f90 configure.f77 ${prefix}/bin/gfortran-mp-4.6 configure.fc ${prefix}/bin/gfortran-mp-4.6 depends_lib-append port:gcc46 lappend wrappers mpif77 mpif90 } variant gcc47 description {build mpif77 and mpif90 using gcc47} conflicts gcc43 gcc44 gcc45 gcc46 gcc48 g95 { configure.args-delete --disable-mpi-f77 --disable-mpi-f90 configure.args-append --enable-mpi-f77 --enable-mpi-f90 configure.f77 ${prefix}/bin/gfortran-mp-4.7 configure.fc ${prefix}/bin/gfortran-mp-4.7 depends_lib-append port:gcc47 lappend wrappers mpif77 mpif90 } variant gcc48 description {build mpif77 and mpif90 using gcc48} conflicts gcc43 gcc44 gcc45 gcc46 gcc47 g95 { configure.args-delete --disable-mpi-f77 --disable-mpi-f90 configure.args-append --enable-mpi-f77 --enable-mpi-f90 configure.f77 ${prefix}/bin/gfortran-mp-4.8 configure.fc ${prefix}/bin/gfortran-mp-4.8 depends_lib-append port:gcc48 lappend wrappers mpif77 mpif90 } variant g95 description {build mpif77 and mpif90 using g95} conflicts gcc43 gcc44 gcc45 gcc46 gcc47 gcc48 { configure.args-delete --disable-mpi-f77 --disable-mpi-f90 configure.args-append --enable-mpi-f77 --enable-mpi-f90 configure.f77 ${prefix}/bin/g95 configure.fc ${prefix}/bin/g95 depends_lib-append port:g95 lappend wrappers mpif77 mpif90 } # dependents like netcdf need some form of fortran if {![variant_isset gcc43] && ![variant_isset gcc44] && ![variant_isset gcc45] && ![variant_isset gcc46] && ![variant_isset gcc48] && ![variant_isset g95]} { default_variants +gcc47 } livecheck.type regex livecheck.url http://www.open-mpi.org/software/ompi/v1.6/ livecheck.regex openmpi-(\[0-9\.\]+).tar.bz2 universal_variant no # remove -arch from ldflags, ticket #22833 configure.ld_archflags # avoid building against older installed version, ticket #23864 configure.cppflags-delete -I${prefix}/include configure.ldflags-delete -L${prefix}/lib configure.ccache no