<!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>[123121] trunk/dports/science/arb</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/123121">123121</a></dd>
<dt>Author</dt> <dd>ryandesign@macports.org</dd>
<dt>Date</dt> <dd>2014-08-05 16:45:15 -0700 (Tue, 05 Aug 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>arb: detect compiler versions more correctly (#44367)</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportssciencearbPortfile">trunk/dports/science/arb/Portfile</a></li>
<li><a href="#trunkdportssciencearbfilespatchARBarb_compiler_versionpldiff">trunk/dports/science/arb/files/patch-ARB-arb_compiler_version.pl.diff</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkdportssciencearbfilespatchMakefilediff">trunk/dports/science/arb/files/patch-Makefile.diff</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportssciencearbPortfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/science/arb/Portfile (123120 => 123121)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/science/arb/Portfile        2014-08-05 22:24:36 UTC (rev 123120)
+++ trunk/dports/science/arb/Portfile        2014-08-05 23:45:15 UTC (rev 123121)
</span><span class="lines">@@ -53,7 +53,8 @@
</span><span class="cx"> patchfiles              patch-ARB-config.makefile.diff \
</span><span class="cx">                         patch-ARB-intro.fig.diff \
</span><span class="cx">                         patch-ARB-arb.diff \
</span><del>-                        patch-ARB-arb_compiler_version.pl.diff
</del><ins>+                        patch-ARB-arb_compiler_version.pl.diff \
+                        patch-Makefile.diff
</ins><span class="cx">                         
</span><span class="cx"> # https://trac.macports.org/ticket/44368
</span><span class="cx"> platform darwin 11 {
</span></span></pre></div>
<a id="trunkdportssciencearbfilespatchARBarb_compiler_versionpldiff"></a>
<div class="modfile"><h4>Modified: trunk/dports/science/arb/files/patch-ARB-arb_compiler_version.pl.diff (123120 => 123121)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/science/arb/files/patch-ARB-arb_compiler_version.pl.diff        2014-08-05 22:24:36 UTC (rev 123120)
+++ trunk/dports/science/arb/files/patch-ARB-arb_compiler_version.pl.diff        2014-08-05 23:45:15 UTC (rev 123121)
</span><span class="lines">@@ -1,25 +1,52 @@
</span><del>-Index: /trunk/SOURCE_TOOLS/arb_compiler_version.pl
-===================================================================
---- SOURCE_TOOLS/arb_compiler_version.pl (revision 12310)
-+++ SOURCE_TOOLS/arb_compiler_version.pl (revision 12604)
-@@ -38,4 +38,20 @@
-     if ($detectedCompiler eq 'unknown') {
-       if ($detailedVersion =~ /apple.*llvm.*clang/oi) { $detectedCompiler = 'clang'; }
-+      else {
-+        # check for clang according to #582
-+        my $cmd = &quot;$compiler -dM -E -x c /dev/null&quot;;
-+        if (open(CMD,$cmd.'|')) { 
-+        LINE: foreach (&lt;CMD&gt;) {
-+            if (/__clang__/) {
-+              $detectedCompiler = 'clang';
-+              last LINE;
-+            }
-+          }
-+          close(CMD);
</del><ins>+--- SOURCE_TOOLS/arb_compiler_version.pl.orig        2014-07-22 09:59:34.000000000 -0500
++++ SOURCE_TOOLS/arb_compiler_version.pl        2014-08-05 04:34:02.000000000 -0500
+@@ -26,17 +26,22 @@
+     if (not defined $dumpedVersion)   { $dumpedVersion   = $undetectable; }
+     if (not defined $detailedVersion) { $detailedVersion = $undetectable; }

+-    if ($detailedVersion =~ /\s/) {
+-      my $firstWord = $`;
+-      if ($firstWord eq 'gcc' or $firstWord eq 'clang') {
+-        $detectedCompiler = $firstWord;
++    my $cmd = &quot;$compiler -dM -E -x c /dev/null&quot;;
++    if (open(CMD,$cmd.'|')) {
++    LINE: foreach (&lt;CMD&gt;) {
++        if (/__GNUC__/) {
++          $detectedCompiler = 'gcc';
++          # clang also defines __GNUC__ so don't &quot;last&quot; here
</ins><span class="cx"> +        }
</span><del>-+        else {
-+          print STDERR &quot;failed to execute '$cmd'&quot;;
</del><ins>++        elsif (/__clang__/) {
++          $detectedCompiler = 'clang';
++          last LINE;
</ins><span class="cx"> +        }
</span><del>-+      }
</del><ins>+       }
+-      elsif ($firstWord eq 'g++') { $detectedCompiler = 'gcc'; }
+-      elsif ($firstWord eq 'clang++') { $detectedCompiler = 'clang'; }
++      close(CMD);
</ins><span class="cx">      }
</span><del>- 
</del><span class="cx">\ No newline at end of file
</span><ins>+-
+-    if ($detectedCompiler eq 'unknown') {
+-      if ($detailedVersion =~ /apple.*llvm.*clang/oi) { $detectedCompiler = 'clang'; }
++    else {
++      print STDERR &quot;failed to execute '$cmd'&quot;;
+     }

+     if ($detectedCompiler eq 'unknown') {
+@@ -45,13 +50,11 @@
+       print STDERR &quot;detailedVersion='$detailedVersion'\n&quot;;
+     }

+-    if ($dumpedVersion =~ /\..*\./) {
+-      $detectedVersion = $dumpedVersion;
++    if ($detailedVersion =~ /\s([0-9]+(?:\.[0-9]+)+)\s/) {
++      $detectedVersion = $1;
+     }
+-    else {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     # if version info does not contain patchlevel -&gt; use detailedVersion
+-      if ($detailedVersion =~ /\s([0-9]+\.[0-9]+\.[0-9]+)\s/) {
+-        $detectedVersion = $1;
+-      }
++    elsif ($dumpedVersion =~ /^([0-9]+(?:\.[0-9]+)+)$/) {
++      $detectedVersion = $dumpedVersion;
+     }
+   }

</ins></span></pre></div>
<a id="trunkdportssciencearbfilespatchMakefilediff"></a>
<div class="addfile"><h4>Added: trunk/dports/science/arb/files/patch-Makefile.diff (0 => 123121)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/science/arb/files/patch-Makefile.diff                                (rev 0)
+++ trunk/dports/science/arb/files/patch-Makefile.diff        2014-08-05 23:45:15 UTC (rev 123121)
</span><span class="lines">@@ -0,0 +1,43 @@
</span><ins>+--- Makefile.orig        2014-07-22 09:59:38.000000000 -0500
++++ Makefile        2014-08-05 05:51:40.000000000 -0500
+@@ -98,10 +98,6 @@
+         4.8.0 4.8.1 4.8.2 4.8.3 \
+         4.9.0  \

+-# supported clang versions:
+-ALLOWED_clang_VERSIONS=\
+-        4.2.1 \
+-
+ # ----------------------

+ COMPILER_INFO:=$(shell SOURCE_TOOLS/arb_compiler_version.pl $(A_CXX))
+@@ -118,7 +114,7 @@
+ endif

+ ifeq ($(USE_CLANG),1)
+-ALLOWED_COMPILER_VERSIONS=$(ALLOWED_clang_VERSIONS)
++ALLOWED_COMPILER_VERSIONS=$(COMPILER_VERSION)
+ else
+ ALLOWED_COMPILER_VERSIONS=$(ALLOWED_gcc_VERSIONS)
+ endif
+@@ -137,6 +133,7 @@
+ USE_GCC_47_OR_HIGHER:=
+ USE_GCC_48_OR_HIGHER:=

++ifeq ($(USE_CLANG),0)
+ ifeq ($(USE_GCC_MAJOR),4)
+  ifeq ($(USE_GCC_MINOR),5)
+   ifneq ('$(findstring $(USE_GCC_PATCHLEVEL),23456789)','')
+@@ -154,9 +151,12 @@
+   endif
+  endif
+ else
++ ifneq ('$(findstring $(USE_GCC_MAJOR),56789)','')
+  USE_GCC_452_OR_HIGHER:=yes
+  USE_GCC_47_OR_HIGHER:=yes
+  USE_GCC_48_OR_HIGHER:=yes
++ endif
++endif
+ endif

+ #---------------------- define special directories for non standard builds
</ins></span></pre>
</div>
</div>

</body>
</html>