summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/suntans/package.py
blob: 49dd704811fb48bf4c5693d0cec2fd277c9e4d42 (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
# 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 Suntans(MakefilePackage):
    """The Stanford unstructured-grid,
    nonhydrostatic, parallel coastal
    ocean model."""

    homepage = "https://github.com/ofringer/suntans"
    url = "https://github.com/ofringer/suntans/archive/master.zip"

    maintainers("ofringer", "zyaj", "mrayson", "jadelson", "lhxone")

    license("LGPL-2.1-or-later")

    version("3.1", sha256="9b5d0dee5502a5650e37bf72f64b1124be86c084e7408aa517c214ddb25e36de")

    depends_on("libx11@1.6.3")
    depends_on("mpi")

    def edit(self, spec, prefix):
        env["MPIHOME"] = spec["openmpi"].prefix
        with working_dir("main"):
            makefile = FileFilter("Makefile")
            makefile.filter("XINC=.*", "XINC= -I{0}".format(spec["libx11"].prefix.include))
            makefile.filter("XLIBDIR = .*", "XLIBDIR = {0}".format(spec["libx11"].prefix.lib))
            makefile.filter(
                "INCLUDES = .*",
                "INCLUDES=$(PARMETISINCLUDE)$(TRIANGLEINCLUDE)$(NETCDFINCLUDE)$(XINC)",
            )

    def build(self, spec, prefix):
        with working_dir("main"):
            make("sunplot")

    def install(self, spec, prefix):
        mkdir(prefix.bin)
        mkdir(prefix.include)
        with working_dir("main"):
            install("sunplot", prefix.bin)
            install("*.h", prefix.include)