aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-physics/abinit/abinit-6.12.3-r2.ebuild')
-rw-r--r--sci-physics/abinit/abinit-6.12.3-r2.ebuild335
1 files changed, 0 insertions, 335 deletions
diff --git a/sci-physics/abinit/abinit-6.12.3-r2.ebuild b/sci-physics/abinit/abinit-6.12.3-r2.ebuild
deleted file mode 100644
index 0eb2c6f72..000000000
--- a/sci-physics/abinit/abinit-6.12.3-r2.ebuild
+++ /dev/null
@@ -1,335 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=4
-
-inherit autotools-utils eutils flag-o-matic fortran-2 multilib toolchain-funcs
-
-DESCRIPTION="Find total energy, charge density and electronic structure using density functional theory"
-HOMEPAGE="http://www.abinit.org/"
-SRC_URI="http://ftp.abinit.org/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="cuda cuda-double -debug +etsf_io +fftw +fftw-threads +fox gsl gui +hdf5 libabinit mpi +netcdf python -test +threads -vdwxc"
-
-RDEPEND="~sci-libs/bigdft-1.6_pre1
- =sci-libs/libxc-1*[fortran]
- sci-physics/atompaw[libxc]
- etsf_io? ( sci-libs/etsf_io )
- fox? ( >=sci-libs/fox-4.1.2-r1[sax] )
- netcdf? (
- || (
- sci-libs/netcdf[fortran]
- sci-libs/netcdf-fortran
- )
- hdf5? (
- sci-libs/netcdf[hdf5]
- )
- )
- hdf5? ( sci-libs/hdf5[fortran] )
- sci-libs/wannier90
- virtual/blas
- virtual/lapack
- gsl? ( sci-libs/gsl )
- fftw? (
- sci-libs/fftw:3.0
- fftw-threads? ( sci-libs/fftw:3.0[threads] )
- )
- mpi? ( virtual/mpi )
- python? ( dev-python/numpy )
- cuda? ( dev-util/nvidia-cuda-sdk )"
-DEPEND="${RDEPEND}
- virtual/pkgconfig
- gui? ( >=virtual/jdk-1.6.0
- app-arch/sharutils
- sys-apps/gawk )
- dev-perl/Text-Markdown"
-
-S=${WORKDIR}/${P%[a-z]}
-
-lat1loc=""
-
-DOCS=( AUTHORS ChangeLog COPYING INSTALL KNOWN_PROBLEMS NEWS PACKAGING
- README README.ChangeLog README.GPU README.xlf RELNOTES THANKS )
-
-FORTRAN_STANDARD=90
-
-pkg_setup() {
- # Doesn't compile with gcc-4.0, only >=4.1
- if [[ $(tc-getFC) == *gfortran ]]; then
- if [[ $(gcc-major-version) -eq 4 ]] \
- && [[ $(gcc-minor-version) -lt 1 ]]; then
- die "Requires gcc-4.1 or newer"
- fi
- fi
-
- # 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
-
- # Preprocesor macross can make some lines really long
- append-fflags -ffree-line-length-none
-
- fortran-2_pkg_setup
-
- # Sort out some USE options
- if use fftw-threads && ! use fftw; then
- ewarn "fftw-threads set but fftw not used, ignored"
- fi
- if use cuda-double && ! use cuda; then
- ewarn "cuda-double set but cuda not used, ignored"
- fi
- if use gui; then
- lat1loc="$(locale |awk '/LC_CTYPE="(.*)"/{sub("LC_CTYPE=\"",""); sub("\" *$", ""); print}')"
- if locale charmap |grep -i "\<iso885915\?\>"; then
- einfo "Good, locale compatible with the GUI build"
- else
- ewarn "The locale ${lat1loc} incompatible with the GUI build"
- if latloc=`locale -a| grep -i "\<iso885915\?\>"`; then
- if echo "${latloc}" |grep -q "^fr"; then
- lat1loc="$(echo "${latloc}" | grep -im1 "^fr")"
- else
- lat1loc="$(echo "${latloc}" | grep -im1 "iso88591")"
- fi
- einfo "Will use ${lat1loc} to build the GUI"
- else
- ewarn "No ISO-8859-1 nor ISO-8859-15 locale available, the GUI build may crash"
- fi
- fi
- fi
-}
-
-src_prepare() {
- epatch \
- "${FILESDIR}"/6.2.2-change-default-directories.patch \
- "${FILESDIR}"/6.0.3-fftw.patch \
- "${FILESDIR}"/6.12.1-autoconf.patch \
- "${FILESDIR}"/6.12.1-xmalloc.patch \
- "${FILESDIR}"/6.12.1-libabinit_options.patch
- eautoreconf
-
-}
-
-src_configure() {
- local libs="-L/usr/$(get_libdir)"
- local modules="-I/usr/$(get_libdir)/finclude $(FoX-config --sax --fcflags)"
- local FoX_libs="${libs} $(FoX-config --sax --libs)"
- local trio_flavor=""
- use etsf_io && trio_flavor="${trio_flavor}+etsf_io"
- use fox && trio_flavor="${trio_flavor}+fox"
- use netcdf && trio_flavor="${trio_flavor}+netcdf"
- test "no${trio_flavor}" = "no" && trio_flavor="none"
- local netcdff_libs="-lnetcdff"
- use hdf5 && netcdff_libs="${netcdff_libs} -lhdf5_fortran"
- local fft_flavor="fftw3"
- local fft_libs="-L/usr/lib"
- # The fftw threads support is protected by black magick.
- # Anybody removes it, dies.
- # New USE flag "fftw-threads" was added to control usage
- # of the threaded fftw variant. Since fftw-3.3 has expanded
- # the paralel options by MPI and OpenMP support, analogical
- # USE flags should be added to select them in future;
- # unusable with previous FFTW versions, they are postponed
- # for now.
- if use fftw-threads; then
- fft_flavor="fftw3-threads"
- if has_version '>=sci-libs/fftw-3.3'; then
- # pkg-config files for fftw-3.3 are broken
- # All the parallel stuff is separated
- # from the main body of common routines,
- # and -lfftw3 must be always included alongside.
- # Until version 3.3 this used to be masked by
- # .la files.
- # Bug 384645
- fft_libs="${fft_libs} $($(tc-getPKG_CONFIG) --libs fftw3_threads) $($(tc-getPKG_CONFIG) --libs fftw3)"
- else
- fft_libs="${fft_libs} $($(tc-getPKG_CONFIG) --libs fftw3_threads)"
- fi
- else
- fft_libs="${fft_libs} $($(tc-getPKG_CONFIG) --libs fftw3)"
- fi
- local gpu_flavor="none"
- if use cuda; then
- gpu_flavor="cuda-single"
- if use cuda-double; then
- gpu_flavor="cuda-double"
- fi
- fi
-
- local myeconfargs=(
- --enable-clib
- --enable-exports
- $(use_enable gui)
- $(use_enable debug debug enhanced)
- $(use_enable mpi)
- $(use_enable mpi mpi-io)
- --disable-smp
- $(use_enable vdwxc)
- $(use_enable cuda gpu)
- "$(use cuda && echo "--with-gpu-flavor=${gpu_flavor}")"
- "$(use cuda && echo "--with-gpu-prefix=/opt/cuda/")"
- "$(use gsl && echo "--with-math-flavor=gsl")"
- "$(use gsl && echo "--with-math-incs=$($(tc-getPKG_CONFIG) --cflags gsl)")"
- "$(use gsl && echo "--with-math-libs=$($(tc-getPKG_CONFIG) --libs gsl)")"
- --with-linalg-flavor="atlas"
- --with-linalg-libs="$($(tc-getPKG_CONFIG) --libs lapack)"
- --with-trio-flavor="${trio_flavor}"
- "$(use netcdf && echo "--with-netcdf-incs=-I/usr/include")"
- "$(use netcdf && echo "--with-netcdf-libs=$($(tc-getPKG_CONFIG) --libs netcdf) ${netcdff_libs}")"
- "$(use fox && echo "--with-fox-incs=${modules}")"
- "$(use fox && echo "--with-fox-libs=${FoX_libs}")"
- "$(use etsf_io && echo "--with-etsf-io-incs=${modules}")"
- "$(use etsf_io && echo "--with-etsf-io-libs=${libs} -letsf_io -letsf_io_utils -letsf_io_low_level")"
- --with-dft-flavor="libxc+bigdft+atompaw+wannier90"
- --with-libxc-incs="${modules}"
- --with-libxc-libs="${libs} -lxc"
- --with-bigdft-incs="${modules}"
- --with-bigdft-libs="$($(tc-getPKG_CONFIG) --libs bigdft)"
- --with-atompaw-incs="${modules}"
- --with-atompaw-libs="${libs} -latompaw"
- --with-wannier90-bins="/usr/bin"
- --with-wannier90-incs="${modules}"
- --with-wannier90-libs="${libs} -lwannier $($(tc-getPKG_CONFIG) --libs lapack)"
- "$(use fftw && echo "--with-fft-flavor=${fft_flavor}")"
- "$(use fftw && echo "--with-fft-incs=-I/usr/include")"
- "$(use fftw && echo "--with-fft-libs=${fft_libs}")"
- --with-timer-flavor="abinit"
- LD="$(tc-getLD)"
- FCFLAGS="${FCFLAGS:- ${FFLAGS:- -O2}} ${modules} -I/usr/include"
- )
-
- MARKDOWN=Markdown.pl autotools-utils_src_configure
-
- if use gui; then
- # autotools-utils_src_configure() part expanded
- _check_build_dir
- pushd "${AUTOTOOLS_BUILD_DIR}" > /dev/null
- mkdir -p gui
- cd gui
- ECONF_SOURCE="${S}"/gui econf UUDECODE="uudecode"
- fi
-}
-
-src_compile() {
- autotools-utils_src_compile
-
- # Apparently libabinit.a is not built by default
- # Used by BigDFT. Should probably be built separately,
- # as a package of its own: BigDFT used by Abinit.
- # Does libabinit.a depend on BigDFT, if used?
- # Can Abinit use external libabinit.a?
- use libabinit && autotools-utils_src_compile libabinit.a
-
- if use gui; then
- #autotools-utils_src_compile() expanded
- # _check_build_dir has already been called
- pushd "${AUTOTOOLS_BUILD_DIR}" > /dev/null
- # now what the function cannot be called to do
- cd gui
- LC_CTYPE="${lat1loc}" emake || die "Making GUI failed"
- popd > /dev/null
- fi
-
- sed -i -e's/libatlas/lapack/' "${AUTOTOOLS_BUILD_DIR}"/config.pc
-}
-
-src_test() {
- einfo "The tests take quite a while, easily several hours"
- # autotools-utils_src_test() expanded
- _check_build_dir
- pushd "${AUTOTOOLS_BUILD_DIR}" > /dev/null
- # again something the autotools-utils function cannot be called to do
- # now quite a lot of work actually
- cd tests
- emake tests_acc || ewarn "Accuracy tests failed"
- emake tests_paw || ewarn "PAW tests failed"
- emake tests_gw || ewarn "GW tests failed"
- emake tests_gw_paw || ewarn "GW-PAW tests failed"
- emake tests_bs || ewarn "BSE tests failed"
- emake tests_tddft || ewarn "TDDFT tests failed"
- emake tests_eph || ewarn "Elphon tests failed"
-
- local REPORT
- for REPORT in $(find . -name report); do
- REPORT=${REPORT#*/}
- elog "Parameters and unusual results for ${REPORT%%/*} tests"
- echo "Parameters and unusual results for ${REPORT%%/*} tests" >>tests_summary.txt
- while read line; do
- elog "${line}"
- echo "${line}" >>tests_summary.txt
- done \
- < <(grep -v -e succeeded -e passed ${REPORT})
- done
-
- local testdir
- find . -name "tmp-test*" -print | \
- while read testdir; do
- if [ -e summary_of_tests.tar ]; then
- tar rvf summary_of_tests.tar ${testdir}
- else tar cvf summary_of_tests.tar ${testdir}
- fi
- done
- popd > /dev/null
-
- elog "The full test results will be installed as summary_of_tests.tar.bz2."
- elog "Also a concise report tests_summary.txt is installed."
-}
-
-src_install() {
- #autotools-utils_src_install() expanded
- _check_build_dir
- pushd "${AUTOTOOLS_BUILD_DIR}" > /dev/null
- emake DESTDIR="${D}" install || die "make install failed"
-
- use libabinit && dolib libabinit.a
-
- if use gui; then
- pushd gui
- emake DESTDIR="${D}" install || die "The GUI install failed"
- popd
- fi
-
- if use test; then
- for dc in tests_summary.txt summary_of_tests.tar; do
- test -e tests/"${dc}" && dodoc tests/"${dc}" || ewarn "Copying tests results failed"
- done
- fi
-
- popd > /dev/null
-
- # XXX: support installing them from builddir as well!!!
- if [[ ${DOCS} ]]; then
- dodoc "${DOCS[@]}" || die "dodoc failed"
- else
- local f
- # same list as in PMS
- for f in README* ChangeLog AUTHORS NEWS TODO CHANGES \
- THANKS BUGS FAQ CREDITS CHANGELOG; do
- if [[ -s ${f} ]]; then
- dodoc "${f}" || die "(default) dodoc ${f} failed"
- fi
- done
- fi
- if [[ ${HTML_DOCS} ]]; then
- dohtml -r "${HTML_DOCS[@]}" || die "dohtml failed"
- fi
-
- # Remove libtool files and unnecessary static libs
- remove_libtool_files
-}
-
-pkg_postinst() {
- if use test; then
- elog "The full test results will be installed as summary_tests.tar.bz2."
- elog "Also a concise report tests_summary.txt is installed."
- fi
-}