summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/racket/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/racket/package.py')
-rw-r--r--var/spack/repos/builtin/packages/racket/package.py59
1 files changed, 32 insertions, 27 deletions
diff --git a/var/spack/repos/builtin/packages/racket/package.py b/var/spack/repos/builtin/packages/racket/package.py
index cc9e1ba25b..7031e234ea 100644
--- a/var/spack/repos/builtin/packages/racket/package.py
+++ b/var/spack/repos/builtin/packages/racket/package.py
@@ -2,13 +2,11 @@
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-
-import sys
-
+import spack.build_systems.makefile
from spack.package import *
-class Racket(Package):
+class Racket(MakefilePackage):
"""The Racket programming language."""
homepage = "https://www.racket-lang.org"
@@ -21,13 +19,6 @@ class Racket(Package):
depends_on("patchutils")
depends_on("libtool", type=("build"))
- phases = ["configure", "build", "install"]
-
- def url_for_version(self, version):
- return "https://mirror.racket-lang.org/installers/{0}/racket-minimal-{0}-src-builtpkgs.tgz".format(
- version
- )
-
variant("cs", default=True, description="Build Racket CS (new ChezScheme VM)")
variant("bc", default=False, description="Build Racket BC (old MZScheme VM)")
variant("shared", default=True, description="Enable shared")
@@ -36,12 +27,22 @@ class Racket(Package):
parallel = False
extendable = True
+ def url_for_version(self, version):
+ return "https://mirror.racket-lang.org/installers/{0}/racket-minimal-{0}-src-builtpkgs.tgz".format(
+ version
+ )
+
+
+class MakefileBuilder(spack.build_systems.makefile.MakefileBuilder):
+
+ build_directory = "src"
+
def toggle(self, spec, variant):
toggle_text = "enable" if spec.variants[variant].value else "disable"
return "--{0}-{1}".format(toggle_text, variant)
- def configure(self, spec, prefix):
- with working_dir("src"):
+ def edit(self, pkg, spec, prefix):
+ with working_dir(self.build_directory):
configure = Executable("./configure")
configure_args = [
self.toggle(spec, "cs"),
@@ -49,7 +50,7 @@ class Racket(Package):
self.toggle(spec, "jit"),
]
toggle_shared = self.toggle(spec, "shared")
- if sys.platform == "darwin":
+ if spec.satisfies("platform=darwin"):
configure_args += ["--enable-macprefix"]
if "+xonx" in spec:
configure_args += ["--enable-xonx", toggle_shared]
@@ -58,16 +59,20 @@ class Racket(Package):
configure_args += ["--prefix={0}".format(prefix)]
configure(*configure_args)
- def build(self, spec, prefix):
- with working_dir("src"):
- if spec.variants["bc"].value:
- make("bc")
- if spec.variants["cs"].value:
- make("cs")
-
- def install(self, spec, prefix):
- with working_dir("src"):
- if spec.variants["bc"].value:
- make("install-bc")
- if spec.variants["cs"].value:
- make("install-cs")
+ @property
+ def build_targets(self):
+ result = []
+ if "+bc" in self.spec:
+ result.append("bc")
+ if "+cs" in self.spec:
+ result.append("cs")
+ return result
+
+ @property
+ def install_targets(self):
+ result = []
+ if "+bc" in self.spec:
+ result.append("install-bc")
+ if "+cs" in self.spec:
+ result.append("install-cs")
+ return result