Fix bigdft-suite compilation (#36612)

(from d20f284100)
This commit is contained in:
Ashwin Kumar Karnad 2023-04-21 03:18:11 +02:00 committed by GitHub
parent a419ffcf50
commit bf04551bf5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 59 additions and 62 deletions

View File

@ -22,32 +22,33 @@ class BigdftAtlab(AutotoolsPackage):
variant("openmp", default=True, description="Enable OpenMP support") variant("openmp", default=True, description="Enable OpenMP support")
variant("openbabel", default=False, description="Enable detection of openbabel compilation") variant("openbabel", default=False, description="Enable detection of openbabel compilation")
depends_on("autoconf", type="build")
depends_on("automake", type="build")
depends_on("libtool", type="build")
depends_on("mpi", when="+mpi") depends_on("mpi", when="+mpi")
depends_on("openbabel", when="+openbabel") depends_on("openbabel", when="+openbabel")
for vers in ["1.9.0", "1.9.1", "1.9.2", "develop"]: for vers in ["1.9.0", "1.9.1", "1.9.2", "develop"]:
depends_on("bigdft-futile@{0}".format(vers), when="@{0}".format(vers)) depends_on("bigdft-futile@{0}".format(vers), when="@{0}".format(vers))
build_directory = "atlab" configure_directory = "atlab"
def autoreconf(self, spec, prefix):
autoreconf = which("autoreconf")
with working_dir(self.build_directory):
autoreconf("-fi")
def configure_args(self): def configure_args(self):
spec = self.spec spec = self.spec
prefix = self.prefix prefix = self.prefix
openmp_flag = [] fcflags = []
if "+openmp" in spec: if "+openmp" in spec:
openmp_flag.append(self.compiler.openmp_flag) fcflags.append(self.compiler.openmp_flag)
if self.spec.satisfies("%gcc@10:"):
fcflags.append("-fallow-argument-mismatch")
args = [ args = [
"FCFLAGS=%s" % " ".join(openmp_flag), "FCFLAGS=%s" % " ".join(fcflags),
"--with-futile-libs=%s" % spec["bigdft-futile"].prefix.lib, "--with-futile-libs=%s" % spec["bigdft-futile"].libs.ld_flags,
"--with-futile-incs=%s" % spec["bigdft-futile"].prefix.include, "--with-futile-incs=%s" % spec["bigdft-futile"].headers.include_flags + "/futile",
"--with-moduledir=%s" % prefix.include, "--with-moduledir=%s" % prefix.include,
"--prefix=%s" % prefix, "--prefix=%s" % prefix,
"--without-etsf-io", "--without-etsf-io",

View File

@ -25,6 +25,10 @@ class BigdftChess(AutotoolsPackage, CudaPackage):
variant("ntpoly", default=False, description="Option to use NTPoly") variant("ntpoly", default=False, description="Option to use NTPoly")
# variant('minpack', default=False, description='Give the link-line for MINPACK') # variant('minpack', default=False, description='Give the link-line for MINPACK')
depends_on("autoconf", type="build")
depends_on("automake", type="build")
depends_on("libtool", type="build")
depends_on("python@3.0:", type=("build", "run")) depends_on("python@3.0:", type=("build", "run"))
depends_on("blas") depends_on("blas")
@ -39,13 +43,7 @@ class BigdftChess(AutotoolsPackage, CudaPackage):
depends_on("bigdft-futile@{0}".format(vers), when="@{0}".format(vers)) depends_on("bigdft-futile@{0}".format(vers), when="@{0}".format(vers))
depends_on("bigdft-atlab@{0}".format(vers), when="@{0}".format(vers)) depends_on("bigdft-atlab@{0}".format(vers), when="@{0}".format(vers))
build_directory = "chess" configure_directory = "chess"
def autoreconf(self, spec, prefix):
autoreconf = which("autoreconf")
with working_dir(self.build_directory):
autoreconf("-fi")
def configure_args(self): def configure_args(self):
spec = self.spec spec = self.spec
@ -61,12 +59,15 @@ def configure_args(self):
linalg = [] linalg = []
if "+scalapack" in spec: if "+scalapack" in spec:
linalg.append(spec["scalapack"].libs.ld_flags) linalg.append(spec["scalapack"].libs.ld_flags)
linalg.append(spec["lapack"].libs.ld_flags)
linalg.append(spec["blas"].libs.ld_flags)
args = [ args = [
"FCFLAGS=%s" % " ".join(openmp_flag), "FCFLAGS=%s" % " ".join(openmp_flag),
"LDFLAGS=%s" % " ".join(linalg),
"--with-ext-linalg=%s" % " ".join(linalg), "--with-ext-linalg=%s" % " ".join(linalg),
"--with-pyyaml-path=%s" % pyyaml, "--with-pyyaml-path=%s" % pyyaml,
"--with-futile-libs=%s" % spec["bigdft-futile"].prefix.lib, "--with-futile-libs=%s" % spec["bigdft-futile"].libs.ld_flags,
"--with-futile-incs=%s" % spec["bigdft-futile"].headers.include_flags, "--with-futile-incs=%s" % spec["bigdft-futile"].headers.include_flags,
"--with-moduledir=%s" % prefix.include, "--with-moduledir=%s" % prefix.include,
"--prefix=%s" % prefix, "--prefix=%s" % prefix,

View File

@ -24,6 +24,10 @@ class BigdftCore(AutotoolsPackage, CudaPackage):
variant("scalapack", default=True, description="Enable SCALAPACK support") variant("scalapack", default=True, description="Enable SCALAPACK support")
variant("openbabel", default=False, description="Enable detection of openbabel compilation") variant("openbabel", default=False, description="Enable detection of openbabel compilation")
depends_on("autoconf", type="build")
depends_on("automake", type="build")
depends_on("libtool", type="build")
depends_on("python@3.0:", type=("build", "run")) depends_on("python@3.0:", type=("build", "run"))
depends_on("blas") depends_on("blas")
@ -43,13 +47,7 @@ class BigdftCore(AutotoolsPackage, CudaPackage):
depends_on("bigdft-psolver@{0}".format(vers), when="@{0}".format(vers)) depends_on("bigdft-psolver@{0}".format(vers), when="@{0}".format(vers))
depends_on("bigdft-libabinit@{0}".format(vers), when="@{0}".format(vers)) depends_on("bigdft-libabinit@{0}".format(vers), when="@{0}".format(vers))
build_directory = "bigdft" configure_directory = "bigdft"
def autoreconf(self, spec, prefix):
autoreconf = which("autoreconf")
with working_dir(self.build_directory):
autoreconf("-fi")
def configure_args(self): def configure_args(self):
spec = self.spec spec = self.spec
@ -72,13 +70,13 @@ def configure_args(self):
"FCFLAGS=%s" % " ".join(openmp_flag), "FCFLAGS=%s" % " ".join(openmp_flag),
"--with-ext-linalg=%s" % " ".join(linalg), "--with-ext-linalg=%s" % " ".join(linalg),
"--with-pyyaml-path=%s" % pyyaml, "--with-pyyaml-path=%s" % pyyaml,
"--with-futile-libs=%s" % spec["bigdft-futile"].prefix.lib, "--with-futile-libs=%s" % spec["bigdft-futile"].libs.ld_flags,
"--with-futile-incs=%s" % spec["bigdft-futile"].headers.include_flags, "--with-futile-incs=%s" % spec["bigdft-futile"].headers.include_flags,
"--with-chess-libs=%s" % spec["bigdft-chess"].prefix.lib, "--with-chess-libs=%s" % spec["bigdft-chess"].libs.ld_flags,
"--with-chess-incs=%s" % spec["bigdft-chess"].headers.include_flags, "--with-chess-incs=%s" % spec["bigdft-chess"].headers.include_flags,
"--with-psolver-libs=%s" % spec["bigdft-psolver"].prefix.lib, "--with-psolver-libs=%s" % spec["bigdft-psolver"].libs.ld_flags,
"--with-psolver-incs=%s" % spec["bigdft-psolver"].headers.include_flags, "--with-psolver-incs=%s" % spec["bigdft-psolver"].headers.include_flags,
"--with-libABINIT-libs=%s" % spec["bigdft-libabinit"].prefix.lib, "--with-libABINIT-libs=%s" % spec["bigdft-libabinit"].libs.ld_flags,
"--with-libABINIT-incs=%s" % spec["bigdft-libabinit"].headers.include_flags, "--with-libABINIT-incs=%s" % spec["bigdft-libabinit"].headers.include_flags,
"--with-libgain-libs=%s" % spec["libgain"].libs.ld_flags, "--with-libgain-libs=%s" % spec["libgain"].libs.ld_flags,
"--with-libgain-incs=%s" % spec["libgain"].headers.include_flags, "--with-libgain-incs=%s" % spec["libgain"].headers.include_flags,

View File

@ -25,6 +25,10 @@ class BigdftFutile(AutotoolsPackage, CudaPackage):
variant("mpi", default=True, description="Enable MPI support") variant("mpi", default=True, description="Enable MPI support")
variant("openmp", default=True, description="Enable OpenMP support") variant("openmp", default=True, description="Enable OpenMP support")
depends_on("autoconf", type="build")
depends_on("automake", type="build")
depends_on("libtool", type="build")
depends_on("python@3.0:", type=("build", "run")) depends_on("python@3.0:", type=("build", "run"))
depends_on("blas") depends_on("blas")
@ -33,13 +37,7 @@ class BigdftFutile(AutotoolsPackage, CudaPackage):
depends_on("py-pyyaml") depends_on("py-pyyaml")
depends_on("mpi", when="+mpi") depends_on("mpi", when="+mpi")
build_directory = "futile" configure_directory = "futile"
def autoreconf(self, spec, prefix):
autoreconf = which("autoreconf")
with working_dir(self.build_directory):
autoreconf("-fi")
def configure_args(self): def configure_args(self):
spec = self.spec spec = self.spec

View File

@ -21,6 +21,10 @@ class BigdftLibabinit(AutotoolsPackage):
version("1.9.1", sha256="3c334da26d2a201b572579fc1a7f8caad1cbf971e848a3e10d83bc4dc8c82e41") version("1.9.1", sha256="3c334da26d2a201b572579fc1a7f8caad1cbf971e848a3e10d83bc4dc8c82e41")
version("1.9.0", sha256="4500e505f5a29d213f678a91d00a10fef9dc00860ea4b3edf9280f33ed0d1ac8") version("1.9.0", sha256="4500e505f5a29d213f678a91d00a10fef9dc00860ea4b3edf9280f33ed0d1ac8")
depends_on("autoconf", type="build")
depends_on("automake", type="build")
depends_on("libtool", type="build")
variant("mpi", default=True, description="Enable MPI support") variant("mpi", default=True, description="Enable MPI support")
depends_on("python@3.0:", type=("build", "run")) depends_on("python@3.0:", type=("build", "run"))
@ -32,23 +36,22 @@ class BigdftLibabinit(AutotoolsPackage):
for vers in ["1.9.0", "1.9.1", "1.9.2", "develop"]: for vers in ["1.9.0", "1.9.1", "1.9.2", "develop"]:
depends_on("bigdft-futile@{0}".format(vers), when="@{0}".format(vers)) depends_on("bigdft-futile@{0}".format(vers), when="@{0}".format(vers))
build_directory = "libABINIT" configure_directory = "libABINIT"
def autoreconf(self, spec, prefix):
autoreconf = which("autoreconf")
with working_dir(self.build_directory):
autoreconf("-fi")
def configure_args(self): def configure_args(self):
spec = self.spec spec = self.spec
prefix = self.prefix prefix = self.prefix
fcflags = []
if self.spec.satisfies("%gcc@10:"):
fcflags.append("-fallow-argument-mismatch")
args = [ args = [
"FCFLAGS=%s" % " ".join(fcflags),
"--with-libxc-libs=%s %s" "--with-libxc-libs=%s %s"
% (spec["libxc"].libs.ld_flags, spec["libxc"].libs.ld_flags + "f90"), % (spec["libxc"].libs.ld_flags, spec["libxc"].libs.ld_flags + "f90"),
"--with-libxc-incs=%s" % spec["libxc"].headers.include_flags, "--with-libxc-incs=%s" % spec["libxc"].headers.include_flags,
"--with-futile-libs=%s" % spec["bigdft-futile"].prefix.lib, "--with-futile-libs=%s" % spec["bigdft-futile"].libs.ld_flags,
"--with-futile-incs=%s" % spec["bigdft-futile"].headers.include_flags, "--with-futile-incs=%s" % spec["bigdft-futile"].headers.include_flags,
"--with-moduledir=%s" % prefix.include, "--with-moduledir=%s" % prefix.include,
"--prefix=%s" % prefix, "--prefix=%s" % prefix,

View File

@ -24,6 +24,10 @@ class BigdftPsolver(AutotoolsPackage, CudaPackage):
variant("openmp", default=True, description="Enable OpenMP support") variant("openmp", default=True, description="Enable OpenMP support")
variant("scalapack", default=True, description="Enable SCALAPACK support") variant("scalapack", default=True, description="Enable SCALAPACK support")
depends_on("autoconf", type="build")
depends_on("automake", type="build")
depends_on("libtool", type="build")
depends_on("python@3.0:", type=("build", "run")) depends_on("python@3.0:", type=("build", "run"))
depends_on("blas") depends_on("blas")
@ -36,13 +40,7 @@ class BigdftPsolver(AutotoolsPackage, CudaPackage):
depends_on("bigdft-futile@{0}".format(vers), when="@{0}".format(vers)) depends_on("bigdft-futile@{0}".format(vers), when="@{0}".format(vers))
depends_on("bigdft-atlab@{0}".format(vers), when="@{0}".format(vers)) depends_on("bigdft-atlab@{0}".format(vers), when="@{0}".format(vers))
build_directory = "psolver" configure_directory = "psolver"
def autoreconf(self, spec, prefix):
autoreconf = which("autoreconf")
with working_dir(self.build_directory):
autoreconf("-fi")
def configure_args(self): def configure_args(self):
spec = self.spec spec = self.spec
@ -65,7 +63,7 @@ def configure_args(self):
"FCFLAGS=%s" % " ".join(openmp_flag), "FCFLAGS=%s" % " ".join(openmp_flag),
"--with-ext-linalg=%s" % " ".join(linalg), "--with-ext-linalg=%s" % " ".join(linalg),
"--with-pyyaml-path=%s" % pyyaml, "--with-pyyaml-path=%s" % pyyaml,
"--with-futile-libs=%s" % spec["bigdft-futile"].prefix.lib, "--with-futile-libs=%s" % spec["bigdft-futile"].libs.ld_flags,
"--with-futile-incs=%s" % spec["bigdft-futile"].headers.include_flags, "--with-futile-incs=%s" % spec["bigdft-futile"].headers.include_flags,
"--with-moduledir=%s" % prefix.include, "--with-moduledir=%s" % prefix.include,
"--prefix=%s" % prefix, "--prefix=%s" % prefix,

View File

@ -19,6 +19,10 @@ class BigdftSpred(AutotoolsPackage):
version("1.9.1", sha256="3c334da26d2a201b572579fc1a7f8caad1cbf971e848a3e10d83bc4dc8c82e41") version("1.9.1", sha256="3c334da26d2a201b572579fc1a7f8caad1cbf971e848a3e10d83bc4dc8c82e41")
version("1.9.0", sha256="4500e505f5a29d213f678a91d00a10fef9dc00860ea4b3edf9280f33ed0d1ac8") version("1.9.0", sha256="4500e505f5a29d213f678a91d00a10fef9dc00860ea4b3edf9280f33ed0d1ac8")
depends_on("autoconf", type="build")
depends_on("automake", type="build")
depends_on("libtool", type="build")
variant("mpi", default=True, description="Enable MPI support") variant("mpi", default=True, description="Enable MPI support")
variant("openmp", default=True, description="Enable OpenMP support") variant("openmp", default=True, description="Enable OpenMP support")
variant("scalapack", default=True, description="Enable SCALAPACK support") variant("scalapack", default=True, description="Enable SCALAPACK support")
@ -36,13 +40,7 @@ class BigdftSpred(AutotoolsPackage):
depends_on("bigdft-psolver@{0}".format(vers), when="@{0}".format(vers)) depends_on("bigdft-psolver@{0}".format(vers), when="@{0}".format(vers))
depends_on("bigdft-core@{0}".format(vers), when="@{0}".format(vers)) depends_on("bigdft-core@{0}".format(vers), when="@{0}".format(vers))
build_directory = "spred" configure_directory = "spred"
def autoreconf(self, spec, prefix):
autoreconf = which("autoreconf")
with working_dir(self.build_directory):
autoreconf("-fi")
def configure_args(self): def configure_args(self):
spec = self.spec spec = self.spec
@ -65,7 +63,7 @@ def configure_args(self):
"FCFLAGS=%s" % " ".join(openmp_flag), "FCFLAGS=%s" % " ".join(openmp_flag),
"--with-ext-linalg=%s" % " ".join(linalg), "--with-ext-linalg=%s" % " ".join(linalg),
"--with-pyyaml-path=%s" % pyyaml, "--with-pyyaml-path=%s" % pyyaml,
"--with-futile-libs=%s" % spec["bigdft-futile"].prefix.lib, "--with-futile-libs=%s" % spec["bigdft-futile"].libs.ld_flags,
"--with-futile-incs=%s" % spec["bigdft-futile"].headers.include_flags, "--with-futile-incs=%s" % spec["bigdft-futile"].headers.include_flags,
"--with-psolver-libs=%s" % spec["bigdft-psolver"].prefix.lib, "--with-psolver-libs=%s" % spec["bigdft-psolver"].prefix.lib,
"--with-psolver-incs=%s" % spec["bigdft-psolver"].headers.include_flags, "--with-psolver-incs=%s" % spec["bigdft-psolver"].headers.include_flags,