# -*- 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$ PortSystem 1.0 name mpich2-devel set pkgname mpich2 version 1.5rc1 license BSD categories science parallel net platforms darwin maintainers eborisch \ openmaintainer description Message Passing Interface (MPI) Library long_description MPICH2 is an implementation of the Message-Passing \ Interface (MPI). The goals of MPICH2 are to provide an \ MPI implementation for important platforms, including \ clusters, SMPs, and massively parallel processors. It \ also provides a vehicle for MPI implementation research \ and for developing new and better parallel programming \ environments. homepage http://www.mcs.anl.gov/research/projects/mpich2/ master_sites ${homepage}downloads/tarballs/${version}/ distname ${pkgname}-${version} checksums \ rmd160 9009286b0e2a51b4d3d2d673bda7de679ba7997d \ sha256 cc1c634c3da33f5691f3461349371f2320f6cc87d26312289a54e80c017f00a9 depends_lib-append port:libxml2 # Don't build if lammpi is around. pre-configure { if {[file exists ${prefix}/etc/lammpi/lam-helpfile]} { ui_error \ "Cannot co-exist with lammpi; please deactivate lammpi before configuring." return -code error } } pre-build { if {[file exists ${prefix}/etc/lammpi/lam-helpfile]} { ui_error \ "Cannot co-exist with lammpi; please deactivate lammpi before building." return -code error } } configure.args --disable-dependency-tracking \ --disable-f77 \ --disable-fc \ --disable-silent-rules \ --enable-alloca \ --enable-base-cache \ --enable-cache \ --enable-cxx \ --enable-fast=O2 \ --enable-shared \ --enable-smpcoll \ --includedir=${prefix}/include/${pkgname} \ --with-device=ch3:nemesis \ --with-mpe \ --with-pm=hydra \ --with-thread-package=posix \ "F90FLAGS='' F90=''" \ MPICH2LIB_CPPFLAGS=-I${prefix}/include platform darwin { configure.args-append --enable-timer-type=mach_absolute_time } # We're making compiler wrappers here... don't default to -O2 for wrappers. # Actual library code is compiled with -O2 via --enable-fast=O2 configure arg configure.cflags-delete -O2 configure.cxxflags-delete -O2 configure.fflags-delete -O2 configure.fcflags-delete -O2 configure.cppflags-delete -I${prefix}/include universal_variant no conflicts lammpi \ mpich2 post-destroot { # Move examples directories to preferred location move ${destroot}${prefix}/share/examples \ ${destroot}${prefix}/share/doc/${pkgname}/examples # Remove un-needed (in MacPorts) binaries file delete ${destroot}${prefix}/sbin/mpeuninstall file delete ${destroot}${prefix}/sbin/mpecheckinstall # That's what man pages are for delete ${destroot}${prefix}/share/doc/www4 } # As MPICH creates compiler wrappers, there are lots of # variants for what compiler the user would like to wrap. variant gcc47 description { Enable Fortran 77 and Fortran 90 bindings using gfortran from gcc47 port } conflicts gcc42 gcc43 gcc44 gcc45 gcc46 llvm clang clang31 { depends_lib-append port:gcc47 configure.compiler macports-gcc-4.7 } variant gcc46 description { Enable Fortran 77 and Fortran 90 bindings using gfortran from gcc46 port } conflicts gcc42 gcc43 gcc44 gcc45 gcc47 llvm clang clang31 { depends_lib-append port:gcc46 configure.compiler macports-gcc-4.6 } variant gcc45 description { Enable Fortran 77 and Fortran 90 bindings using gfortran from gcc45 port } conflicts gcc42 gcc43 gcc44 gcc46 gcc47 llvm clang clang31 { depends_lib-append port:gcc45 configure.compiler macports-gcc-4.5 } variant gcc44 description { Enable Fortran 77 and Fortran 90 bindings using gfortran from gcc44 port } conflicts gcc42 gcc43 gcc45 gcc46 gcc47 llvm clang clang31 { depends_lib-append port:gcc44 configure.compiler macports-gcc-4.4 } variant gcc43 description { Enable Fortran 77 and Fortran 90 bindings using gfortran from gcc43 port } conflicts gcc42 gcc44 gcc45 gcc46 gcc47 llvm clang clang31 { depends_lib-append port:gcc43 configure.compiler macports-gcc-4.3 } variant gcc42 description { Enable Fortran 77 and Fortran 90 bindings using gfortran from gcc42 port } conflicts gcc43 gcc44 gcc45 gcc46 gcc47 llvm clang clang31 { depends_lib-append port:gcc42 configure.compiler macports-gcc-4.2 } if {[ variant_isset gcc42 ] || [ variant_isset gcc43 ] || [ variant_isset gcc44 ] || [ variant_isset gcc45 ] || [ variant_isset gcc46 ] || [ variant_isset gcc47 ]} { configure.args-append --enable-f77 --enable-fc configure.args-delete --disable-f77 --disable-fc } variant llvm description { Use llvm-gcc } conflicts gcc42 gcc43 gcc44 gcc45 gcc46 gcc47 clang clang31 { configure.compiler llvm-gcc-4.2 } variant clang description { Use clang } conflicts gcc42 gcc43 gcc44 gcc45 gcc46 gcc47 llvm clang31 { configure.compiler clang } variant clang31 description { Use clang 3.1 from MacPorts } conflicts gcc42 gcc43 gcc44 gcc45 gcc46 gcc47 llvm clang { depends_lib-append port:clang-3.1 configure.compiler clang configure.cc ${prefix}/bin/clang-mp-3.1 configure.cxx ${prefix}/bin/clang++-mp-3.1 } variant gforker description { Use gforker process manager instead of the default hydra } { configure.args-append --with-pm=gforker configure.args-delete --with-pm=hydra } variant tuned description {Build with more optimizations)} { configure.args-delete --enable-fast=O2 configure.args-append --enable-fast=all \ MPICH2LIB_CFLAGS='-fomit-frame-pointer -O2' } livecheck.type regex livecheck.regex ${pkgname}-(\[0-9.pbrc\]+)${extract.suffix} livecheck.url ${homepage}downloads/index.php?s=downloads