# -*- 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 147088 2016-03-26 09:44:32Z takeshi@macports.org $ PortSystem 1.0 PortGroup bitbucket 1.0 PortGroup mpi 1.0 bitbucket.setup petsc petsc 3.6.3 v revision 2 categories math science maintainers sean license BSD description Portable, Extensible Toolkit for Scientific Computation long_description PETSc, pronounced PET-see (the S is silent), is a suite \ of data structures and routines for the scalable (parallel) solution \ of scientific applications modeled by partial differential equations. \ It employs the MPI standard for all message-passing communication. platforms darwin universal_variant no checksums rmd160 474b5c0cfb17657cdeb8a1b68590efee509b99c5 \ sha256 007f24c7ec8ef4656248253b17e8c5bde5831f888c3a18059a7c7b044ee9e203 mpi.setup use_parallel_build no depends_build-append \ port:sowing \ port:c2html post-extract { # superlu 4.3 works with 3.6.1, can remove this after next update reinplace "s,4\.1,4.3,g" ${worksrcpath}/config/BuildSystem/config/packages/SuperLU_DIST.py reinplace "s,5\.0,5.1,g" ${worksrcpath}/config/BuildSystem/config/packages/SuperLU.py } pre-configure { configure.args-append \ CC="${configure.cc}" \ CXX="${configure.cxx}" \ FC="${configure.fc}" \ F77="${configure.fc}" \ F90="${configure.fc}" \ COPTFLAGS="${configure.optflags}" \ CXXOPTFLAGS="${configure.optflags}" \ FOPTFLAGS="${configure.optflags}" \ LDFLAGS="${configure.ldflags}" \ CPPFLAGS="${configure.cppflags}" \ CFLAGS="${configure.cflags} ${configure.cc_archflags}" \ CXXFLAGS="${configure.cxxflags}" \ FFLAGS="${configure.fcflags}" \ FCFLAGS="${configure.fcflags}" \ F90FLAGS="${configure.fcflags}" \ PETSC_ARCH="arch-macports" if {[mpi_variant_isset]} { configure.args-delete --with-mpi=0 \ --with-fc=0 configure.args-append --with-mpiexec=${mpi.exec} } elseif {[fortran_variant_isset]} { configure.args-delete --with-fc=0 } } subport petsc-devel { bitbucket.setup petsc petsc d89f5e7a10d7 bitbucket.livecheck master name petsc-devel version 3.6.99 revision 21 checksums rmd160 8fa1620dc49be3282af95f368c3c8f3734660d4f \ sha256 c596826c6f2451de154b441b943650782d812a317a516d2997488ecdc6e54527 } notes "Add the following line to your .bash_profile if you plan to use\ the PETSC makefile rules in $prefix/lib/petsc/conf: \n\ \texport PETSC_DIR=${prefix}/lib/${name}" configure.args --prefix=${prefix}/lib/${name} \ --with-valgrind=0 \ --with-mpi=0 \ --with-fc=0 \ --with-shared-libraries \ --with-debugging=0 \ --with-c2html-dir=${prefix} \ --without-x post-destroot { set dev "" if {[string first "-devel" $subport] > 0} { set dev "-devel" } move ${destroot}${prefix}/lib/${name}/lib/pkgconfig/PETSc.pc ${destroot}${prefix}/lib/pkgconfig/PETSc${dev}.pc } variant accelerate description {Use Accelerate framework for LAPACK} conflicts atlas { configure.args-append --with-blas-lapack-lib=/System/Library/Frameworks/Accelerate.framework/Versions/Current/Accelerate } variant atlas description {Use Atlas for LAPACK} conflicts accelerate { configure.args-append --with-blas-lapack-lib=${prefix}/lib/libtatlas.dylib } variant complex description {Build with support for complex numbers} conflicts sundials hwloc { configure.args-append --with-scalar-type=complex configure.args-append --with-clanguage=C++ } variant hwloc description {Build with hwloc} conflicts complex { depends_build-append port:hwloc configure.args-append --with-hwloc-dir=${prefix} } variant suitesparse description {Build with CHOLDMOD and UMFPACK} { depends_lib-append port:SuiteSparse configure.args-append --with-suitesparse-dir=${prefix} } variant sundials description {Build with CVODE interface for TS} { depends_lib-append port:sundials configure.args-append --with-sundials-dir=${prefix} mpi.enforce_variant sundials } if {[string first "-devel" $subport] > 0} { variant superlu description {Build with SuperLU interface for a serial direct solver} { depends_lib-append port:superlu configure.args-append --with-superlu-dir=${prefix} } } variant mumps description {Build with MUMPS interface for a parallel direct solver} requires parmetis { depends_lib-append port:mumps configure.args-append --with-scalapack-dir=${prefix} \ --with-mumps-dir=${prefix} mpi.enforce_variant mumps } variant superlu_dist description {Build with SuperLU_DIST interface for a parallel direct solver} requires parmetis { depends_lib-append port:superlu_dist configure.args-append --with-superlu_dist-dir=${prefix} mpi.enforce_variant superlu_dist } variant ml description {Build with ML interface for a sparse parallel solver} { depends_lib-append port:ml configure.args-append --with-ml-dir=${prefix} mpi.enforce_variant ml } variant hypre description {Build with HYPRE interface for a sparse parallel solver} { depends_lib-append port:hypre configure.args-append --with-hypre-dir=${prefix} mpi.enforce_variant hypre } variant parmetis description {Build with ParMetis interface for parallel graph partitioning} { depends_lib-append port:metis \ port:parmetis configure.args-append --with-metis-dir=${prefix} \ --with-parmetis-dir=${prefix} mpi.enforce_variant parmetis } variant hdf5 description {Build with HDF5 interface for parallel file io} { depends_lib-append port:hdf5 configure.args-append --with-hdf5-dir=${prefix} mpi.enforce_variant hdf5 } variant netcdf description {Build with NetCDF interface for parallel file io} requires hdf5 { depends_lib-append port:netcdf configure.args-append --with-netcdf-dir=${prefix} mpi.enforce_variant netcdf } variant fftw description {Build with FFTW interface (requires MPI)} { depends_lib-append port:fftw-3 configure.args-append --with-fftw-dir=${prefix} mpi.enforce_variant fftw-3 } variant yaml description {Build with YAML interface for option reading} { depends_lib-append port:libyaml configure.args-append --with-yaml-dir=${prefix} } variant valgrind description {Build with valgrind support} { depends_lib-append port:valgrind configure.args-delete --with-valgrind=0 configure.args-append --with-valgrind-dir=${prefix} } variant sprng description {Build with SPRNG interface for a sparse random number generator} { depends_lib-append port:sprng configure.args-append --with-sprng-dir=${prefix} mpi.enforce_variant sprng } variant debug description {Build with debug support} { configure.args-delete --with-debugging=0 configure.args-append --with-debugging=1 } if {![mpi_variant_isset]} { default_variants +mpich } if {![variant_isset atlas]} { default_variants +accelerate } if {![variant_isset complex]} { default_variants +hwloc } destroot.destdir DESTDIR=${destroot}${prefix}/lib/${name}