diff options
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin/packages/libpsm3/package.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/libpsm3/package.py b/var/spack/repos/builtin/packages/libpsm3/package.py new file mode 100644 index 0000000000..620777fc17 --- /dev/null +++ b/var/spack/repos/builtin/packages/libpsm3/package.py @@ -0,0 +1,60 @@ +# 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) + +import os + +from spack.package import * + + +class Libpsm3(AutotoolsPackage): + """PSM3 provider for the PSM3 OFI provider""" + + homepage = "https://ofiwg.github.io/libfabric/v1.12.0/man/fi_psm3.7.html" + url = "https://github.com/intel/eth-psm3-fi/archive/refs/tags/v11.4.1.0.tar.gz" + git = "https://github.com/intel/eth-psm3-fi.git" + + version( + "11.4.1.0", + sha256="272adb9ec10edf709bfcfccc6b6e9296d25d892c36b845ad577caeb82b70c9ac", + preferred=True, + ) + + variant("atomics", default=True, description="Enable atomics") + variant("debug", default=False, description="Enable debugging") + variant("sockets", default=True, description="Enable PSM3 sockets") + variant("verbs", default=False, description="Enable PSM3 verbs") + + depends_on("autoconf", type="build") + depends_on("automake", type="build") + depends_on("numactl") + depends_on("uuid") + + maintainers("dodecatheon", "douglasjacobsen") + + def configure_args(self): + config_args = [] + config_args.extend(self.enable_or_disable("atomics")) + config_args.extend(self.enable_or_disable("debug")) + config_args += self.enable_or_disable("psm3-sockets", variant="sockets") + config_args += self.enable_or_disable("psm3-verbs", variant="verbs") + return config_args + + def build(self, spec, prefix): + make() + + def install(self, spec, prefix): + install_tree("src/.libs", prefix.lib) + os.unlink("%s/libpsm3-fi.la" % prefix.lib) + install("src/libpsm3-fi.la", prefix.lib) + + def setup_run_environment(self, env): + env.prepend_path("FI_PROVIDER_PATH", self.prefix.lib) + env.set("FI_PROVIDER", "psm3") + env.set("PSM3_ALLOW_ROUTERS", "1") + if "+sockets" in self.spec and "~verbs" in self.spec: + env.set("PSM3_HAL", "sockets") + env.set("FI_PSM3_NAME_SERVER", "1") + if "+debug" in self.spec: + env.set("PSM3_IDENTIFY", "1") |