<pre style='margin:0'>
Marcus Calhoun-Lopez (MarcusCalhoun-Lopez) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/b63b29b4884c45720ad94dc32ec71caeda162a8e">https://github.com/macports/macports-ports/commit/b63b29b4884c45720ad94dc32ec71caeda162a8e</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit b63b29b4884c45720ad94dc32ec71caeda162a8e
</span>Author: Marcus Calhoun-Lopez <mcalhoun@macports.org>
AuthorDate: Fri Nov 24 01:00:53 2017 -0700
<span style='display:block; white-space:pre;color:#404040;'> mpich: add universal support
</span>---
science/mpich/Portfile | 51 +++++++++++++++++++++---
science/mpich/files/patch-universal_fortran.diff | 25 ++++++++++++
2 files changed, 71 insertions(+), 5 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/mpich/Portfile b/science/mpich/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 227e043..c9f598b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/mpich/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/mpich/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,6 +4,7 @@ PortSystem 1.0
</span> PortGroup compiler_blacklist_versions 1.0
PortGroup select 1.0
PortGroup compilers 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup muniversal 1.0
</span>
name mpich
version 3.2.1
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -35,11 +36,6 @@ long_description MPICH is a high-performance and widely portable\
</span> homepage http://www.mpich.org/
master_sites ${homepage}static/downloads/${version}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Since mpi is just a compiler wrapper, compiling it as universal needs to be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# supported upstream since it'd be a constantly moving target, for reference
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# see, https://trac.macports.org/ticket/20240
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-universal_variant no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> checksums \
rmd160 b830ba3f5cb5401c03898ad9abf87c60d5cf1e50 \
sha256 5db53bf2edfaa2238eb6a0a5bc3d2c2ccbfbb1badd79b664a1a919d2ce2330f1
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -201,9 +197,17 @@ if {${subport} != ${name}} {
</span>
# remove LDFLAGS mpicc, etc. and pkgconfig files
post-build {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set archs ${configure.universal_archs}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span> set archs ${build_arch}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> foreach arch ${archs} {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set dir ${worksrcpath}-${arch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span> set dir ${worksrcpath}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> foreach f [glob \
${dir}/src/env/*.bash \
${dir}/src/env/*.sh \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -218,6 +222,43 @@ if {${subport} != ${name}} {
</span> }
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Fortran headers do not understand preprocessors commands like __LP64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Fortran mod files can not be merged for different architectures
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # create a architecture specific folder for the non-build_arch architecture
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-universal_fortran.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${build_arch} eq "ppc" || ${build_arch} eq "ppc64"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set arch32 "ppc"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set arch64 "ppc64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set arch32 "i386"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set arch64 "x86_64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "s|__MACPORTS_32_BIT_ARCH__|${arch32}|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/src/env/mpifort.bash.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "s|__MACPORTS_64_BIT_ARCH__|${arch64}|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/src/env/mpifort.bash.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "s|__MACPORTS_BUILD_ARCH__|${build_arch}|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/src/env/mpifort.bash.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ merger-post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach arch ${configure.universal_archs} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set incdir ${destroot}-${arch}${prefix}/include/${name}-${cname}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${arch} ne ${build_arch}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set archinc ${incdir}/${arch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d -m 0755 ${archinc}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach f [glob -nocomplain -directory ${incdir} *.mod mpif.h] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ move ${f} ${archinc}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> post-destroot {
if {[string first "-devel" $subport] > 0} {
# Supply our own -devel manpages (might be materially different /
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/mpich/files/patch-universal_fortran.diff b/science/mpich/files/patch-universal_fortran.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..f0ac2f1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/mpich/files/patch-universal_fortran.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,25 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/env/mpifort.bash.in.orig 2015-11-09 19:39:01.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/env/mpifort.bash.in 2017-11-15 05:48:26.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -234,6 +234,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Otherwise, just accept the argument
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # - end of special handling for .F files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -arch|-m32|-m64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case "$arg" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -arch)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ other_arch=${allargs[$argno+1]}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -m32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ other_arch=__MACPORTS_32_BIT_ARCH__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -m64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ other_arch=__MACPORTS_64_BIT_ARCH__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if [ "$other_arch" != "__MACPORTS_BUILD_ARCH__" ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ allargs[${#allargs}]="-I${includedir}/${other_arch}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if [ $addarg = no ] ; then
</span></pre><pre style='margin:0'>
</pre>