[110078] trunk/dports/science/mpich/Portfile

jeremyhu at macports.org jeremyhu at macports.org
Sun Aug 25 15:35:57 PDT 2013


Revision: 110078
          https://trac.macports.org/changeset/110078
Author:   jeremyhu at macports.org
Date:     2013-08-25 15:35:57 -0700 (Sun, 25 Aug 2013)
Log Message:
-----------
mpich: Use fortran recipe to always have fortran support for dependents

Modified Paths:
--------------
    trunk/dports/science/mpich/Portfile

Modified: trunk/dports/science/mpich/Portfile
===================================================================
--- trunk/dports/science/mpich/Portfile	2013-08-25 22:34:43 UTC (rev 110077)
+++ trunk/dports/science/mpich/Portfile	2013-08-25 22:35:57 UTC (rev 110078)
@@ -7,7 +7,7 @@
 
 name                mpich
 version             3.0.4
-revision            1
+revision            2
 
 license             BSD
 categories          science parallel net
@@ -41,13 +41,13 @@
     sha256  cf638c85660300af48b6f776e5ecd35b5378d5905ec5d34c3da7a27da0acf0b3
 
 configure.args      --disable-dependency-tracking \
-                    --disable-f77 \
-                    --disable-fc \
+                    --enable-f77 \
+                    --enable-fc \
                     --disable-silent-rules \
                     --enable-base-cache \
                     --enable-cache \
                     --enable-cxx \
-                    --enable-fast=O2 \
+                    --enable-fast=Os \
                     --enable-shared \
                     --enable-smpcoll \
                     --with-device=ch3:nemesis \
@@ -82,62 +82,14 @@
     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
+# We're making compiler wrappers here... don't default to -Os for wrappers.
+# Actual library code is compiled with -Os via --enable-fast=Os configure arg
+configure.optflags-delete -O2 -Os
+configure.cppflags-delete -I${prefix}/include
 
 # As MPICH creates compiler wrappers, there are lots of
 # variants for what compiler the user would like to wrap.
 
-# Compiler variant set
-#   name     configure.compiler  Description
-array set clist {
-    clang   {clang               "Apple native"}
-    clang31 {macports-clang-3.1  "MacPorts' version"}
-    clang32 {macports-clang-3.2  "MacPorts' version"}
-    clang33 {macports-clang-3.3  "MacPorts' version"}
-    clang34 {macports-clang-3.4  "MacPorts' version"}
-    gcc43   {macports-gcc-4.3    "enables Fortran wrappers"}
-    gcc44   {macports-gcc-4.4    "enables Fortran wrappers"}
-    gcc45   {macports-gcc-4.5    "enables Fortran wrappers"}
-    gcc46   {macports-gcc-4.6    "enables Fortran wrappers"}
-    gcc47   {macports-gcc-4.7    "enables Fortran wrappers"}
-    gcc48   {macports-gcc-4.8    "enables Fortran wrappers"}
-    gcc49   {macports-gcc-4.9    "enables Fortran wrappers"}
-    llvm    {llvm-gcc-4.2        "Apple native"}
-}
-
-# Alphabetized list of compiler variants
-set clist_keys [lsort [array names clist]]
-
-foreach clist_item $clist_keys {
-    # Conflict with everyone else (remove ourselves from full list)
-    set this_key [lsearch $clist_keys $clist_item]
-    set conf_list [lreplace $clist_keys $this_key $this_key]
-    
-    # Describe variant
-    variant $clist_item \
-        description "Wraps $clist_item -- [lindex $clist($clist_item) 1]" \
-        conflicts $conf_list "
-            configure.compiler  [lindex $clist($clist_item) 0] 
-        "
-}
-
-if {[ variant_isset gcc43 ] ||
-    [ variant_isset gcc44 ] ||
-    [ variant_isset gcc45 ] ||
-    [ variant_isset gcc46 ] ||
-    [ variant_isset gcc47 ] ||
-    [ variant_isset gcc48 ] ||
-    [ variant_isset gcc49 ]} {
-    configure.args-append   --enable-f77 --enable-fc
-    configure.args-delete   --disable-f77 --disable-fc
-}
-
 variant gforker description {
     Use gforker process manager instead of the default hydra
 } {
@@ -146,18 +98,72 @@
 }
 
 variant tuned description {Build with more optimizations} {
-    configure.args-delete       --enable-fast=O2
+    configure.args-delete       --enable-fast=Os
     configure.args-append       --enable-fast=all \
                                 MPICHLIB_CFLAGS='-fomit-frame-pointer -O2'
 }
 
-if {[regexp -all -- {\yclang\y} ${compiler.blacklist}] != 0 &&
-    [variant_isset clang]} {
-    ui_error \
-        "The linker called from this version of clang segfaults."
-    return -code error "Unsupported clang version. Use +clang31 or +clang32"
+set gcc_versions {4.3 4.4 4.5 4.6 4.7 4.8 4.9}
+set default_fortran_variant +gcc48
+
+foreach ver ${gcc_versions} {
+    set ver_no_dot [join [split ${ver} "."] ""]
+
+    variant gcc${ver_no_dot} description {build with gfortran from gcc${ver_no_dot}} {}
+
+    variant gcc${ver_no_dot} conflicts g95 {}
+    variant g95 conflicts gcc${ver_no_dot} {}
+
+    foreach over ${gcc_versions} {
+        if {${ver} == ${over}} {
+            continue
+        }
+
+        set over_no_dot [join [split ${over} "."] ""]
+        variant gcc${ver_no_dot} conflicts gcc${over_no_dot} {}
+    }
+
+    if {[variant_isset gcc${ver_no_dot}]} {
+        if {${default_fortran_variant} != "+gcc${ver_no_dot}"} {
+            set default_fortran_variant ""
+        }
+    }
 }
 
+variant g95 description {build with g95} {}
+
+if {[variant_isset g95]} {
+    if {${default_fortran_variant} != "+g95"} {
+        set default_fortran_variant ""
+    }
+}
+
+if {${default_fortran_variant} != ""} {
+    default_variants "${default_fortran_variant}"
+}
+
+foreach ver ${gcc_versions} {
+    set ver_no_dot [join [split ${ver} "."] ""]
+
+    if {[variant_isset gcc${ver_no_dot}]} {
+        depends_lib-append port:libgcc
+        depends_build-append port:gcc${ver_no_dot}
+
+        configure.fc  ${prefix}/bin/gfortran-mp-${ver}
+        configure.f77 ${prefix}/bin/gfortran-mp-${ver}
+        configure.f90 ${prefix}/bin/gfortran-mp-${ver}
+    }
+}
+
+if {[variant_isset g95]} {
+    depends_lib-append port:libgcc
+    depends_build-append port:g95
+
+    configure.fc ${prefix}/bin/g95
+    configure.f77 ${prefix}/bin/g95
+    configure.f90 ${prefix}/bin/g95
+}
+
 livecheck.type      regex
 livecheck.regex     ${name}-(\[0-9.pbrc\]+)${extract.suffix}
 livecheck.url       ${homepage}downloads/index.php?s=downloads
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20130825/2331d92f/attachment-0001.html>


More information about the macports-changes mailing list