aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Fabbro <sfabbro@uvic.ca>2012-07-12 12:03:37 -0700
committerSebastien Fabbro <sfabbro@uvic.ca>2012-07-12 12:03:37 -0700
commitae684d0dec8e6746c5e3ce7e685fe4019b32163d (patch)
tree6983bf7584f8d2efe4fb91be8d501a38817cda8e
parentsci-libs/xblas: Shared library fixes, prefix love and ebuild cleanup (diff)
downloadsci-ae684d0dec8e6746c5e3ce7e685fe4019b32163d.tar.gz
sci-ae684d0dec8e6746c5e3ce7e685fe4019b32163d.tar.bz2
sci-ae684d0dec8e6746c5e3ce7e685fe4019b32163d.zip
sci-libs/magma: Shared library fixes, prefix love and ebuild cleanup
(Portage version: 2.2.01.20757-prefix/git/Linux x86_64, RepoMan options: --force, unsigned Manifest commit)
-rw-r--r--sci-libs/magma/ChangeLog4
-rw-r--r--sci-libs/magma/Manifest2
-rw-r--r--sci-libs/magma/magma-1.2.1.ebuild41
3 files changed, 30 insertions, 17 deletions
diff --git a/sci-libs/magma/ChangeLog b/sci-libs/magma/ChangeLog
index 460bde832..fce27effc 100644
--- a/sci-libs/magma/ChangeLog
+++ b/sci-libs/magma/ChangeLog
@@ -2,6 +2,9 @@
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
+ 12 Jul 2012; Sébastien Fabbro <bicatali@gentoo.org> magma-1.2.1.ebuild:
+ sci-libs/magma: Shared library fixes, prefix love and ebuild cleanup
+
*magma-1.2.1 (03 Jul 2012)
03 Jul 2012; Sébastien Fabbro <bicatali@gentoo.org>
@@ -18,4 +21,3 @@
+files/magma-1.2.0-duplicate-symbols.patch, +magma-1.2.0.ebuild,
+metadata.xml:
sci-libs/magma: Initial import
-
diff --git a/sci-libs/magma/Manifest b/sci-libs/magma/Manifest
index 9a312f75d..ff7c7903c 100644
--- a/sci-libs/magma/Manifest
+++ b/sci-libs/magma/Manifest
@@ -1 +1 @@
-DIST magma-1.2.1.tar.gz 2978267 RMD160 914c1cb21dee07cceb0099ec4c77e6affc6c2e3b SHA1 f843ac1364d1964e6cfd2ee69c57aff7727814c5 SHA256 a1036a9d523c2ec974c743e21a33a1a6aad1a61c8d4cb686ea08249749a0c73d SHA512 1c2045031a3d2df218e0717628ff0c0e1a074020b35b0146ee4c915e0d30ea9fa0b9a198014503a4f35f7ab15dd44d58e79339df17624c52f164b99bd86c6aac WHIRLPOOL 1efebb520cbae1ccf3a3435663d6e304c48948c05590bd866e4a82089bbf4147d37d730cea899471df8a24ded7a804bb86cc237cafbfcc93783578fc33caf975
+DIST magma-1.2.1.tar.gz 2978267 SHA256 a1036a9d523c2ec974c743e21a33a1a6aad1a61c8d4cb686ea08249749a0c73d SHA512 1c2045031a3d2df218e0717628ff0c0e1a074020b35b0146ee4c915e0d30ea9fa0b9a198014503a4f35f7ab15dd44d58e79339df17624c52f164b99bd86c6aac WHIRLPOOL 1efebb520cbae1ccf3a3435663d6e304c48948c05590bd866e4a82089bbf4147d37d730cea899471df8a24ded7a804bb86cc237cafbfcc93783578fc33caf975
diff --git a/sci-libs/magma/magma-1.2.1.ebuild b/sci-libs/magma/magma-1.2.1.ebuild
index 65b822c11..97108709e 100644
--- a/sci-libs/magma/magma-1.2.1.ebuild
+++ b/sci-libs/magma/magma-1.2.1.ebuild
@@ -5,7 +5,7 @@
EAPI=4
FORTRAN_STANDARD="77 90"
-inherit eutils fortran-2 toolchain-funcs versionator
+inherit eutils fortran-2 toolchain-funcs versionator multilib
DESCRIPTION="Matrix Algebra on GPU and Multicore Architectures"
HOMEPAGE="http://icl.cs.utk.edu/magma/"
@@ -18,21 +18,32 @@ IUSE="fermi static-libs tesla"
RDEPEND="dev-util/nvidia-cuda-toolkit
virtual/cblas
+ virtual/fortran
virtual/lapack"
DEPEND="${RDEPEND}
virtual/pkgconfig"
-make_shared_lib() {
- local libstatic=${1}
- local soname=$(basename "${1%.a}").so.$(get_major_version)
- shift
- einfo "Making ${soname}"
- ${LINK:-$(tc-getCC)} ${LDFLAGS} \
- -shared -Wl,-soname="${soname}" \
- -Wl,--whole-archive "${libstatic}" -Wl,--no-whole-archive \
- "$@" -o $(dirname "${libstatic}")/"${soname}" \
- || die "${soname} failed"
- ln -s "${soname}" $(dirname "${libstatic}")/"${soname%.*}"
+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() {
@@ -85,8 +96,8 @@ src_configure() {
src_compile() {
emake lib
- make_shared_lib lib/libmagma.a
- make_shared_lib lib/libmagmablas.a
+ static_to_shared lib/libmagma.a -lm -lpthread -ldl -lcublas -lcudart
+ LINK=$(tc-getFC) static_to_shared lib/libmagmablas.a -lm -lpthread -ldl -lcublas -lcudart
if use static-libs; then
emake cleanall
sed 's/-fPIC//g' make.inc
@@ -101,7 +112,7 @@ src_test() {
}
src_install() {
- dolib.so lib/lib*.so*
+ dolib.so lib/lib*$(get_libname)*
use static-libs && dolib.a lib/lib*.a
insinto /usr/include/${PN}
doins include/*.h