aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sci-libs/plasma/ChangeLog7
-rw-r--r--sci-libs/plasma/Manifest1
-rw-r--r--sci-libs/plasma/plasma-2.6.0.ebuild142
3 files changed, 149 insertions, 1 deletions
diff --git a/sci-libs/plasma/ChangeLog b/sci-libs/plasma/ChangeLog
index 63111204d..6072d195a 100644
--- a/sci-libs/plasma/ChangeLog
+++ b/sci-libs/plasma/ChangeLog
@@ -1,7 +1,12 @@
# ChangeLog for sci-libs/plasma
-# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
+# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
+*plasma-2.6.0 (28 Jan 2014)
+
+ 28 Jan 2014; S├ębastien Fabbro <bicatali@gentoo.org> +plasma-2.6.0.ebuild:
+ sci-libs/plasma: Version bump
+
09 Dec 2013; S├ębastien Fabbro <bicatali@gentoo.org> plasma-2.5.2.ebuild:
sci-libs/plasma: Version bump
diff --git a/sci-libs/plasma/Manifest b/sci-libs/plasma/Manifest
index 5a2b37af5..9401cfc46 100644
--- a/sci-libs/plasma/Manifest
+++ b/sci-libs/plasma/Manifest
@@ -1 +1,2 @@
DIST plasma_2.5.2.tar.gz 5354770 SHA256 3efaa35bed186f43cdd30ee7939a343048b9a6d0ae419cda749660ce66f372a3 SHA512 0ee93bd25fee721a76a28118ef21edcda84830516226ec97806cf52602c4f6df600f14db06d569413ccc83d4ae7f6d9d3ad0853132d0824b3e3efa41b53a8a3f WHIRLPOOL 67d3e6528bfd6a1ca01430a854e67f91f971dc0604983d1879a685056327138638248f8ff85cf0ba9616d74f4185000afbbdbbdc7db761a12d6702bf2db02937
+DIST plasma_2.6.0.tar.gz 6264802 SHA256 dbdc59032a5406bbb20235f461ac31470169fab47a6ccc6f7c18f1ee7569b03e SHA512 887ca2a121e67e9e8279a8da002a3a1e44d10e26e8bdbe7a9f30e6d10cee7ff6b78d95f39412a347c6a89f9fc2ff7fea02f71fdacca3c4fb9353d39381f35f2b WHIRLPOOL de4a5a08d834d5c49233e7d714c32b092c0dfd87e4b4e995c7286afd8fdfee8d262c194856958b349ec35ef0c283c67f2a349814a69ba32002d6e2ba154aef60
diff --git a/sci-libs/plasma/plasma-2.6.0.ebuild b/sci-libs/plasma/plasma-2.6.0.ebuild
new file mode 100644
index 000000000..067d27cc7
--- /dev/null
+++ b/sci-libs/plasma/plasma-2.6.0.ebuild
@@ -0,0 +1,142 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+inherit eutils fortran-2 toolchain-funcs versionator multilib flag-o-matic
+
+MYP=${PN}_${PV}
+SOVER=$(get_version_component_range 1)
+
+DESCRIPTION="Parallel Linear Algebra for Scalable Multi-core Architecture"
+HOMEPAGE="http://icl.cs.utk.edu/plasma/"
+SRC_URI="http://icl.cs.utk.edu/projectsfiles/plasma/pubs/${MYP}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0/${SOVER}"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples fortran static-libs test"
+
+RDEPEND="
+ sys-apps/hwloc
+ virtual/blas
+ virtual/cblas
+ virtual/lapack
+ virtual/lapacke"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ test? ( sci-libs/lapacke-reference[tmg] )"
+
+S="${WORKDIR}/${MYP}"
+
+# TODO: virtual/{blas,cblas,lapack} serial and threaded. plasma works properly
+# with serial blas/lapack (see README). not doable dynamically with atlas
+
+static_to_shared() {
+ local libstatic=${1}; shift
+ local libname=$(basename ${libstatic%.a})
+ local soname=${libname}$(get_libname ${SOVER})
+ 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() {
+ # rename plasma to avoid collision (https://github.com/gentoo-science/sci/issues/34)
+ # lib name conflict with kde plasma, rename
+ PLASMA_LIBNAME=plasmca
+ sed -i \
+ -e "s/-lplasma/-l${PLASMA_LIBNAME}/g" \
+ -e "s/libplasma.a/lib${PLASMA_LIBNAME}.a/" \
+ Makefile.internal || die
+
+ # distributed pc file not so useful, so redo 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} -l${PLASMA_LIBNAME} -lcoreblas -lquark
+ Libs.private: -lm
+ Cflags: -I\${includedir}
+ Requires: blas cblas lapack lapacke hwloc
+ EOF
+}
+
+src_configure() {
+ cat <<-EOF > make.inc
+ ARCH = $(tc-getAR)
+ ARCHFLAGS = cr
+ RANLIB = $(tc-getRANLIB)
+ CC = $(tc-getCC)
+ FC = $(tc-getFC)
+ CFLAGS = ${CFLAGS} -DADD_ -fPIC $(has_version ">=virtual/lapacke-3.5" && echo "-DDOXYGEN_SHOULD_SKIP_THIS=1")
+ FFLAGS = ${FFLAGS} -fPIC
+ LOADER = $(tc-getFC)
+ LIBBLAS = $($(tc-getPKG_CONFIG) --libs blas)
+ LIBCBLAS = $($(tc-getPKG_CONFIG) --libs cblas)
+ LIBLAPACK = $($(tc-getPKG_CONFIG) --libs lapack) -ltmglib
+ LIBCLAPACK = $($(tc-getPKG_CONFIG) --libs lapacke)
+ $(use fortran && echo "PLASMA_F90 = 1")
+ EOF
+}
+
+src_compile() {
+ emake lib
+ #mv lib/libplasma.a lib/lib${PLASMA_LIBNAME}.a || die
+ static_to_shared quark/libquark.a $($(tc-getPKG_CONFIG --libs hwloc)) -pthread
+ static_to_shared lib/libcoreblas.a quark/libquark.so $($(tc-getPKG_CONFIG --libs cblas lapacke))
+ static_to_shared lib/lib${PLASMA_LIBNAME}.a quark/libquark.so lib/libcoreblas.so
+ if use static-libs; then
+ emake cleanall
+ sed 's/-fPIC//g' make.inc
+ emake lib
+ fi
+}
+
+src_test() {
+ emake test
+ cd testing
+ LD_LIBRARY_PATH="../lib:../quark:${LD_LIBRARY_PATH}" ./plasma_testing.py || die
+}
+
+src_install() {
+ dolib.so lib/lib*$(get_libname)* quark/libquark$(get_libname)*
+ use static-libs && dolib.a lib/lib*.a quark/libquark.a
+ insinto /usr/include/${PN}
+ doins quark/quark{,_unpack_args}.h quark/icl_{hash,list}.h include/*.h
+ use fortran && doins include/*.mod
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins ${PN}.pc
+ dodoc README ToDo ReleaseNotes
+ use doc && dodoc docs/pdf/*.pdf && dohtml docs/doxygen/out/html/*
+ if use examples; then
+ emake -C examples cleanall
+ insinto /usr/share/doc/${PF}
+ doins -r examples
+ fi
+}
+
+pkg_postinst() {
+ elog "The plasma linear algebra library file has been renamed ${PLASMA_LIBNAME}"
+ elog "to avoid collision with KDE plasma."
+ elog "Compile and link your programs using the following command:"
+ elog " pkg-config --cflags --libs plasma"
+}