summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/dedisp/package.py42
-rw-r--r--var/spack/repos/builtin/packages/heimdall/package.py47
-rw-r--r--var/spack/repos/builtin/packages/psrdada/package.py30
3 files changed, 119 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/dedisp/package.py b/var/spack/repos/builtin/packages/dedisp/package.py
new file mode 100644
index 0000000000..5d617dff9a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/dedisp/package.py
@@ -0,0 +1,42 @@
+# Copyright 2013-2024 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 *
+
+
+class Dedisp(MakefilePackage, CudaPackage):
+ """GPU-based dedispersion package."""
+
+ homepage = "https://github.com/ajameson/dedisp"
+ git = "https://github.com/ajameson/dedisp.git"
+
+ maintainers("aweaver1fandm")
+
+ version("master", branch="master", preferred=True)
+
+ conflicts("~cuda", msg="You must specify +cuda")
+ conflicts("cuda@11.8")
+ conflicts("cuda_arch=none", msg="You must specify the CUDA architecture")
+
+ depends_on("cuda", type="build")
+
+ def edit(self, spec, prefix):
+ # Build process required some edits to Makefile.inc instead of using command-line flags
+ makefile = FileFilter("Makefile.inc")
+
+ makefile.filter(r"^\s*CUDA_PATH\s*\?=.*", "CUDA_PATH ?= " + spec["cuda"].prefix)
+ makefile.filter(
+ r"^\s*GPU_ARCH\s*\?=.*", "GPU_ARCH ?= sm_" + spec.variants["cuda_arch"].value[0]
+ )
+ makefile.filter(r"^\s*INSTALL_DIR\s*\?=.*", "INSTALL_DIR ?= " + prefix)
+
+ @run_before("install")
+ def preinstall(self, spec, prefix):
+ # The $PREFIX/dedisp/include and $PREFIX/dedisp/lib directories don't seem
+ # to be created automatically by the software's Makefile so manually create them
+ libdir = join_path(prefix, "lib")
+ incdir = join_path(prefix, "include")
+ mkdirp(libdir)
+ mkdirp(incdir)
diff --git a/var/spack/repos/builtin/packages/heimdall/package.py b/var/spack/repos/builtin/packages/heimdall/package.py
new file mode 100644
index 0000000000..948b1b084b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/heimdall/package.py
@@ -0,0 +1,47 @@
+# Copyright 2013-2024 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 *
+
+
+class Heimdall(AutotoolsPackage, CudaPackage):
+ """GPU accelerated transient detection pipeline"""
+
+ homepage = "https://sourceforge.net/projects/heimdall-astro/"
+ git = "https://git.code.sf.net/p/heimdall-astro/code"
+
+ maintainers("aweaver1fandm")
+
+ version("master", branch="master", preferred=True)
+
+ conflicts("~cuda", msg="You must specify +cuda")
+ conflicts("cuda@11.8")
+ conflicts("cuda_arch=none", msg="You must specify the CUDA architecture")
+
+ depends_on("autoconf", type="build")
+ depends_on("automake", type="build")
+ depends_on("libtool", type="build")
+ depends_on("cuda")
+
+ # Pass the cuda architecture to DEDISP and PSRDADA for building
+ for arch in CudaPackage.cuda_arch_values:
+ depends_on(f"dedisp cuda_arch={arch}", when=f"cuda_arch={arch}")
+
+ depends_on(f"psrdada cuda_arch={arch}", when=f"cuda_arch={arch}")
+
+ def setup_run_environment(self, env):
+ env.prepend_path("PATH", self.spec["psrdada"].prefix.bin)
+ env.prepend_path("PATH", self.prefix.bin)
+ env.prepend_path("LD_LIBRARY_PATH", self.spec["dedisp"].prefix.lib)
+ env.prepend_path("LD_LIBRARY_PATH", self.spec["cuda"].prefix.lib)
+
+ def configure_args(self):
+ # Required flags for configure
+ args = [
+ f"--with-psrdada-dir={self.spec['psrdada'].prefix}",
+ f"--with-dedisp-dir={self.spec['dedisp'].prefix}",
+ f"--with-cuda-dir={self.spec['cuda'].prefix}",
+ ]
+ return args
diff --git a/var/spack/repos/builtin/packages/psrdada/package.py b/var/spack/repos/builtin/packages/psrdada/package.py
new file mode 100644
index 0000000000..d06e2760dd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/psrdada/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2024 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 *
+
+
+class Psrdada(AutotoolsPackage, CudaPackage):
+ """Open source software to process some types of astronomy data."""
+
+ homepage = "https://psrdada.sourceforge.net/"
+ git = "https://git.code.sf.net/p/psrdada/code"
+
+ maintainers("aweaver1fandm")
+
+ version("master", branch="master", preferred=True)
+
+ conflicts("~cuda", msg="You must specify +cuda")
+ conflicts("cuda@11.8")
+ conflicts("cuda_arch=none", msg="You must specify the CUDA architecture")
+
+ depends_on("autoconf", type="build")
+ depends_on("automake", type="build")
+ depends_on("libtool", type="build")
+ depends_on("nasm", type="build")
+ depends_on("pkgconf", type="build")
+ depends_on("fftw@3.3:", type="build")
+ depends_on("python")
+ depends_on("cuda", type="build")