spack/var/spack/repos/builtin/packages/batchedblas/package.py
Harmen Stoppels fce95e2efb
license year bump (#34921)
* license bump year
* fix black issues of modified files
* mypy
* fix 2021 -> 2023
2023-01-18 14:30:17 -08:00

42 lines
1.7 KiB
Python

# 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 *
class Batchedblas(MakefilePackage):
"""Batched BLAS is one of the new approaches for a task-based BLAS
invocation, and it is defined as a new interface that allows users to
execute multiple independent BLAS operations as a single subroutine call"""
homepage = "https://www.r-ccs.riken.jp/labs/lpnctrt/projects/batchedblas/index.html"
url = "https://www.r-ccs.riken.jp/labs/lpnctrt/projects/batchedblas/BatchedBLAS-1.0.tar.gz"
version("1.0", sha256="798ae4e7cc4ad5c3d5f3479f3d001da566d7d5205779103aaf10cd5b956ba433")
depends_on("blas")
patch("AVX2.patch")
def edit(self, spec, prefix):
CCFLAGS = [self.compiler.openmp_flag, "-I./", "-O3"]
BLAS = ["-lm", spec["blas"].libs.ld_flags]
if not spec.satisfies("^mkl"):
CCFLAGS.append("-D_CBLAS_")
if spec.satisfies("%intel"):
CCFLAGS.extend(["-Os"])
elif spec.satisfies("%fj"):
CCFLAGS.extend(["-std=gnu11", "-Kfast,ocl", "-Nclang"])
makefile_src = FileFilter("bblas_src/Makefile")
makefile_src.filter(r"^\s*CCFLAG\s*=.*", "CCFLAG = %s" % " ".join(CCFLAGS))
makefile_src.filter(r"^\s*BLAS\s*=.*", "BLAS = %s" % " ".join(BLAS))
def install(self, spec, prefix):
mkdirp(prefix.lib)
mkdirp(prefix.include)
install(join_path("bblas_src", "*.h"), prefix.include)
install(join_path("bblas_src", "libbblas.a"), prefix.lib)
install(join_path("bblas_src", "libbblas.so"), prefix.lib)