summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/unuran/package.py
blob: 9e185e5a6315905f8b4bf9ef31abd751cb219daa (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
# 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 Unuran(AutotoolsPackage):
    """Universal Non-Uniform Random number generator."""

    homepage = "https://statmath.wu.ac.at/unuran"
    url = "https://statmath.wu.ac.at/unuran/unuran-1.8.1.tar.gz"

    license("GPL-2.0-or-later")

    version("1.8.1", sha256="c270ae96857857dbac6450043df865e0517f52856ddbe5202fd35583b13c5193")

    variant("shared", default=True, description="Enable the build of shared libraries")
    variant(
        "rngstreams",
        default=True,
        description="Use RNGSTREAM library for uniform random generation",
    )
    variant(
        "gsl",
        default=False,
        description="Use random number generators from GNU Scientific Library",
    )

    depends_on("gsl", when="+gsl")
    depends_on("rngstreams", when="+rngstreams")

    def configure_args(self):
        spec = self.spec

        args = [
            "--%s-shared" % ("enable" if "+shared" in spec else "disable"),
            "--with-urgn-default=%s" % ("rngstream" if "+rngstreams" in spec else "builtin"),
            "--%s-urng-gsl" % ("with" if "+gsl" in spec else "without"),
            "--%s-urng-rngstreams" % ("with" if "+rngstreams" in spec else "without"),
        ]

        return args