summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory L. Lee <lee218@llnl.gov>2015-08-14 16:27:51 -0700
committerGregory L. Lee <lee218@llnl.gov>2015-08-14 16:27:51 -0700
commitec47ab16ce863ee3a73d0f8fe27821d5f198fa40 (patch)
treef6a773b58ac1f2ce2564ddbfc4e1588e9a3fd51e
parentc8f65c15306683a5d505d4bcafa603e75c09feca (diff)
downloadspack-ec47ab16ce863ee3a73d0f8fe27821d5f198fa40.tar.gz
spack-ec47ab16ce863ee3a73d0f8fe27821d5f198fa40.tar.bz2
spack-ec47ab16ce863ee3a73d0f8fe27821d5f198fa40.tar.xz
spack-ec47ab16ce863ee3a73d0f8fe27821d5f198fa40.zip
updated blas and lapack packages
-rw-r--r--var/spack/packages/netlib-blas/package.py6
-rw-r--r--var/spack/packages/netlib-lapack/package.py59
2 files changed, 65 insertions, 0 deletions
diff --git a/var/spack/packages/netlib-blas/package.py b/var/spack/packages/netlib-blas/package.py
index 0a6cdb0442..85e97323d3 100644
--- a/var/spack/packages/netlib-blas/package.py
+++ b/var/spack/packages/netlib-blas/package.py
@@ -9,6 +9,8 @@ class NetlibBlas(Package):
version('3.5.0', 'b1d3e3e425b2e44a06760ff173104bdf')
+ variant('fpic', default=False, description="Build with -fpic compiler option")
+
# virtual dependency
provides('blas')
@@ -23,6 +25,10 @@ class NetlibBlas(Package):
mf.filter('^LOADER.*', 'LOADER = f90')
mf.filter('^CC =.*', 'CC = cc')
+ if '+fpic' in self.spec:
+ mf.filter('^OPTS.*=.*', 'OPTS = -O2 -frecursive -fpic')
+ mf.filter('^CFLAGS =.*', 'CFLAGS = -O3 -fpic')
+
def install(self, spec, prefix):
make('blaslib')
diff --git a/var/spack/packages/netlib-lapack/package.py b/var/spack/packages/netlib-lapack/package.py
new file mode 100644
index 0000000000..fb6b99e27c
--- /dev/null
+++ b/var/spack/packages/netlib-lapack/package.py
@@ -0,0 +1,59 @@
+from spack import *
+
+class NetlibLapack(Package):
+ """
+ LAPACK version 3.X is a comprehensive FORTRAN library that does
+ linear algebra operations including matrix inversions, least
+ squared solutions to linear sets of equations, eigenvector
+ analysis, singular value decomposition, etc. It is a very
+ comprehensive and reputable package that has found extensive
+ use in the scientific community.
+ """
+ homepage = "http://www.netlib.org/lapack/"
+ url = "http://www.netlib.org/lapack/lapack-3.5.0.tgz"
+
+ version('3.5.0', 'b1d3e3e425b2e44a06760ff173104bdf')
+ version('3.4.2', '61bf1a8a4469d4bdb7604f5897179478')
+ version('3.4.1', '44c3869c38c8335c2b9c2a8bb276eb55')
+ version('3.4.0', '02d5706ec03ba885fc246e5fa10d8c70')
+ version('3.3.1', 'd0d533ec9a5b74933c2a1e84eedc58b4')
+
+ variant('shared', default=False, description="Build shared library version")
+
+ # virtual dependency
+ provides('lapack')
+
+ # blas is a virtual dependency.
+ depends_on('blas')
+
+ depends_on('cmake')
+
+ # Doesn't always build correctly in parallel
+ parallel = False
+
+ @when('^netlib-blas')
+ def get_blas_libs(self):
+ blas = self.spec['netlib-blas']
+ return [join_path(blas.prefix.lib, 'blas.a')]
+
+
+ @when('^atlas')
+ def get_blas_libs(self):
+ blas = self.spec['atlas']
+ return [join_path(blas.prefix.lib, l)
+ for l in ('libf77blas.a', 'libatlas.a')]
+
+
+ def install(self, spec, prefix):
+ blas_libs = ";".join(self.get_blas_libs())
+ cmake_args = [".", '-DBLAS_LIBRARIES=' + blas_libs]
+
+ if '+shared' in spec:
+ cmake_args.append('-DBUILD_SHARED_LIBS=ON')
+
+ cmake_args += std_cmake_args
+
+ cmake(*cmake_args)
+ make()
+ make("install")
+