summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToyohisa Kameyama <kameyama@riken.jp>2020-04-27 20:33:28 +0900
committerGitHub <noreply@github.com>2020-04-27 13:33:28 +0200
commit0477f829a2371c1dec18c10d6af6c0550fa16158 (patch)
treee709c25081cc9100cb8af9770328ab723a197815
parent35717b556b2a49e67c3480c6c55bd99ac4cc9946 (diff)
downloadspack-0477f829a2371c1dec18c10d6af6c0550fa16158.tar.gz
spack-0477f829a2371c1dec18c10d6af6c0550fa16158.tar.bz2
spack-0477f829a2371c1dec18c10d6af6c0550fa16158.tar.xz
spack-0477f829a2371c1dec18c10d6af6c0550fa16158.zip
xabclib: added package at v1.03 (#16271)
-rw-r--r--var/spack/repos/builtin/packages/xabclib/package.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/xabclib/package.py b/var/spack/repos/builtin/packages/xabclib/package.py
new file mode 100644
index 0000000000..3a851b21af
--- /dev/null
+++ b/var/spack/repos/builtin/packages/xabclib/package.py
@@ -0,0 +1,60 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class Xabclib(MakefilePackage):
+ """
+ Xabclib (eXtended ABCLib) is a numerical library with auto-tuning facility.
+ """
+
+ homepage = "http://www.abc-lib.org/Xabclib/index.html"
+ url = "http://www.abc-lib.org/Xabclib/Release/Xabclib-v1.03.tar.gz"
+
+ version('1.03', sha256='9d200f40f1db87abc26cfe75a22db3a6d972988a28fc0ce8421a0c88cc574d1a')
+
+ def edit(self, spec, prefix):
+ cc = [spack_cc, '-O3', self.compiler.openmp_flag]
+ fc = [spack_fc, '-O3', self.compiler.openmp_flag]
+ if spec.satisfies('%gcc'):
+ fc.extend(['-ffixed-form', '-cpp'])
+ filter_file(
+ '^rm libOpenAT.a$',
+ 'rm -f libOpenAT.a',
+ 'make.all'
+ )
+ for makefile in find('.', 'makefile', recursive=True):
+ m = FileFilter(makefile)
+ m.filter(
+ 'F90 += .*$',
+ 'F90 = {0}'.format(' '.join(fc))
+ )
+ m.filter(
+ 'F90O3 += .*$',
+ 'F90O3 = {0}'.format(' '.join(fc))
+ )
+ m.filter(
+ 'CC += .*$',
+ 'CC = {0}'.format(' '.join(cc))
+ )
+ m.filter(
+ 'LD += .*$',
+ 'LD = {0}'.format(' '.join(fc))
+ )
+
+ def build(self, spec, prefix):
+ sh = which('sh')
+ sh('./make.all')
+
+ def install(self, spec, prefix):
+ mkdir(prefix.lib)
+ mkdir(prefix.doc)
+ install('libOpenAT.a', prefix.lib)
+ install('Readme.pdf', prefix.doc)
+
+ @property
+ def libs(self):
+ return find_libraries('libOpenAT', self.prefix.lib, shared=False)