From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id CECD4138247 for ; Mon, 18 Nov 2013 08:01:46 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 2B044E09B1; Mon, 18 Nov 2013 08:01:45 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id A4DD6E09B1 for ; Mon, 18 Nov 2013 08:01:44 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 86A1333EED9 for ; Mon, 18 Nov 2013 08:01:43 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 25A08E5459 for ; Mon, 18 Nov 2013 08:01:40 +0000 (UTC) From: "Justin Lecher" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Justin Lecher" Message-ID: <1384720500.d05d18d95b0b154f3446f832f25fd6a0c5c3d3b8.jlec@gentoo> Subject: [gentoo-commits] proj/sci:master commit in: sci-libs/magma/ X-VCS-Repository: proj/sci X-VCS-Files: sci-libs/magma/magma-1.4.0.ebuild X-VCS-Directories: sci-libs/magma/ X-VCS-Committer: jlec X-VCS-Committer-Name: Justin Lecher X-VCS-Revision: d05d18d95b0b154f3446f832f25fd6a0c5c3d3b8 X-VCS-Branch: master Date: Mon, 18 Nov 2013 08:01:40 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: f7bf02ad-3f84-49ac-8414-a771c234603d X-Archives-Hash: 177365b083a17f6cbe1306e36c4d4a80 commit: d05d18d95b0b154f3446f832f25fd6a0c5c3d3b8 Author: Andreas Schäfer gmx de> AuthorDate: Sun Nov 17 20:35:00 2013 +0000 Commit: Justin Lecher gentoo org> CommitDate: Sun Nov 17 20:35:00 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=d05d18d9 added Magma 1.4.0 ebuild --- sci-libs/magma/magma-1.4.0.ebuild | 122 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/sci-libs/magma/magma-1.4.0.ebuild b/sci-libs/magma/magma-1.4.0.ebuild new file mode 100644 index 0000000..b17c326 --- /dev/null +++ b/sci-libs/magma/magma-1.4.0.ebuild @@ -0,0 +1,122 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=4 + +FORTRAN_STANDARD="77 90" +inherit eutils fortran-2 multilib toolchain-funcs versionator + +DESCRIPTION="Matrix Algebra on GPU and Multicore Architectures" +HOMEPAGE="http://icl.cs.utk.edu/magma/" +SRC_URI="http://icl.cs.utk.edu/projectsfiles/${PN}/downloads/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="fermi kepler static-libs" + +RDEPEND=" + dev-util/nvidia-cuda-toolkit + virtual/cblas + virtual/fortran + virtual/lapack" +DEPEND="${RDEPEND} + virtual/pkgconfig" + +# We have to have write acccess /dev/nvidia0 and /dev/nvidiactl and the portage +# user is (usually) not in the video group +RESTRICT="userpriv" + +static_to_shared() { + local libstatic=${1}; shift + local libname=$(basename ${libstatic%.a}) + local soname=${libname}$(get_libname $(get_version_component_range 1-2)) + local libdir=$(dirname ${libstatic}) + + einfo "Making ${soname} from ${libstatic}" + if [[ ${CHOST} == *-darwin* ]] ; then + ${LINK:-$(tc-getCC)} ${LDFLAGS} \ + -dynamiclib -install_name "${EPREFIX}"/usr/lib/"${soname}" \ + -Wl,-all_load -Wl,${libstatic} \ + "$@" -o ${libdir}/${soname} || die "${soname} failed" + else + ${LINK:-$(tc-getCC)} ${LDFLAGS} \ + -shared -Wl,-soname=${soname} \ + -Wl,--whole-archive ${libstatic} -Wl,--no-whole-archive \ + "$@" -o ${libdir}/${soname} || die "${soname} failed" + [[ $(get_version_component_count) -gt 1 ]] && \ + ln -s ${soname} ${libdir}/${libname}$(get_libname $(get_major_version)) + ln -s ${soname} ${libdir}/${libname}$(get_libname) + fi +} + +src_prepare() { + # distributed pc file not so useful so replace it + cat <<-EOF > ${PN}.pc + prefix=${EPREFIX}/usr + libdir=\${prefix}/$(get_libdir) + includedir=\${prefix}/include/${PN} + Name: ${PN} + Description: ${DESCRIPTION} + Version: ${PV} + URL: ${HOMEPAGE} + Libs: -L\${libdir} -lmagma -lmagmablas + Libs.private: -lm -lpthread -ldl -lcublas -lcudart + Cflags: -I\${includedir} + Requires: cblas lapack + EOF +} + +src_configure() { + cat <<-EOF > make.inc + ARCH = $(tc-getAR) + ARCHFLAGS = cr + RANLIB = $(tc-getRANLIB) + NVCC = nvcc + CC = $(tc-getCXX) + FORT = $(tc-getFC) + INC = -I"${EPREFIX}/opt/cuda/include" -DADD_ -DCUBLAS_GFORTRAN + OPTS = ${CFLAGS} -fPIC + FOPTS = ${FFLAGS} -fPIC -x f95-cpp-input + F77OPTS = ${FFLAGS} -fPIC + NVOPTS = -DADD_ --compiler-options '-fPIC ${CFLAGS}' -DUNIX + LOADER = $(tc-getFC) + LIBBLAS = $($(tc-getPKG_CONFIG) --libs cblas) + LIBLAPACK = $($(tc-getPKG_CONFIG) --libs lapack) + CUDADIR = ${EPREFIX}/opt/cuda + LIBCUDA = -L\$(CUDADIR)/$(get_libdir) -lcublas -lcudart + LIB = -pthread -lm -ldl \$(LIBCUDA) \$(LIBBLAS) \$(LIBLAPACK) -lstdc++ + EOF + if use kepler; then + echo >> make.inc "GPU_TARGET = Kepler" + elif use fermi; then + echo >> make.inc "GPU_TARGET = Fermi" + else # See http://icl.cs.utk.edu/magma/forum/viewtopic.php?f=2&t=227 + echo >> make.inc "GPU_TARGET = Tesla" + fi +} + +src_compile() { + emake lib + emake shared +} + +src_test() { + emake test lapacktest + cd testing/lin + # we need to access this while running the tests + addwrite /dev/nvidiactl + addwrite /dev/nvidia0 + LD_LIBRARY_PATH=${S}/lib python lapack_testing.py || die +} + +src_install() { + dolib.so lib/lib*$(get_libname)* + use static-libs && dolib.a lib/lib*.a + insinto /usr/include/${PN} + doins include/*.h + insinto /usr/$(get_libdir)/pkgconfig + doins ${PN}.pc + dodoc README ReleaseNotes +}