From bde9c7eee3fb55258b6c5e0ddb143882ebe0cca3 Mon Sep 17 00:00:00 2001
From: Todd Gamblin <tgamblin@llnl.gov>
Date: Sun, 7 Jun 2015 15:41:15 -0700
Subject: [PATCH] Upate ATLAS and netlib-blas.

---
 var/spack/packages/atlas/package.py       | 34 +++++++++++++++++------
 var/spack/packages/netlib-blas/package.py | 17 ++++++++++--
 2 files changed, 39 insertions(+), 12 deletions(-)

diff --git a/var/spack/packages/atlas/package.py b/var/spack/packages/atlas/package.py
index 255f22d666..fc683363a7 100644
--- a/var/spack/packages/atlas/package.py
+++ b/var/spack/packages/atlas/package.py
@@ -12,13 +12,17 @@ class Atlas(Package):
     LAPACK library.
     """
     homepage = "http://math-atlas.sourceforge.net/"
-    url      = "http://downloads.sourceforge.net/project/math-atlas/Stable/3.10.2/atlas3.10.2.tar.bz2"
 
-    # TODO: make this provide BLAS once we have the ability to prefer dependencies.
-    # TODO: until then netlib-blas will be the default (and only) blas
+    version('3.11.34', '0b6c5389c095c4c8785fd0f724ec6825',
+            url='http://sourceforge.net/projects/math-atlas/files/Developer%20%28unstable%29/3.11.34/atlas3.11.34.tar.bz2/download')
+    version('3.10.2', 'a4e21f343dec8f22e7415e339f09f6da',
+            url='http://downloads.sourceforge.net/project/math-atlas/Stable/3.10.2/atlas3.10.2.tar.bz2')
+
+    # TODO: make this provide BLAS once it works better.  Create a way
+    # TODO: to mark "beta" packages and require explicit invocation.
+
     # provides('blas')
 
-    version('3.10.2', 'a4e21f343dec8f22e7415e339f09f6da')
 
     def patch(self):
         # Disable thraed check.  LLNL's environment does not allow
@@ -29,13 +33,25 @@ def patch(self):
         # TODO: investigate a better way to add the check back in
         # TODO: using, say, MSRs.  Or move this to a variant.
 
+    @when('@:3.10')
+    def install(self, spec, prefix):
+        with working_dir('ATLAS-Build', create=True):
+            configure = Executable('../configure')
+            configure('--prefix=%s' % prefix, '-C', 'ic', 'cc', '-C', 'if', 'f77', "--dylibs")
+            make()
+            make('check')
+            make('ptcheck')
+            make('time')
+            make("install")
+
+
     def install(self, spec, prefix):
         with working_dir('ATLAS-Build', create=True):
-            self.module.configure = Executable('../configure')
-            configure('--prefix=%s' % prefix,
-                      '-C', 'ic', 'cc',
-                      '-C', 'if', 'f77',
-                      "--dylibs")
+            configure = Executable('../configure')
+            configure('--incdir=%s' % prefix.include,
+                      '--libdir=%s' % prefix.lib,
+                      '--cc=cc',
+                      "--shared")
 
             make()
             make('check')
diff --git a/var/spack/packages/netlib-blas/package.py b/var/spack/packages/netlib-blas/package.py
index ce8fc1eef4..0a6cdb0442 100644
--- a/var/spack/packages/netlib-blas/package.py
+++ b/var/spack/packages/netlib-blas/package.py
@@ -1,4 +1,6 @@
 from spack import *
+import os
+
 
 class NetlibBlas(Package):
     """Netlib reference BLAS"""
@@ -13,8 +15,16 @@ class NetlibBlas(Package):
     # Doesn't always build correctly in parallel
     parallel = False
 
+    def patch(self):
+        os.symlink('make.inc.example', 'make.inc')
+
+        mf = FileFilter('make.inc')
+        mf.filter('^FORTRAN.*', 'FORTRAN = f90')
+        mf.filter('^LOADER.*',  'LOADER = f90')
+        mf.filter('^CC =.*',  'CC = cc')
+
+
     def install(self, spec, prefix):
-        symlink('make.inc.example', 'make.inc')
         make('blaslib')
 
         # Tests that blas builds correctly
@@ -25,5 +35,6 @@ def install(self, spec, prefix):
         install('librefblas.a', prefix.lib)
 
         # Blas virtual package should provide blas.a and libblas.a
-        symlink(prefix.lib + '/librefblas.a', prefix.lib + '/blas.a')
-        symlink(prefix.lib + '/librefblas.a', prefix.lib + '/libblas.a')
+        with working_dir(prefix.lib):
+            symlink('librefblas.a', 'blas.a')
+            symlink('librefblas.a', 'libblas.a')
-- 
GitLab