summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/eigenexa/fj_compiler.patch64
-rw-r--r--var/spack/repos/builtin/packages/eigenexa/package.py49
2 files changed, 113 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/eigenexa/fj_compiler.patch b/var/spack/repos/builtin/packages/eigenexa/fj_compiler.patch
new file mode 100644
index 0000000000..f5ba03aea4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/eigenexa/fj_compiler.patch
@@ -0,0 +1,64 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -200,7 +200,7 @@ AC_SUBST(DEBUG)
+ ## fortran compiler
+ #
+
+-eigenexa_default_fc="mpifrtpx mpiifort mpixlf90_r sxmpif90 mpif90"
++eigenexa_default_fc="mpifrt mpifrtpx mpiifort mpixlf90_r sxmpif90 mpif90"
+
+ # check usablility
+ AC_PROG_F77($eigenexa_default_fc)
+@@ -221,7 +221,6 @@ AC_MSG_CHECKING([for actual compiler])
+
+ fc_ver_info=$(${F77} -E --version)
+ for vtok in ${fc_ver_info} ; do
+-
+ if test x"${vtok}" = x"ifort"; then
+ FC_ACT="ifort"
+ break
+@@ -230,12 +229,16 @@ for vtok in ${fc_ver_info} ; do
+ FC_ACT="gfortran"
+ break
+
++ elif test x"${vtok}" = x"(FRT)"; then
++ FC_ACT="mpifrtpx"
++ break
++
+ fi
+
+ done
+
+ if test -z "${FC_ACT}"; then
+- FC_ACT=${F77}
++ FC_ACT=`basename ${F77}`
+ fi
+
+ if test x"${FC_ACT}" = x"ifort"; then
+@@ -260,7 +263,7 @@ fi
+ ## C compiler
+ #
+
+-eigenexa_default_cc="mpifccpx mpiicc mpixlc_r sxmpic++ mpicc"
++eigenexa_default_cc="mpifcc mpifccpx mpiicc mpixlc_r sxmpic++ mpicc"
+
+ # check usablility
+ AC_PROG_CC($eigenexa_default_cc)
+@@ -423,7 +426,7 @@ fi
+ ## For Fujitsu compiler architecture-oriented options
+ if test x"${FC_ACT}" = x"mpifrtpx"; then
+ F_ARCH=""
+- F_BASE="-Kopenmp,openmp_ordered_reduction"
++ F_BASE="-Kopenmp"
+ fi
+
+
+@@ -489,7 +492,7 @@ elif test x"${FC_ACT}" = x"gfortran"; th
+ FFLAGS0=${G_BASE}" -O0"
+
+ elif test x"${FC_ACT}" = x"mpifrtpx"; then
+- FFLAGS0="-Kopenmp,openmp_ordered_reduction -Cpp"
++ FFLAGS0="-Kopenmp -Cpp"
+
+ elif test x"${FC_ACT}" = x"mpixlf90_r"; then
+ FFLAGS0="-qfixed -qsmp=omp -qthreaded -O0 -qessl -qstrict"
diff --git a/var/spack/repos/builtin/packages/eigenexa/package.py b/var/spack/repos/builtin/packages/eigenexa/package.py
new file mode 100644
index 0000000000..e454ae7af8
--- /dev/null
+++ b/var/spack/repos/builtin/packages/eigenexa/package.py
@@ -0,0 +1,49 @@
+# Copyright 2013-2020 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 import *
+
+
+class Eigenexa(AutotoolsPackage):
+ """EigenExa is a high-performance eigenvalue solver."""
+
+ homepage = "https://www.r-ccs.riken.jp/labs/lpnctrt/projects/eigenexa/"
+ url = "https://www.r-ccs.riken.jp/labs/lpnctrt/projects/eigenexa/EigenExa-2.6.tgz"
+
+ version(
+ "2.6", sha256="a1a4e571a8051443f28e7ea4889272993452a4babd036d2b4dd6b28154302f95"
+ )
+
+ depends_on("autoconf", type="build")
+ depends_on("automake", type="build")
+ depends_on("libtool", type="build")
+ depends_on("m4", type="build")
+ depends_on("mpi")
+ depends_on("lapack")
+ depends_on("scalapack")
+
+ patch("fj_compiler.patch", when="%fj")
+
+ parallel = False
+
+ def setup_build_environment(self, env):
+ env.set("FC", self.spec["mpi"].mpifc, force=True)
+ env.set("F77", self.spec["mpi"].mpif77, force=True)
+ env.set("CC", self.spec["mpi"].mpicc, force=True)
+ env.set(
+ "LAPACK_LIBS",
+ "{0} {1}".format(
+ self.spec["lapack"].libs.ld_flags, self.spec["scalapack"].libs.ld_flags
+ ),
+ )
+ env.set(
+ "LAPACK_PATH",
+ "{0}".format(
+ ":".join(
+ self.spec["lapack"].libs.directories
+ + self.spec["scalapack"].libs.directories
+ )
+ ),
+ )