<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>