[87255] trunk/dports/science/ncarg/Portfile

takeshi at macports.org takeshi at macports.org
Mon Nov 14 20:16:21 PST 2011


Revision: 87255
          http://trac.macports.org/changeset/87255
Author:   takeshi at macports.org
Date:     2011-11-14 20:16:21 -0800 (Mon, 14 Nov 2011)
Log Message:
-----------
ncarg: use llvm-gcc-4.2 on Snow Leopard and Lion to avoidseg fault on ncl function setfileoption().

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

Modified: trunk/dports/science/ncarg/Portfile
===================================================================
--- trunk/dports/science/ncarg/Portfile	2011-11-15 02:13:43 UTC (rev 87254)
+++ trunk/dports/science/ncarg/Portfile	2011-11-15 04:16:21 UTC (rev 87255)
@@ -5,7 +5,7 @@
 
 name                        ncarg
 version                     6.0.0
-revision                    1
+revision                    3
 categories                  science
 maintainers                 takeshi
 description                 language for scientific data processing and visualization
@@ -70,29 +70,25 @@
 if {$build_arch eq "x86_64"} {
     patchfiles-append           patch-config-ymake.diff
 }
+
 post-patch {
     reinplace "s|INC=-I/usr/include|INC=${configure.cppflags} ${configure.cflags}|" ${workpath}/${g2clib_worksrcdir}/makefile
     reinplace "s|CC=gcc -fPIC|CC=${configure.cc}|" ${workpath}/${g2clib_worksrcdir}/makefile
     if {$build_arch eq "x86_64" || $build_arch eq "ppc64"} {
         reinplace "s|-DUSE_PNG$|-DUSE_PNG -D__64BIT__|" ${workpath}/${g2clib_worksrcdir}/makefile
     }
+    if {[variant_isset g95]} {
+        set fortranlib -lf95
+    } elseif {[variant_isset gcc43]} {
+        set fortranlib  "-L${prefix}/lib/gcc43 -lgfortran"
+    } elseif {[variant_isset gcc45]} {
+        set fortranlib  "-L${prefix}/lib/gcc45 -lgfortran"
+    } else {
+        set fortranlib  "-L${prefix}/lib/gcc44 -lgfortran"
+    } 
     foreach f {Darwin Darwin_Intel} {
-        if {[variant_isset g95]} {
-            reinplace "s|-lgfortran|-lf95|" ${worksrcpath}/config/${f}
-            reinplace "s| gfortran$| g95|" ${worksrcpath}/config/${f} 
-        } elseif {[variant_isset gcc43]} {
-            reinplace "s|-lgfortran|-L${prefix}/lib/gcc43 -lgfortran|" \
-                ${worksrcpath}/config/${f}
-            reinplace "s| gfortran$| gfortran-mp-4.3|" ${worksrcpath}/config/${f}
-        } elseif {[variant_isset gcc45]} {
-            reinplace "s|-lgfortran|-L${prefix}/lib/gcc45 -lgfortran|" \
-                ${worksrcpath}/config/${f}
-            reinplace "s| gfortran$| gfortran-mp-4.5|" ${worksrcpath}/config/${f}
-        } else {
-            reinplace "s|-lgfortran|-L${prefix}/lib/gcc44 -lgfortran|" \
-                ${worksrcpath}/config/${f}
-            reinplace "s| gfortran$| gfortran-mp-4.4|" ${worksrcpath}/config/${f}
-        }
+        reinplace "s|-lgfortran|${fortranlib}|" ${worksrcpath}/config/${f}
+        reinplace "s| gfortran$| ${configure.fc}|" ${worksrcpath}/config/${f} 
         reinplace "s|gcc$|${configure.cc}|" ${worksrcpath}/config/${f}
         reinplace "/CcOptions/d" ${worksrcpath}/config/${f}
         reinplace "s|-lXext$|-lXext\\
@@ -128,6 +124,12 @@
     }
 }
 
+# avoid segmentation fault on ncl function setfileoption()
+# clang fails to build ncl
+if {${os.major}>=10} {
+    configure.compiler  llvm-gcc-4.2
+}
+
 pre-configure {
     system "cd ${workpath}/${g2clib_worksrcdir}; make all"
     file copy ${workpath}/${g2clib_worksrcdir}/libgrib2c.a ${worksrcpath}
@@ -170,21 +172,38 @@
 }
 
 build.target                Build
-build.args-append           EXTRA_CCOPTIONS=\"${configure.cc_archflags}\"
+if {${os.major}<10} {
+    if {[varinant_isset g95]} {
+        build.args-append           EXTRA_CCOPTIONS=\"${configure.cc_archflags}\"
+    } else {
+        if {[string match *64* $build_arch]} {
+            build.args-append       EXTRA_CCOPTIONS=-m64
+        } else {
+            build.args-append       EXTRA_CCOPTIONS=-m32
+        }
+    }
+}
 
+# Only configure.fc is set (against UsingTheRightCompiler) since
+# ncl function setfileoption() causes Segmentation Fault
+# when built with macports-gcc-4.x.
 variant g95 conflicts gcc43 gcc44 gcc45 description {compile with g95} {
+    configure.fc            ${prefix}/bin/g95
     depends_build-append    port:g95
 }
 
 variant gcc43 conflicts gcc44 gcc45 g95 description {compile with gcc 4.3} {
+    configure.fc        ${prefix}/bin/gfortran-mp-4.3
     depends_build-append    port:gcc43
 }
 
 variant gcc44 conflicts gcc43 gcc45 g95 description {compile with gcc 4.4} {
+    configure.fc        ${prefix}/bin/gfortran-mp-4.4
     depends_build-append    port:gcc44
 }
 
 variant gcc45 conflicts gcc43 gcc44 g95 description {compile with gcc 4.5} {
+    configure.fc        ${prefix}/bin/gfortran-mp-4.5
     depends_build-append    port:gcc45
 }
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20111114/9512763e/attachment-0001.html>


More information about the macports-changes mailing list