summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/bdw-gc/package.py
blob: 8bdb86c1561f24a658b7cc0cc8dd9dbd30e5f192 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# 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 BdwGc(AutotoolsPackage):
    """The Boehm-Demers-Weiser conservative garbage collector is a garbage
    collecting replacement for C malloc or C++ new."""

    homepage = "https://www.hboehm.info/gc/"
    url = "https://github.com/ivmai/bdwgc/releases/download/v8.2.4/gc-8.2.4.tar.gz"

    license("Xerox")

    version("8.2.4", sha256="3d0d3cdbe077403d3106bb40f0cbb563413d6efdbb2a7e1cd6886595dec48fc2")
    version("8.2.2", sha256="f30107bcb062e0920a790ffffa56d9512348546859364c23a14be264b38836a0")
    version("8.0.6", sha256="3b4914abc9fa76593596773e4da671d7ed4d5390e3d46fbf2e5f155e121bea11")
    version("8.0.0", sha256="8f23f9a20883d00af2bff122249807e645bdf386de0de8cbd6cce3e0c6968f04")
    version(
        "7.6.0",
        sha256="a14a28b1129be90e55cd6f71127ffc5594e1091d5d54131528c24cd0c03b7d90",
        url="http://www.hboehm.info/gc/gc_source/gc-7.6.0.tar.gz",
    )
    version(
        "7.4.4",
        sha256="e5ca9b628b765076b6ab26f882af3a1a29cde786341e08b9f366604f74e4db84",
        url="http://www.hboehm.info/gc/gc_source/gc-7.4.4.tar.gz",
    )

    variant("libatomic-ops", default=True, description="Use external libatomic-ops")
    variant(
        "threads",
        default="none",
        values=("none", "posix", "dgux386"),
        multi=False,
        description="Multithreading support",
    )

    depends_on("libatomic-ops", when="+libatomic-ops")

    def configure_args(self):
        spec = self.spec

        config_args = [
            "--enable-static",
            "--with-libatomic-ops={0}".format("yes" if "+libatomic-ops" in spec else "no"),
            "--enable-threads={0}".format(spec.variants["threads"].value),
        ]

        return config_args