public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/sci:master commit in: sci-libs/bigdft/, sci-libs/bigdft/files/, sci-physics/abinit/
@ 2013-02-20 10:41 Honza Macháček
  0 siblings, 0 replies; only message in thread
From: Honza Macháček @ 2013-02-20 10:41 UTC (permalink / raw
  To: gentoo-commits

commit:     f32850b70483c21c278afb7ee258ae6c9a384ffc
Author:     Honza Macháček <Hloupy.Honza <AT> centrum <DOT> cz>
AuthorDate: Wed Feb 20 10:40:39 2013 +0000
Commit:     Honza Macháček <Hloupy.Honza <AT> centrum <DOT> cz>
CommitDate: Wed Feb 20 10:40:39 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=f32850b7

Added sci-physics/abinit-7.0.5, compilation of GPU support in sci-libs/bigdft-1.7_pre12 improved.

---
 sci-libs/bigdft/ChangeLog                          |    4 +
 sci-libs/bigdft/bigdft-1.7_pre12.ebuild            |   11 +-
 .../bigdft/files/bigdft-1.7-dev.12-GPUlink.patch   |   12 +
 sci-physics/abinit/ChangeLog                       |    5 +
 sci-physics/abinit/abinit-7.0.5.ebuild             |  357 ++++++++++++++++++++
 5 files changed, 386 insertions(+), 3 deletions(-)

diff --git a/sci-libs/bigdft/ChangeLog b/sci-libs/bigdft/ChangeLog
index 82de595..93ecd7e 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 de32f98..7e28cdc 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 0000000..f4b0e18
--- /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 08c3872..c5fa554 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/abinit-7.0.5.ebuild b/sci-physics/abinit/abinit-7.0.5.ebuild
new file mode 100644
index 0000000..a3ab9ae
--- /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
+}


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2013-02-20 10:41 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-20 10:41 [gentoo-commits] proj/sci:master commit in: sci-libs/bigdft/, sci-libs/bigdft/files/, sci-physics/abinit/ Honza Macháček

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox