1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# Copyright 2013-2023 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.package import *
def is_string(x):
"""validate a string"""
try:
return isinstance(x, str)
except ValueError:
return False
class Dataspaces(AutotoolsPackage):
"""an extreme scale data management framework."""
homepage = "http://www.dataspaces.org"
url = "https://dataspaces.rdi2.rutgers.edu/downloads/dataspaces-1.6.2.tar.gz"
license("BSD-3-Clause")
version("1.8.0", sha256="7f204bb3c03c2990f5a2d76a29185466b584793c63ada03e5e694627e6060605")
version("1.6.2", sha256="3c43d551c1e8198a4ab269c83928e1dc6f8054e6d41ceaee45155d91a48cf9bf")
variant("dimes", default=False, description="enabled DIMES transport mode")
variant("cray-drc", default=False, description="using Cray Dynamic Credentials library")
variant(
"gni-cookie",
default="0x5420000",
description="Cray UGNI communication token",
values=is_string,
)
variant("ptag", default="250", description="Cray UGNI protection tag", values=is_string)
variant("mpi", default=True, description="Use MPI for collective communication")
depends_on("m4", type="build")
depends_on("automake", type="build")
depends_on("autoconf", type="build")
depends_on("libtool", type="build")
depends_on("mpi", when="+mpi")
def autoreconf(self, spec, prefix):
bash = which("bash")
bash("./autogen.sh")
def setup_build_environment(self, env):
if self.spec.satisfies("+mpi"):
env.set("CC", self.spec["mpi"].mpicc)
env.set("FC", self.spec["mpi"].mpifc)
env.set("CFLAGS", self.compiler.cc_pic_flag)
if "%gcc@10:" in self.spec:
env.set("FCFLAGS", "-fallow-argument-mismatch")
def configure_args(self):
args = []
cookie = self.spec.variants["gni-cookie"].value
ptag = self.spec.variants["ptag"].value
if self.spec.satisfies("+dimes"):
args.append("--enable-dimes")
if self.spec.satisfies("+cray-drc"):
args.append("--enable-drc")
else:
args.append("--with-gni-cookie=%s" % cookie)
args.append("--with-gni-ptag=%s" % ptag)
return args
|