blob: 0164ef29f1ecd672b4d33ae068282e2e97a8b445 (
plain) (
tree)
|
|
# 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 Ape(Package):
"""A tool for generating atomic pseudopotentials within a Density-Functional
Theory framework"""
homepage = "https://www.tddft.org/programs/APE/"
url = "http://www.tddft.org/programs/APE/sites/default/files/ape-2.2.1.tar.gz"
version("2.2.1", sha256="1bdb7f987fde81f8a5f335da6b59fa884e6d185d4a0995c90fde7c04376ce9e3")
depends_on("gsl")
depends_on("libxc@:4", when="@2.3.0:")
depends_on("libxc@:2.2.2", when="@:2.2.1")
def install(self, spec, prefix):
args = []
args.extend(
[
f"--prefix={prefix}",
f"--with-gsl-prefix={spec['gsl'].prefix}",
f"--with-libxc-prefix={spec['libxc'].prefix}",
]
)
# When preprocessor expands macros (i.e. CFLAGS) defined as quoted
# strings the result may be > 132 chars and is terminated.
# This will look to a compiler as an Unterminated character constant
# and produce Line truncated errors. To overcome this, add flags to
# let compiler know that the entire line is meaningful.
# TODO: For the lack of better approach, assume that clang is mixed
# TODO: with GNU fortran.
if spec.satisfies("%apple-clang") or spec.satisfies("%clang") or spec.satisfies("%gcc"):
args.extend(["FCFLAGS=-O2 -ffree-line-length-none"])
configure(*args)
make()
make("install")
|