aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHonza Macháček <Hloupy.Honza@centrum.cz>2013-02-20 11:40:39 +0100
committerHonza Macháček <Hloupy.Honza@centrum.cz>2013-02-20 11:40:39 +0100
commitf32850b70483c21c278afb7ee258ae6c9a384ffc (patch)
tree4971db9fd75fa9fad895b009cdd18615505a73ca
parentMerge branch 'master' of git+ssh://git.overlays.gentoo.org/proj/sci (diff)
downloadsci-f32850b70483c21c278afb7ee258ae6c9a384ffc.tar.gz
sci-f32850b70483c21c278afb7ee258ae6c9a384ffc.tar.bz2
sci-f32850b70483c21c278afb7ee258ae6c9a384ffc.zip
Added sci-physics/abinit-7.0.5, compilation of GPU support in sci-libs/bigdft-1.7_pre12 improved.
-rw-r--r--sci-libs/bigdft/ChangeLog4
-rw-r--r--sci-libs/bigdft/bigdft-1.7_pre12.ebuild11
-rw-r--r--sci-libs/bigdft/files/bigdft-1.7-dev.12-GPUlink.patch12
-rw-r--r--sci-physics/abinit/ChangeLog5
-rw-r--r--sci-physics/abinit/Manifest1
-rw-r--r--sci-physics/abinit/abinit-7.0.5.ebuild357
6 files changed, 387 insertions, 3 deletions
diff --git a/sci-libs/bigdft/ChangeLog b/sci-libs/bigdft/ChangeLog
index 82de595f0..93ecd7e8b 100644
--- a/sci-libs/bigdft/ChangeLog
+++ b/sci-libs/bigdft/ChangeLog
@@ -4,6 +4,10 @@
<<<<<<< HEAD
+ 20 Feb 2013; Honza Macháček <Hloupy.Honza@centrum.cz>
+ bigdft-1.7_pre12.ebuild, +files/bigdft-1.7-dev.12-GPUlink.patch:
+ Compilation of GPU support in bigdft-1.7_pre12 improved. Yet to be tested.
+
*bigdft-1.7_pre12 (17 Jan 2013)
17 Jan 2013; Honza Macháček <Hloupy.Honza@centrum.cz>
diff --git a/sci-libs/bigdft/bigdft-1.7_pre12.ebuild b/sci-libs/bigdft/bigdft-1.7_pre12.ebuild
index de32f986b..7e28cdcf4 100644
--- a/sci-libs/bigdft/bigdft-1.7_pre12.ebuild
+++ b/sci-libs/bigdft/bigdft-1.7_pre12.ebuild
@@ -2,9 +2,11 @@
# Distributed under the terms of the GNU General Public License v2
# $Header: $
-EAPI=4
+EAPI=5
-inherit autotools-utils eutils flag-o-matic fortran-2 toolchain-funcs
+PYTHON_COMPAT=( python2_5 python2_6 python2_7 )
+
+inherit autotools-utils eutils flag-o-matic fortran-2 python-r1 toolchain-funcs
REAL_P="${P/_pre/-dev.}"
@@ -41,8 +43,10 @@ DEPEND="${RDEPEND}
dev-util/pkgconfig
>=sys-devel/autoconf-2.59
doc? ( virtual/latex-base )
+ cuda? ( ${PYTHON_DEPS} )
+ opencl? ( ${PYTHON_DEPS} )
app-arch/tar
- app-arch/bzip2"
+ app-arch/gzip"
S="${WORKDIR}/${REAL_P}"
@@ -70,6 +74,7 @@ pkg_setup() {
src_prepare() {
epatch \
"${FILESDIR}"/"${REAL_P}"-libxc_dir_include.patch \
+ "${FILESDIR}"/"${REAL_P}"-GPUlink.patch \
"${FILESDIR}"/"${REAL_P}"-nolib_mods.patch
tar -xjf "${FILESDIR}"/"${REAL_P}"-tests.tar.bz2 -C "${S}"/tests/DFT/postSCF/
eautoreconf
diff --git a/sci-libs/bigdft/files/bigdft-1.7-dev.12-GPUlink.patch b/sci-libs/bigdft/files/bigdft-1.7-dev.12-GPUlink.patch
new file mode 100644
index 000000000..f4b0e18a9
--- /dev/null
+++ b/sci-libs/bigdft/files/bigdft-1.7-dev.12-GPUlink.patch
@@ -0,0 +1,12 @@
+diff -Naurp bigdft-1.7-dev.12.orig/S_GPU/src/Makefile.in bigdft-1.7-dev.12/S_GPU/src/Makefile.in
+--- bigdft-1.7-dev.12.orig/S_GPU/src/Makefile.in 2012-07-16 08:24:00.000000000 +0000
++++ bigdft-1.7-dev.12/S_GPU/src/Makefile.in 2013-02-19 15:59:06.142835878 +0000
+@@ -88,7 +88,7 @@ am__objects_1 = libs_gpu_la-s_gpu_C.lo \
+ libs_gpu_la-s_gpu_F.lo
+ am_libs_gpu_la_OBJECTS = $(am__objects_1)
+ libs_gpu_la_OBJECTS = $(am_libs_gpu_la_OBJECTS)
+-libs_gpu_la_LINK = $(LIBTOOL) --tag=CXX $(libs_gpu_la_LIBTOOLFLAGS) \
++libs_gpu_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(libs_gpu_la_LDFLAGS) $(LDFLAGS) -o $@
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
diff --git a/sci-physics/abinit/ChangeLog b/sci-physics/abinit/ChangeLog
index 08c3872c8..c5fa554e7 100644
--- a/sci-physics/abinit/ChangeLog
+++ b/sci-physics/abinit/ChangeLog
@@ -2,6 +2,11 @@
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
+*abinit-7.0.5 (20 Feb 2013)
+
+ 20 Feb 2013; Honza Macháček <Hloupy.Honza@centrum.cz> +abinit-7.0.5.ebuild:
+ Quick version bump to abinit-7.0.5.
+
18 Jan 2013; Honza Macháček <Hloupy.Honza@centrum.cz>
+files/6.12.3-gui-makefiles.tbz, abinit-7.0.4.ebuild:
Makefile sources for the gui, missing in the 7.0.4, added from the 6.12.3
diff --git a/sci-physics/abinit/Manifest b/sci-physics/abinit/Manifest
index 689bd12de..1663924dd 100644
--- a/sci-physics/abinit/Manifest
+++ b/sci-physics/abinit/Manifest
@@ -1,2 +1,3 @@
DIST abinit-6.12.3.tar.gz 58483889 SHA256 243a3832e258d12998d9d188141cfedeabdbfee9867c1951d7f27b8230dec5e9 SHA512 a14764c7c031890ea9cb64dd8fb439959fae4b50d59985bd2e9d9c12a06f71f92491c015c64c7273b4089cd57934a699f3d4c3c2f377032cbd655aa887241a65 WHIRLPOOL caa5e8159fac7353ee87663f195419acee57246f1a3015941368ed026c3a15a07cf135dbf57fc8a81f0cdd24c042af1ccc1c63e3e20a73042d3462530bd5b904
DIST abinit-7.0.4.tar.gz 61715030 SHA256 b3ad895b75b92b3ff05e873d42d0b26f6e6113b9de4579966f7b6d1b49d6004e SHA512 8edfe4019c968e6f912d0678fe331fc8a6ce2848f1b16973336d4181d010a776ed1ea2c5500499dac895d9d773d72165e20524705cf8928f91ede873272b0417 WHIRLPOOL 35da8681a68e435b460a11112e6cf6990fdf141d53d5849be45225d50e803e2bfc65cb05e5e576c704411be5734e47ed2e4ccca1fd1689311bd4febea937f0f8
+DIST abinit-7.0.5.tar.gz 61711550 SHA256 b16556aa05448781d872ab18f76ca6446a52be9eeed8d22015a0b63f4adf0f54 SHA512 007292cc7cdf459a5d62e907b29009d9496955952b5f491fa9183a5abb86dbf48020eb435b784d74037e381d65d2255a2b9a130322ee9bfecbff8ca075488ecd WHIRLPOOL 74d83a3a05817eaca402ace1b7ec3c3a6db3697a7ca0166549aee8155edfa2a7c8d516e2ae210a6f0e855f72617d704785bbb10e3a3ee262140964913608a307
diff --git a/sci-physics/abinit/abinit-7.0.5.ebuild b/sci-physics/abinit/abinit-7.0.5.ebuild
new file mode 100644
index 000000000..a3ab9aede
--- /dev/null
+++ b/sci-physics/abinit/abinit-7.0.5.ebuild
@@ -0,0 +1,357 @@
+# 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 openmp python -test +threads -vdwxc"
+
+RDEPEND="~sci-libs/bigdft-1.7_pre12
+ =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}
+ dev-util/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
+ if use openmp; then
+ tc-has-openmp || \
+ die "Please select an openmp capable compiler like gcc[openmp]"
+ fi
+
+ # 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_unpack() {
+ default_src_unpack
+ if use gui; then
+ pushd "${S}" > /dev/null
+ tar -xjf "${FILESDIR}"/6.12.3-gui-makefiles.tbz
+ popd > /dev/null
+ fi
+
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/6.2.2-change-default-directories.patch \
+ "${FILESDIR}"/6.12.1-autoconf.patch \
+ "${FILESDIR}"/6.12.1-xmalloc.patch \
+ "${FILESDIR}"/7.0.4-test_dirs.patch
+ eautoreconf
+ sed -e"s/\(grep '\^-\)\(\[LloW\]\)'/\1\\\(\2\\\|pthread\\\)'/g" -i configure
+
+ if use gui; then
+ pushd gui > /dev/null
+ eautoreconf
+ popd > /dev/null
+ fi
+}
+
+src_configure() {
+ local openmp=""
+ use openmp && openmp="-fopenmp"
+ local libs=""
+ 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=""
+ # 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} $(pkg-config --libs fftw3_threads) $(pkg-config --libs fftw3)"
+ else
+ fft_libs="${fft_libs} $(pkg-config --libs fftw3_threads)"
+ fi
+ else
+ fft_libs="${fft_libs} $(pkg-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)
+ $(use_enable openmp)
+ $(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=$(pkg-config --cflags gsl)")"
+ "$(use gsl && echo "--with-math-libs=$(pkg-config --libs gsl)")"
+ --with-linalg-flavor="atlas"
+ --with-linalg-libs="$(pkg-config --libs lapack)"
+ --with-trio-flavor="${trio_flavor}"
+ "$(use netcdf && echo "--with-netcdf-incs=-I/usr/include")"
+ "$(use netcdf && echo "--with-netcdf-libs=$(pkg-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="$(pkg-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 $(pkg-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}} ${openmp} ${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"
+ popd > /dev/null
+ 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 > /dev/null
+ emake DESTDIR="${D}" install || die "The GUI install failed"
+ popd > /dev/null
+ 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
+}