From 976b2b4d250c88f9668c7e4cf4f6c7bdb8324a2c Mon Sep 17 00:00:00 2001 From: Greg Lee Date: Tue, 5 Jul 2016 13:45:22 -0700 Subject: [PATCH 1/4] added suitesparse version 4.5.3 --- .../repos/builtin/packages/suite-sparse/package.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/var/spack/repos/builtin/packages/suite-sparse/package.py b/var/spack/repos/builtin/packages/suite-sparse/package.py index dd0dfa3e237..4135c7dd728 100644 --- a/var/spack/repos/builtin/packages/suite-sparse/package.py +++ b/var/spack/repos/builtin/packages/suite-sparse/package.py @@ -33,6 +33,7 @@ class SuiteSparse(Package): url = 'http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.5.1.tar.gz' version('4.5.1', 'f0ea9aad8d2d1ffec66a5b6bfeff5319') + version('4.5.3', '8ec57324585df3c6483ad7f556afccbd') # FIXME: (see below) # variant('tbb', default=True, description='Build with Intel TBB') @@ -41,6 +42,7 @@ class SuiteSparse(Package): depends_on('lapack') depends_on('metis@5.1.0', when='@4.5.1') + depends_on('metis@5.1.0', when='@4.5.3') # FIXME: # in @4.5.1. TBB support in SPQR seems to be broken as TBB-related linkng flags # does not seem to be used, which leads to linking errors on Linux. @@ -79,9 +81,10 @@ def install(self, spec, prefix): # BLAS arguments require path to libraries # FIXME : (blas / lapack always provide libblas and liblapack as aliases) - make_args.extend([ - 'BLAS=-lblas', - 'LAPACK=-llapack' - ]) + if '@4.5.1' in spec: + make_args.extend([ + 'BLAS=-lblas', + 'LAPACK=-llapack' + ]) make('install', *make_args) From 4c063c60556d714fd7fe4792b6aa137fd7d3f45e Mon Sep 17 00:00:00 2001 From: Greg Lee Date: Tue, 5 Jul 2016 13:48:32 -0700 Subject: [PATCH 2/4] kludge to get suite-sparse-4.5.1 to link with -lstdc++ --- var/spack/repos/builtin/packages/suite-sparse/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/suite-sparse/package.py b/var/spack/repos/builtin/packages/suite-sparse/package.py index 4135c7dd728..bc25fa8c6c1 100644 --- a/var/spack/repos/builtin/packages/suite-sparse/package.py +++ b/var/spack/repos/builtin/packages/suite-sparse/package.py @@ -82,8 +82,10 @@ def install(self, spec, prefix): # BLAS arguments require path to libraries # FIXME : (blas / lapack always provide libblas and liblapack as aliases) if '@4.5.1' in spec: + # adding -lstdc++ is clearly an ugly way to do this, but it follows suit + # with the TCOV path of SparseSuite 4.5.1's Suitesparse_config.mk make_args.extend([ - 'BLAS=-lblas', + 'BLAS=-lblas -lstdc++', 'LAPACK=-llapack' ]) From 4e27d91351f1f2f29adec9d1be44e25cbb79bb9f Mon Sep 17 00:00:00 2001 From: Greg Lee Date: Tue, 5 Jul 2016 14:28:24 -0700 Subject: [PATCH 3/4] flake 8 fixes --- .../builtin/packages/suite-sparse/package.py | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/var/spack/repos/builtin/packages/suite-sparse/package.py b/var/spack/repos/builtin/packages/suite-sparse/package.py index bc25fa8c6c1..1dc64f385f2 100644 --- a/var/spack/repos/builtin/packages/suite-sparse/package.py +++ b/var/spack/repos/builtin/packages/suite-sparse/package.py @@ -44,32 +44,33 @@ class SuiteSparse(Package): depends_on('metis@5.1.0', when='@4.5.1') depends_on('metis@5.1.0', when='@4.5.3') # FIXME: - # in @4.5.1. TBB support in SPQR seems to be broken as TBB-related linkng flags - # does not seem to be used, which leads to linking errors on Linux. + # in @4.5.1. TBB support in SPQR seems to be broken as TBB-related linkng + # flags does not seem to be used, which leads to linking errors on Linux. # Try re-enabling in future versions. # depends_on('tbb', when='+tbb') def install(self, spec, prefix): - # The build system of SuiteSparse is quite old-fashioned - # It's basically a plain Makefile which include an header (SuiteSparse_config/SuiteSparse_config.mk) - # with a lot of convoluted logic in it. - # Any kind of customization will need to go through filtering of that file + # The build system of SuiteSparse is quite old-fashioned. + # It's basically a plain Makefile which include an header + # (SuiteSparse_config/SuiteSparse_config.mk)with a lot of convoluted + # logic in it. Any kind of customization will need to go through + # filtering of that file make_args = ['INSTALL=%s' % prefix] # inject Spack compiler wrappers make_args.extend([ - 'AUTOCC=no', - 'CC=cc', - 'CXX=c++', - 'F77=f77', + 'AUTOCC=no', + 'CC=cc', + 'CXX=c++', + 'F77=f77', ]) # use Spack's metis in CHOLMOD/Partition module, # otherwise internal Metis will be compiled make_args.extend([ - 'MY_METIS_LIB=-L%s -lmetis' % spec['metis'].prefix.lib, - 'MY_METIS_INC=%s' % spec['metis'].prefix.include, + 'MY_METIS_LIB=-L%s -lmetis' % spec['metis'].prefix.lib, + 'MY_METIS_INC=%s' % spec['metis'].prefix.include, ]) # Intel TBB in SuiteSparseQR @@ -80,10 +81,10 @@ def install(self, spec, prefix): ]) # BLAS arguments require path to libraries - # FIXME : (blas / lapack always provide libblas and liblapack as aliases) + # FIXME: (blas/lapack always provide libblas and liblapack as aliases) if '@4.5.1' in spec: - # adding -lstdc++ is clearly an ugly way to do this, but it follows suit - # with the TCOV path of SparseSuite 4.5.1's Suitesparse_config.mk + # adding -lstdc++ is clearly an ugly way to do this, but it follows + # with the TCOV path of SparseSuite 4.5.1's Suitesparse_config.mk make_args.extend([ 'BLAS=-lblas -lstdc++', 'LAPACK=-llapack' From 3df0f1902d84223dba02692d80439ee928f28285 Mon Sep 17 00:00:00 2001 From: Greg Lee Date: Wed, 6 Jul 2016 12:15:20 -0700 Subject: [PATCH 4/4] clean up suitesparse deps --- var/spack/repos/builtin/packages/suite-sparse/package.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/suite-sparse/package.py b/var/spack/repos/builtin/packages/suite-sparse/package.py index 1dc64f385f2..2cc89b843f0 100644 --- a/var/spack/repos/builtin/packages/suite-sparse/package.py +++ b/var/spack/repos/builtin/packages/suite-sparse/package.py @@ -41,8 +41,7 @@ class SuiteSparse(Package): depends_on('blas') depends_on('lapack') - depends_on('metis@5.1.0', when='@4.5.1') - depends_on('metis@5.1.0', when='@4.5.3') + depends_on('metis@5.1.0', when='@4.5.1:') # FIXME: # in @4.5.1. TBB support in SPQR seems to be broken as TBB-related linkng # flags does not seem to be used, which leads to linking errors on Linux.