diff options
Diffstat (limited to 'sci-physics/elk/elk-1.4.18.ebuild')
-rw-r--r-- | sci-physics/elk/elk-1.4.18.ebuild | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/sci-physics/elk/elk-1.4.18.ebuild b/sci-physics/elk/elk-1.4.18.ebuild new file mode 100644 index 000000000..27b3f3af5 --- /dev/null +++ b/sci-physics/elk/elk-1.4.18.ebuild @@ -0,0 +1,115 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI="4" + +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 perl test" + +RDEPEND="lapack? ( virtual/blas + virtual/lapack ) + libxc? ( =sci-libs/libxc-1*[fortran] ) + mpi? ( virtual/mpi )" +DEPEND="${RDEPEND} + perl? ( dev-lang/perl ) + dev-util/pkgconfig" + +DOCS=( README ) + +FORTRAN_STANDARD=90 + +pkg_setup() { + # fortran-2.eclass does not handle mpi wrappers + if use mpi; then + export FC="mpif90" + export F77="mpif77" + export CC="mpicc" + export CXX="mpic++" + else + tc-export FC F77 CC CXX + fi + + if use openmp; then + FORTRAN_NEED_OPENMP=1 + fi + + fortran-2_pkg_setup + + if use openmp; then + export FC="${FC} -fopenmp" + export F77="${F77} -fopenmp" + export CC="${CC} -fopenmp" + export CXX="${CXX} -fopenmp" + 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() { + FCFLAGS="${FCFLAGS:- ${FFLAGS:- -O3 -funroll-loops -ffast-math}}" + FCFLAGS="${FCFLAGS} -I/usr/include -I/usr/$(get_libdir)/finclude" + CFLAGS="${CFLAGS:- -O3 -funroll-loops -ffast-math}" + CXXFLAGS="${CXXFLAGS:- ${CFLAGS}}" + export FCFLAGS CFLAGS CXXFLAGS + echo "MAKE = make" > make.inc + echo "F90 = $FC" >> make.inc + echo "F90_OPTS = $FCFLAGS" >> make.inc + echo "F77 = $FC" >> make.inc + echo "F77_OPTS = $FCFLAGS" >> make.inc + echo "CC = ${CC}" >> make.inc + echo "CXX = ${CXX}" >> make.inc + echo "CFLAGS = ${CFLAGS}" >> make.inc + echo "CXXFLAGS = ${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/protex src/eos/eos src/spacegroup/spacegroup + dobin utilities/elk-bands + use perl && dobin utilities/xps_exc.pl utilities/se.pl + 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 +} |