<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[141379] trunk/dports/math/R/Portfile</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/141379">141379</a></dd>
<dt>Author</dt> <dd>dstrubbe@macports.org</dd>
<dt>Date</dt> <dd>2015-10-16 12:18:06 -0700 (Fri, 16 Oct 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>R: Use compilers PortGroup to manage Fortran variants (which adds support for gcc5, gcc6, g95, and dragonegg, and sets gcc5 as default -- passes test phase on my machine). Comments on necessity of clang for the C compiler (at least on Yosemite). Two small fixes: comment in configure.args was ending up in the middle of the configure line since more args are appended to this line, and therefore were probably ignored since they fall after the '#'. The require_active_variants line for tk should not use the path: dependency since tk is set as a port: dependency. Closes ticket #49316.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportsmathRPortfile">trunk/dports/math/R/Portfile</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportsmathRPortfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/math/R/Portfile (141378 => 141379)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/math/R/Portfile        2015-10-16 18:13:10 UTC (rev 141378)
+++ trunk/dports/math/R/Portfile        2015-10-16 19:18:06 UTC (rev 141379)
</span><span class="lines">@@ -2,6 +2,7 @@
</span><span class="cx"> # $Id$
</span><span class="cx"> 
</span><span class="cx"> PortSystem 1.0
</span><ins>+PortGroup compilers 1.0
</ins><span class="cx"> PortGroup active_variants 1.1
</span><span class="cx"> 
</span><span class="cx"> name                        R
</span><span class="lines">@@ -35,6 +36,9 @@
</span><span class="cx"> checksums                   rmd160  0e8bf2ecca48f0f2433f6b07f422b7730a76fbb4 \
</span><span class="cx">                             sha256  9c9152e74134b68b0f3a1c7083764adc1cb56fd8336bec003fd0ca550cd2461d
</span><span class="cx"> 
</span><ins>+compilers.choose            fc f77
+compilers.setup             require_fortran
+
</ins><span class="cx"> depends_build               port:pkgconfig
</span><span class="cx"> 
</span><span class="cx"> depends_lib                 port:readline \
</span><span class="lines">@@ -50,6 +54,19 @@
</span><span class="cx">     reinplace &quot;s|R_HOME|\&quot;${resources}\&quot;|&quot; &quot;${worksrcpath}/src/unix/Rscript.c&quot;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+# Note: gcc cannot be used for the C compiler. It will give:
+#:info:build In file included from /usr/include/dispatch/dispatch.h:51:0,
+#:info:build                  from /System/Library/Frameworks/CoreFoundation.framework/Headers/CFStream.h:15,
+#:info:build                  from /System/Library/Frameworks/CoreFoundation.framework/Headers/CFPropertyList.h:13,
+#:info:build                  from langprefs.c:30:
+#:info:build /usr/include/dispatch/object.h:143:15: error: expected identifier or '(' before '^' token
+#:info:build  typedef void (^dispatch_block_t)(void);
+#:info:build                ^
+#:info:build /usr/include/dispatch/object.h:362:3: error: unknown type name 'dispatch_block_t'
+#:info:build    dispatch_block_t notification_block);
+#:info:build    ^
+# However, use of compiler.blacklist *gcc* would remove the GCC Fortran compilers too.
+
</ins><span class="cx"> configure.pre_args          --prefix=${frameworks_dir}
</span><span class="cx"> 
</span><span class="cx"> configure.args              --enable-memory-profiling \
</span><span class="lines">@@ -62,7 +79,8 @@
</span><span class="cx">                             --without-recommended-packages \
</span><span class="cx">                             --without-x \
</span><span class="cx">                             --with-included-gettext \
</span><del>-                            --without-system-xz #bug introduced in R-3.2.0, doesn't link to system copy, put port:xz back too
</del><ins>+                            --without-system-xz
+#bug introduced in R-3.2.0, doesn't link to system copy, put port:xz back too
</ins><span class="cx"> 
</span><span class="cx"> if {${os.major} &lt; 13} {
</span><span class="cx">     configure.args-append --disable-openmp
</span><span class="lines">@@ -104,50 +122,6 @@
</span><span class="cx">     configure.optflags-append -g
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-set gcc_versions {4.5 4.6 4.7 4.8 4.9}
-set default_fortran_variant +gfortran48
-
-foreach ver ${gcc_versions} {
-    set ver_no_dot [join [split ${ver} &quot;.&quot;] &quot;&quot;]
-
-    set variant_line {variant gfortran${ver_no_dot} description &quot;build with gfortran from gcc${ver_no_dot}&quot;}
-
-    foreach over ${gcc_versions} {
-        if {${ver} == ${over}} {
-            continue
-        }
-
-        set over_no_dot [join [split ${over} &quot;.&quot;] &quot;&quot;]
-        append variant_line &quot; conflicts gfortran${over_no_dot}&quot;
-    }
-    append variant_line { {}}
-
-    eval $variant_line
-
-    if {[variant_isset gfortran${ver_no_dot}]} {
-        if {${default_fortran_variant} != &quot;+gfortran${ver_no_dot}&quot;} {
-            set default_fortran_variant &quot;&quot;
-        }
-    }
-}
-
-if {${default_fortran_variant} != &quot;&quot;} {
-    default_variants-append &quot;${default_fortran_variant}&quot;
-}
-
-foreach ver ${gcc_versions} {
-    set ver_no_dot [join [split ${ver} &quot;.&quot;] &quot;&quot;]
-
-    if {[variant_isset gfortran${ver_no_dot}]} {
-        depends_lib-append path:lib/libgcc/libgcc_s.1.dylib: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}
-    }
-}
-
</del><span class="cx"> variant recommended description {install recommended R packages} {
</span><span class="cx">     configure.args-delete   --without-recommended-packages
</span><span class="cx">     configure.args-append   --with-recommended-packages
</span><span class="lines">@@ -158,7 +132,7 @@
</span><span class="cx">                             port:tk \
</span><span class="cx">                             port:xorg-libXScrnSaver \
</span><span class="cx">                             port:xorg-libXext
</span><del>-    require_active_variants path:lib/pkgconfig/tk.pc:tk x11
</del><ins>+    require_active_variants tk x11
</ins><span class="cx">     configure.args-delete   --without-tcltk
</span><span class="cx">     configure.args-append   --with-tcltk \
</span><span class="cx">                             --with-tcl-config=${prefix}/lib/tclConfig.sh \
</span></span></pre>
</div>
</div>

</body>
</html>