[124269] trunk/dports/science/ncarg
takeshi at macports.org
takeshi at macports.org
Thu Aug 21 22:01:55 PDT 2014
Revision: 124269
https://trac.macports.org/changeset/124269
Author: takeshi at macports.org
Date: 2014-08-21 22:01:55 -0700 (Thu, 21 Aug 2014)
Log Message:
-----------
ncarg: fix +g95 build with clang. use PortGroup compilers
Modified Paths:
--------------
trunk/dports/science/ncarg/Portfile
Added Paths:
-----------
trunk/dports/science/ncarg/files/patch-ncarview-idt-glob.c.diff
trunk/dports/science/ncarg/files/patch-ni-lib-hlu-CnTriMeshRenderer.c.diff
trunk/dports/science/ncarg/files/patch-ni-lib-hlu-Transform.c.diff
trunk/dports/science/ncarg/files/patch-ni-lib-nfpfort-yMakefile.diff
trunk/dports/science/ncarg/files/patch-ni-ncl-NclDriver.c.diff
trunk/dports/science/ncarg/files/patch-ni-ncl-NclDriver.h.diff
Modified: trunk/dports/science/ncarg/Portfile
===================================================================
--- trunk/dports/science/ncarg/Portfile 2014-08-22 02:40:33 UTC (rev 124268)
+++ trunk/dports/science/ncarg/Portfile 2014-08-22 05:01:55 UTC (rev 124269)
@@ -3,7 +3,11 @@
PortSystem 1.0
PortGroup conflicts_build 1.0
+PortGroup compilers 1.0
+compilers.choose fc f77 f90 cc
+compilers.setup -clang -dragonegg -gfortran -llvm
+
name ncarg
version 6.2.0
categories science
@@ -74,17 +78,28 @@
patch-ni-nyacc-output.c.diff \
patch-ni-nyacc-reader.c.diff \
patch-ni-nyacc-verbose.c.diff \
+ patch-ni-lib-hlu-CnTriMeshRenderer.c.diff \
+ patch-ni-lib-hlu-Transform.c.diff \
patch-ncarview-idt-w_idt.c.diff \
+ patch-ncarview-idt-glob.c.diff \
patch-Fsplit.c.diff
+# Some C compilers, notably clang does not support OpenMP.
+patchfiles-append \
+ patch-ni-ncl-NclDriver.h.diff \
+ patch-ni-ncl-NclDriver.c.diff
if {$build_arch eq "x86_64"} {
patchfiles-append patch-config-ymake.diff
}
+if {[variant_isset g95]} {
+ patchfiles-append patch-ni-lib-nfpfort-yMakefile.diff
+}
post-patch {
reinplace "s|hdf/||" ${worksrcpath}/ni/src/ncl/FileSupport.c
reinplace "s| -lsz||g" ${worksrcpath}/Configure
reinplace "s| -lsz||g" ${worksrcpath}/config/Project
reinplace "s|g\\\\+\\\\+|${configure.cc}|" ${worksrcpath}/ni/src/ncl/yMakefile
+ reinplace "s|CC=cc|CC=${configure.cc}|" ${workpath}/${g2clib_worksrcdir}/makefile
reinplace "s|INC=-I/usr/local/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"} {
@@ -93,11 +108,14 @@
foreach f {Darwin Darwin_Intel} {
if {[variant_isset g95]} {
reinplace "s|-lgfortran|-lf95|" ${worksrcpath}/config/${f}
+ reinplace "s|-fopenmp||" ${worksrcpath}/config/${f}
+ reinplace "s| -lquadmath||" ${worksrcpath}/config/${f}
} else {
reinplace "s|-lgfortran|-lgfortran -lgomp|" ${worksrcpath}/config/${f}
}
reinplace "s| gfortran$| ${configure.fc}|" ${worksrcpath}/config/${f}
reinplace "s|gcc$|${configure.cc}|" ${worksrcpath}/config/${f}
+ reinplace "s|g++$|${configure.cxx}|" ${worksrcpath}/config/${f}
reinplace "/CcOptions/d" ${worksrcpath}/config/${f}
reinplace "/ArchRecLibSearch/d" ${worksrcpath}/config/${f}
reinplace "/ArchRecIncSearch/d" ${worksrcpath}/config/${f}
@@ -216,67 +234,11 @@
}
}
-set gcc_versions {4.3 4.4 4.5 4.6 4.7 4.8 4.9}
-set default_fortran_variant +gcc48
-set g95_conflicts {}
-
-foreach ver ${gcc_versions} {
- set ver_no_dot [join [split ${ver} "."] ""]
-
- set variant_line {variant gcc${ver_no_dot} description "build with gfortran from gcc${ver_no_dot}" conflicts g95}
-
- foreach over ${gcc_versions} {
- if {${ver} == ${over}} {
- continue
- }
-
- set over_no_dot [join [split ${over} "."] ""]
- append variant_line " conflicts gcc${over_no_dot}"
- }
- append variant_line { {}}
-
- eval $variant_line
-
- append g95_conflicts " conflicts gcc${ver_no_dot}"
-
- if {[variant_isset gcc${ver_no_dot}]} {
- if {${default_fortran_variant} != "+gcc${ver_no_dot}"} {
- set default_fortran_variant ""
- }
- }
+if {![fortran_variant_isset]} {
+ default_variants-append +gcc48
}
-eval [concat {variant g95 description {build with g95}} $g95_conflicts {{}}]
-
if {[variant_isset g95]} {
- if {${default_fortran_variant} != "+g95"} {
- set default_fortran_variant ""
- }
-}
-
-if {${default_fortran_variant} != ""} {
- default_variants-append "${default_fortran_variant}"
-}
-
-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.compiler macports-gcc-${ver}
- }
-}
-
-if {[variant_isset g95]} {
- depends_lib-append path:lib/libgcc/libgcc_s.1.dylib:libgcc
- depends_build-append port:g95
-
- configure.fc ${prefix}/bin/g95
- configure.f77 ${prefix}/bin/g95
- configure.f90 ${prefix}/bin/g95
-
configure.fflags-append -fno-second-underscore
}
Added: trunk/dports/science/ncarg/files/patch-ncarview-idt-glob.c.diff
===================================================================
--- trunk/dports/science/ncarg/files/patch-ncarview-idt-glob.c.diff (rev 0)
+++ trunk/dports/science/ncarg/files/patch-ncarview-idt-glob.c.diff 2014-08-22 05:01:55 UTC (rev 124269)
@@ -0,0 +1,11 @@
+--- ncarview/src/bin/idt/glob.c.orig 2014-04-01 11:23:27.000000000 +0900
++++ ncarview/src/bin/idt/glob.c 2014-08-20 15:59:54.000000000 +0900
+@@ -49,7 +49,7 @@
+ * to_child[1] : fd for writing to spawned process
+ * to_parent[0] : fd for reading from spawned process
+ */
+-static talkto(argv)
++static void talkto(argv)
+ char **argv;
+ {
+ int pid;
Added: trunk/dports/science/ncarg/files/patch-ni-lib-hlu-CnTriMeshRenderer.c.diff
===================================================================
--- trunk/dports/science/ncarg/files/patch-ni-lib-hlu-CnTriMeshRenderer.c.diff (rev 0)
+++ trunk/dports/science/ncarg/files/patch-ni-lib-hlu-CnTriMeshRenderer.c.diff 2014-08-22 05:01:55 UTC (rev 124269)
@@ -0,0 +1,38 @@
+--- ni/src/lib/hlu/CnTriMeshRenderer.c.orig 2014-04-01 11:23:12.000000000 +0900
++++ ni/src/lib/hlu/CnTriMeshRenderer.c 2014-08-20 16:09:26.000000000 +0900
+@@ -23,7 +23,9 @@
+ #include <stdlib.h>
+ #include <math.h>
+ #include <ctype.h>
++#ifdef _OPENMP
+ #include <omp.h>
++#endif
+ #include <ncarg/hlu/hluutil.h>
+ #include <ncarg/hlu/CnTriMeshRendererP.h>
+ #include <ncarg/hlu/WorkstationI.h>
+@@ -1532,8 +1534,13 @@
+ private(tbp,block_ix,ys,ye,ye_adj,xs,xe,xe_adj,npnt,ntri,nedg,npnt_alloc,xt,yt,i,j,in,out,vout, \
+ snodes,stris,sedges,vedges,cpoints,cedges,ctris,tid,xmx,xmn,ymx,ymn,ytmp,xtmp)
+ {
++#ifdef _OPENMP
+ tid = omp_get_thread_num();
+ nthreads = omp_get_num_threads();
++#else
++ tid = 0;
++ nthreads = 1;
++#endif
+ if (tid == 0) {
+ /* printf("%d threads\n",nthreads);*/
+ if (nthreads > block_count) {
+@@ -3424,7 +3431,11 @@
+ #pragma omp parallel shared(cnp, tmp,entry_name,Lopn,Loen,Lotn,nthreads,bbox,msize,nsize,min_cell_size,fill_op) \
+ private(tbp,i)
+ {
++#ifdef _OPENMP
+ nthreads = omp_get_num_threads();
++#else
++ nthreads = 1;
++#endif
+ if (nthreads > 1) fill_op = 2;
+
+ #pragma omp for schedule(static,1)
Added: trunk/dports/science/ncarg/files/patch-ni-lib-hlu-Transform.c.diff
===================================================================
--- trunk/dports/science/ncarg/files/patch-ni-lib-hlu-Transform.c.diff (rev 0)
+++ trunk/dports/science/ncarg/files/patch-ni-lib-hlu-Transform.c.diff 2014-08-22 05:01:55 UTC (rev 124269)
@@ -0,0 +1,12 @@
+--- ni/src/lib/hlu/Transform.c.orig 2014-04-01 11:23:12.000000000 +0900
++++ ni/src/lib/hlu/Transform.c 2014-08-20 16:09:54.000000000 +0900
+@@ -36,7 +36,9 @@
+ #include <ncarg/hlu/ConvertersP.h>
+ #include <ncarg/hlu/color.h>
+ #include <ncarg/hlu/WorkstationP.h>
++#ifdef _OPENMP
+ #include <omp.h>
++#endif
+
+ static _NhlRawObjCB callbacks[] = {
+ {_NhlCBtfOverlayStatus,
Added: trunk/dports/science/ncarg/files/patch-ni-lib-nfpfort-yMakefile.diff
===================================================================
--- trunk/dports/science/ncarg/files/patch-ni-lib-nfpfort-yMakefile.diff (rev 0)
+++ trunk/dports/science/ncarg/files/patch-ni-lib-nfpfort-yMakefile.diff 2014-08-22 05:01:55 UTC (rev 124269)
@@ -0,0 +1,11 @@
+--- ni/src/lib/nfpfort/yMakefile.orig 2014-04-01 11:23:13.000000000 +0900
++++ ni/src/lib/nfpfort/yMakefile 2014-08-20 15:19:46.000000000 +0900
+@@ -45,7 +45,7 @@
+
+
+ plotgrids_var.o: plotgrids_var.f90
+- $(F77) $(FFLAGS) -c plotgrids_var.f90
++ $(F77) $(FFLAGS) -freal-loops -c plotgrids_var.f90
+
+ plotfmt_open.o: plotfmt_open.f90
+ $(F77) $(FFLAGS) -c plotfmt_open.f90
Added: trunk/dports/science/ncarg/files/patch-ni-ncl-NclDriver.c.diff
===================================================================
--- trunk/dports/science/ncarg/files/patch-ni-ncl-NclDriver.c.diff (rev 0)
+++ trunk/dports/science/ncarg/files/patch-ni-ncl-NclDriver.c.diff 2014-08-22 05:01:55 UTC (rev 124269)
@@ -0,0 +1,16 @@
+--- ni/src/ncl/NclDriver.c.orig 2014-04-01 11:23:16.000000000 +0900
++++ ni/src/ncl/NclDriver.c 2014-08-20 13:45:56.000000000 +0900
+@@ -62,11 +62,13 @@
+ yydebug = 1;
+ #endif /* YYDEBUG */
+
++#ifdef _OPENMP
+ /* make sure that only one OMP thread runs unless OMP_NUM_THREADS is explicitly defined -- on Darwin at least the default is not a single thread */
+
+ if (! getenv("OMP_NUM_THREADS")) {
+ omp_set_num_threads(1);
+ }
++#endif
+
+ strcpy(buffer,(char *)GetNCARGPath("tmp"));
+ sr = access(buffer,W_OK|X_OK|F_OK);
Added: trunk/dports/science/ncarg/files/patch-ni-ncl-NclDriver.h.diff
===================================================================
--- trunk/dports/science/ncarg/files/patch-ni-ncl-NclDriver.h.diff (rev 0)
+++ trunk/dports/science/ncarg/files/patch-ni-ncl-NclDriver.h.diff 2014-08-22 05:01:55 UTC (rev 124269)
@@ -0,0 +1,12 @@
+--- ni/src/ncl/NclDriver.h.orig 2014-04-01 11:23:16.000000000 +0900
++++ ni/src/ncl/NclDriver.h 2014-08-20 13:45:32.000000000 +0900
+@@ -29,7 +29,9 @@
+ #include <ncarg/hlu/Error.h>
+ #include <ncarg/hlu/App.h>
+ #include <netcdf.h>
++#ifdef _OPENMP
+ #include <omp.h>
++#endif
+
+ #if defined(HPUX)
+ #include <dl.h>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20140821/4ea919fd/attachment-0001.html>
More information about the macports-changes
mailing list