[112864] trunk/dports/science/grib_api/Portfile

takeshi at macports.org takeshi at macports.org
Sat Nov 2 17:54:14 PDT 2013


Revision: 112864
          https://trac.macports.org/changeset/112864
Author:   takeshi at macports.org
Date:     2013-11-02 17:54:14 -0700 (Sat, 02 Nov 2013)
Log Message:
-----------
grib_api: updated for 1.11.0. provide Fortran variants a la PortfileRecipes#fortran

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

Modified: trunk/dports/science/grib_api/Portfile
===================================================================
--- trunk/dports/science/grib_api/Portfile	2013-11-02 23:47:02 UTC (rev 112863)
+++ trunk/dports/science/grib_api/Portfile	2013-11-03 00:54:14 UTC (rev 112864)
@@ -4,18 +4,17 @@
 PortSystem          1.0
 
 name                grib_api
-version             1.9.18
-revision            2
+version             1.11.0
 platforms           darwin
 maintainers         takeshi
-license             LGPL
+license             Apache-2
 categories          science
 description         GRIB decoder
 homepage            https://software.ecmwf.int/wiki/display/GRIB/Home
 master_sites        https://software.ecmwf.int/wiki/download/attachments/3473437
-checksums           md5     94c03e18f4e1e166048057929feb0d1a \
-                    sha1    87616917a6978a56ae4fe173a3e6e3828b0ebfba \
-                    rmd160  f44eeb38ee1d9fc453f0078971f9b0aab8f4c0f5
+checksums           md5     fe1dbfa09d970054ebb75e6616f5fd69 \
+                    sha1    bf7238fb5a5ce289b2ca20da72de245e8842979f \
+                    rmd160  4ec71f0122e82674b7b1953078bc9dc18c394c21
 long_description \
     The ECMWF GRIB API is an application program interface accessible \
     from C and FORTRAN programs developed for encoding and decoding   \
@@ -35,7 +34,12 @@
     reinplace "s|share\/samples|share/$name/samples|" ${worksrcpath}/configure
     reinplace "s|share\/samples|share/$name/samples|" ${worksrcpath}/configure
     reinplace "s|share\/definitions|share/$name/definitions|" ${worksrcpath}/configure
+# avoid installation to non-existent directory 'none'
     reinplace "s|'none'|''|" ${worksrcpath}/configure
+# avoid auto detection of g95 or gfortran that may prevent generation of shared library
+    reinplace "s|g95|''|" ${worksrcpath}/configure
+    reinplace "s|gfortran|''|" ${worksrcpath}/configure
+# avoid duplicated symbol error
     reinplace "s|-fno-common||" ${worksrcpath}/configure
 }
 
@@ -61,54 +65,56 @@
 
 variant emos description {deprecated to remove dependency to emos} {
 }
+ 
+set gcc_versions {4.3 4.4 4.5 4.6 4.7 4.8 4.9}
+set g95_conflicts {}
 
-variant gcc43 conflicts g95 gcc44 gcc45 gcc46 gcc47 gcc48 description {builds fortran interface with gfortran 4.3} {
-    configure.args-delete   --disable-fortran
-    configure.compiler      macports-gcc-4.3
-    configure.args-append   --with-fortranlibdir=${prefix}/lib/gcc43 \
-                            --with-fortranlibs=-lgfortran
-}
+foreach ver ${gcc_versions} {
+    set ver_no_dot [join [split ${ver} "."] ""]
 
-variant gcc44 conflicts g95 gcc43 gcc45 gcc46 gcc47 gcc48 description {builds fortran interface with gfortran 4.4} {
-    configure.args-delete   --disable-fortran
-    configure.compiler      macports-gcc-4.4
-    configure.args-append   --with-fortranlibdir=${prefix}/lib/gcc44 \
-                            --with-fortranlibs=-lgfortran
-}
+    set variant_line {variant gcc${ver_no_dot} description "build Fortran interface with gfortran from gcc${ver_no_dot}" conflicts g95}
 
-variant gcc45 conflicts g95 gcc43 gcc44 gcc46 gcc47 gcc48 description {builds fortran interface with gfortran 4.5} {
-    configure.args-delete   --disable-fortran
-    configure.compiler      macports-gcc-4.5
-    configure.args-append   --with-fortranlibdir=${prefix}/lib/gcc45 \
-                            --with-fortranlibs=-lgfortran
-}
+    foreach over ${gcc_versions} {
+        if {${ver} == ${over}} {
+            continue
+        }
 
-variant gcc46 conflicts g95 gcc43 gcc44 gcc45 gcc47 gcc48 description {builds fortran interface with gfortran 4.6} {
-    configure.args-delete   --disable-fortran
-    configure.compiler      macports-gcc-4.6
-    configure.args-append   --with-fortranlibdir=${prefix}/lib/gcc46 \
-                            --with-fortranlibs=-lgfortran
-}
+        set over_no_dot [join [split ${over} "."] ""]
+        append variant_line " conflicts gcc${over_no_dot}"
+    }
+    append variant_line { {}}
 
-variant gcc47 conflicts g95 gcc43 gcc44 gcc45 gcc46 gcc48 description {builds fortran interface with gfortran 4.7} {
-    configure.args-delete   --disable-fortran
-    configure.compiler      macports-gcc-4.7
-    configure.args-append   --with-fortranlibdir=${prefix}/lib/gcc47 \
-                            --with-fortranlibs=-lgfortran
+    eval $variant_line
+
+    append g95_conflicts " conflicts gcc${ver_no_dot}"
 }
 
-variant gcc48 conflicts g95 gcc43 gcc44 gcc45 gcc46 gcc47 description {builds fortran interface with gfortran 4.8} {
-    configure.args-delete   --disable-fortran
-    configure.compiler      macports-gcc-4.8
-    configure.args-append   --with-fortranlibdir=${prefix}/lib/gcc48 \
-                            --with-fortranlibs=-lgfortran
+eval [concat {variant g95 description {build Fortran interface with g95}} $g95_conflicts {{}}]
+
+foreach ver ${gcc_versions} {
+    set ver_no_dot [join [split ${ver} "."] ""]
+
+    if {[variant_isset gcc${ver_no_dot}]} {
+        depends_lib-append path:lib/libgcc/libgcc_s.1.dylib:libgcc
+        depends_build-append port:gcc${ver_no_dot}
+
+        configure.args-delete   --disable-fortran
+        configure.fc  ${prefix}/bin/gfortran-mp-${ver}
+        configure.f77 ${prefix}/bin/gfortran-mp-${ver}
+        configure.f90 ${prefix}/bin/gfortran-mp-${ver}
+        configure.args-append   --with-fortranlibdir=${prefix}/lib/gcc${ver_no_dot} \
+                                --with-fortranlibs=-lgfortran
+    }
 }
 
-variant g95 conflicts gcc43 gcc44 gcc45 gcc46 gcc47 gcc48 emos universal description {builds fortran interface with g95} {
-    depends_build-append    port:g95
+if {[variant_isset g95]} {
+    depends_lib-append path:lib/libgcc/libgcc_s.1.dylib:libgcc
+    depends_build-append port:g95
+
     configure.args-delete   --disable-fortran
-    configure.fc            ${prefix}/bin/g95
-    configure.f77           ${configure.fc}
+    configure.fc ${prefix}/bin/g95
+    configure.f77 ${prefix}/bin/g95
+    configure.f90 ${prefix}/bin/g95
     configure.args-append   --with-fortranlibdir=${prefix}/lib \
                             --with-fortranlibs=-lf95
 }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20131102/ae7279ce/attachment.html>


More information about the macports-changes mailing list