aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-physics/elk')
-rw-r--r--sci-physics/elk/ChangeLog12
-rw-r--r--sci-physics/elk/elk-1.3.15.ebuild104
2 files changed, 116 insertions, 0 deletions
diff --git a/sci-physics/elk/ChangeLog b/sci-physics/elk/ChangeLog
new file mode 100644
index 000000000..558ea51d4
--- /dev/null
+++ b/sci-physics/elk/ChangeLog
@@ -0,0 +1,12 @@
+# ChangeLog for sci-physics/elk
+# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
+# $Header: $
+
+*elk-1.3.15 (01 Jul 2011)
+
+ 01 Jul 2011; Honza Macháček <Hloupy.Honza@centrum.cz> +elk-1.3.15.ebuild:
+ New ebuild added. Compiled with USE=lapack against lapack-atlas at my box, it
+ failed tests miserably, even with a lot of segfaults. Using its internal
+ lapack with USE=-lapack, it looks well. Tested OK with USE="-lapack libxc mpi
+ openmp".
+
diff --git a/sci-physics/elk/elk-1.3.15.ebuild b/sci-physics/elk/elk-1.3.15.ebuild
new file mode 100644
index 000000000..214bbea65
--- /dev/null
+++ b/sci-physics/elk/elk-1.3.15.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="3"
+
+inherit eutils fortran-2 multilib toolchain-funcs
+
+DESCRIPTION="All-electron full-potential linearised augmented-plane wave (FP-LAPW) code with advanced features."
+HOMEPAGE="http://elk.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tgz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="-debug lapack libxc mpi openmp test"
+
+RDEPEND="lapack? ( virtual/blas
+ virtual/lapack )
+ libxc? ( =sci-libs/libxc-1.0[fortran] )
+ mpi? ( virtual/mpi )"
+DEPEND="${RDEPEND}
+ dev-util/pkgconfig"
+
+pkg_setup() {
+ fortran-2_pkg_setup
+ if use openmp; then
+ tc-has-openmp || \
+ die "Please select an openmp capable compiler like gcc[openmp]"
+ fi
+}
+
+src_prepare() {
+ if use libxc; then
+ sed -i -e's/^\(SRC_libxc =\)/#\1/' "${S}/src/Makefile"
+ fi
+ if use mpi; then
+ sed -i -e's/^\(SRC_mpi =\)/#\1/' "${S}/src/Makefile"
+ fi
+}
+
+src_configure() {
+ if use mpi; then
+ MY_FC="mpif90"
+ MY_CC="mpicc"
+ MY_CXX="mpic++"
+ else
+ MY_FC="$(tc-getFC)"
+ MY_CC="$(tc-getCC)"
+ MY_CXX="$(tc-getCXX)"
+ fi
+ if use openmp; then
+ MY_FC="${MY_FC} -fopenmp"
+ MY_CC="${MY_CC} -fopenmp"
+ MY_CXX="${MY_CXX} -fopenmp"
+ fi
+ MY_FCFLAGS="${FCFLAGS:- ${FFLAGS:- -O3 -funroll-loops -ffast-math}}"
+ MY_FCFLAGS="${MY_FCFLAGS} -I/usr/include -I/usr/$(get_libdir)/finclude"
+ MY_CFLAGS="${CFLAGS:- -O3 -funroll-loops -ffast-math}"
+ MY_CXXFLAGS="${CXXFLAGS:- ${CFLAGS:- -O3 -funroll-loops -ffast-math}}"
+ echo "MAKE = make" > make.inc
+ echo "F90 = $MY_FC" >> make.inc
+ echo "F90_OPTS = $MY_FCFLAGS" >> make.inc
+ echo "F77 = $MY_FC" >> make.inc
+ echo "F77_OPTS = $MY_FCFLAGS" >> make.inc
+ echo "CC = ${MY_CC}" >> make.inc
+ echo "CXX = ${MY_CXX}" >> make.inc
+ echo "CFLAGS = ${MY_CFLAGS}" >> make.inc
+ echo "CXXFLAGS = ${MY_CXXFLAGS}" >> make.inc
+ echo "LD = $(tc-getLD)" >> make.inc
+ echo "AR = ar" >> make.inc
+ echo "LIB_SYS = " >> make.inc
+ if use lapack; then
+ echo "LIB_LPK = $(pkg-config --libs lapack)" >> make.inc
+ else
+ echo "LIB_LPK = lapack.a blas.a" >> make.inc
+ fi
+ echo "LIB_FFT = fftlib.a" >> make.inc
+ if use libxc; then
+ echo "LIB_XC = -L/usr/$(get_libdir) -lxc" >> make.inc
+ echo "SRC_libxc = libxc_funcs.f90 libxc.f90 libxcifc.f90" >>make.inc
+ fi
+}
+
+src_compile() {
+ emake -j1 || die "make failed"
+}
+
+src_test() {
+ emake test
+}
+
+src_install() {
+ dobin src/elk src/eos/eos src/spacegroup/spacegroup utilities/elk-bands
+ dodoc README
+ for doc in docs/*; do
+ dodoc $doc
+ done
+ insinto /usr/share/${P}
+ doins -r species
+ doins -r utilities
+ doins -r examples
+ doins -r tests
+}