Adding libpsm3 package (#37444)
* Adding libpsm3 package * Make changes suggested by flake8 * Make one more flake8-suggested change, blank line after 'import os' * Change to standard header to pass flake8 tests * Update doc string, remove unnecessary comments * Reviewer-recommende changes * Alphabetize variants * Use helper functions * Change quotes to pass spack style check
This commit is contained in:
parent
b111d2172e
commit
cd27611d2f
60
var/spack/repos/builtin/packages/libpsm3/package.py
Normal file
60
var/spack/repos/builtin/packages/libpsm3/package.py
Normal file
@ -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")
|
Loading…
Reference in New Issue
Block a user