sbcl: new package (#46611)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
This commit is contained in:
parent
04fb52aeca
commit
9290294ada
@ -21,6 +21,9 @@ class SbclBootstrap(Package):
|
||||
|
||||
maintainers("ashermancinelli")
|
||||
|
||||
# sbcl-bootstrap is not available on Windows, but is depended on by sbcl:
|
||||
skip_version_audit = ["platform=windows"]
|
||||
|
||||
# NOTE: The sbcl homepage lists
|
||||
# while the sourceforge repo lists "Public Domain, MIT License", the
|
||||
# COPYING file distributed with the source code contains this message:
|
||||
|
82
var/spack/repos/builtin/packages/sbcl/package.py
Normal file
82
var/spack/repos/builtin/packages/sbcl/package.py
Normal file
@ -0,0 +1,82 @@
|
||||
# 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 *
|
||||
from spack.util.environment import set_env
|
||||
|
||||
|
||||
class Sbcl(MakefilePackage):
|
||||
"""Steel Bank Common Lisp (SBCL) is a high performance Common Lisp compiler.
|
||||
It is open source / free software, with a permissive license. In addition
|
||||
to the compiler and runtime system for ANSI Common Lisp, it provides an
|
||||
interactive environment including a debugger, a statistical profiler, a
|
||||
code coverage tool, and many other extensions.
|
||||
"""
|
||||
|
||||
homepage = "https://www.sbcl.org/"
|
||||
url = "https://sourceforge.net/projects/sbcl/files/sbcl/2.4.8/sbcl-2.4.8-source.tar.bz2"
|
||||
git = "git://git.code.sf.net/p/sbcl/sbcl"
|
||||
|
||||
maintainers("ashermancinelli")
|
||||
|
||||
# NOTE: The sbcl homepage lists
|
||||
# while the sourceforge repo lists "Public Domain, MIT License", the
|
||||
# COPYING file distributed with the source code contains this message:
|
||||
#
|
||||
# > Thus, there are no known obstacles to copying, using, and modifying
|
||||
# > SBCL freely, as long as copyright notices of MIT, Symbolics, Xerox and
|
||||
# > Gerd Moellmann are retained.
|
||||
#
|
||||
# MIT seems the most appropriate, but if we can add more context to this
|
||||
# license message, then we should.
|
||||
license("MIT", checked_by="ashermancinelli")
|
||||
|
||||
version("master", branch="master")
|
||||
version("2.4.8", sha256="fc6ecdcc538e80a14a998d530ccc384a41790f4f4fc6cd7ffe8cb126a677694c")
|
||||
|
||||
depends_on("c", type="build")
|
||||
depends_on("sbcl-bootstrap", type="build")
|
||||
depends_on("zstd", when="platform=darwin")
|
||||
|
||||
variant(
|
||||
"fancy", default=True, description="Enable extra features like compression and threading."
|
||||
)
|
||||
|
||||
# TODO(ashermancinelli): there's nothing on the platform support page that
|
||||
# makes me think this shouldn't build, but I can't
|
||||
# get the sbcl binary to link with gcc on darwin.
|
||||
conflicts(
|
||||
"+fancy%gcc",
|
||||
when="platform=darwin",
|
||||
msg="Cannot build with gcc on darwin because pthreads will fail to link",
|
||||
)
|
||||
|
||||
phases = ["build", "install"]
|
||||
|
||||
def build(self, spec, prefix):
|
||||
sh = which("sh")
|
||||
|
||||
version_str = str(spec.version)
|
||||
|
||||
# NOTE: add any other git versions here.
|
||||
# When installing from git, the build system expects a dummy version
|
||||
# to be provided as a lisp expression.
|
||||
if version_str in ("master",):
|
||||
with open("version.lisp-expr", "w") as f:
|
||||
f.write(f'"{version_str}"')
|
||||
|
||||
build_args = []
|
||||
build_args.append("--prefix={0}".format(prefix))
|
||||
|
||||
if "+fancy" in self.spec:
|
||||
build_args.append("--fancy")
|
||||
|
||||
sbcl_bootstrap_prefix = self.spec["sbcl-bootstrap"].prefix.lib.sbcl
|
||||
with set_env(SBCL_HOME=sbcl_bootstrap_prefix):
|
||||
sh("make.sh", *build_args)
|
||||
|
||||
def install(self, spec, prefix):
|
||||
sh = which("sh")
|
||||
sh("install.sh")
|
Loading…
Reference in New Issue
Block a user