From 0660974bd34f65d3738a089d144812cc74604247 Mon Sep 17 00:00:00 2001 From: Honza Macháček Date: Fri, 1 Jul 2011 09:01:36 +0200 Subject: New ebuild sci-physics/elk-1.3.15 added (a GPL-3 all-electron FP-LAPW code, used for example by sci-physics/abinit developers for comparison). --- sci-physics/elk/ChangeLog | 12 +++++ sci-physics/elk/elk-1.3.15.ebuild | 104 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 sci-physics/elk/ChangeLog create mode 100644 sci-physics/elk/elk-1.3.15.ebuild 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 +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 +} -- cgit v1.2.3-65-gdbad