diff options
author | 2012-07-12 11:47:26 -0700 | |
---|---|---|
committer | 2012-07-12 11:47:26 -0700 | |
commit | b576dfa5b63b501e84f328348c154b6d48b2f071 (patch) | |
tree | 0e5a63f5dda5986232f8a62b5acce454815db686 /sci-libs/mpiblacs | |
parent | sci-libs/fdlibm: Shared library fixes and prefix love (diff) | |
download | sci-b576dfa5b63b501e84f328348c154b6d48b2f071.tar.gz sci-b576dfa5b63b501e84f328348c154b6d48b2f071.tar.bz2 sci-b576dfa5b63b501e84f328348c154b6d48b2f071.zip |
sci-libs/mpiblacs: Shared library fixes and prefix love
(Portage version: 2.2.01.20757-prefix/git/Linux x86_64, RepoMan options: --force, unsigned Manifest commit)
Diffstat (limited to 'sci-libs/mpiblacs')
-rw-r--r-- | sci-libs/mpiblacs/ChangeLog | 4 | ||||
-rw-r--r-- | sci-libs/mpiblacs/Manifest | 2 | ||||
-rw-r--r-- | sci-libs/mpiblacs/mpiblacs-1.1-r1.ebuild | 58 |
3 files changed, 38 insertions, 26 deletions
diff --git a/sci-libs/mpiblacs/ChangeLog b/sci-libs/mpiblacs/ChangeLog index 94d7b6ebc..b4e36f91f 100644 --- a/sci-libs/mpiblacs/ChangeLog +++ b/sci-libs/mpiblacs/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> mpiblacs-1.1-r1.ebuild: + sci-libs/mpiblacs: Shared library fixes and prefix love + 23 Feb 2012; Sébastien Fabbro <bicatali@gentoo.org> -mpiblacs-1.1.ebuild, mpiblacs-1.1-r1.ebuild: Removed old, blocking scalapack > 2 @@ -25,4 +28,3 @@ 06 Dec 2010; Sébastien Fabbro <bicatali@gentoo.org> +mpiblacs-1.1.ebuild, +metadata.xml: Initial import - diff --git a/sci-libs/mpiblacs/Manifest b/sci-libs/mpiblacs/Manifest index a18916229..54fae6761 100644 --- a/sci-libs/mpiblacs/Manifest +++ b/sci-libs/mpiblacs/Manifest @@ -1,3 +1,3 @@ -DIST blacstester.tgz 81937 RMD160 bfee4918d04f6577ea021bc466cd16d6d007ac1d SHA1 d85ebb1cb2bad051242609504d27773e54c4ae00 SHA256 7e5a67b703f74f05435055dd314a7196007d9a273e6bb46058a19be71d3ba197 +DIST blacstester.tgz 81937 SHA256 7e5a67b703f74f05435055dd314a7196007d9a273e6bb46058a19be71d3ba197 DIST mpiblacs-patch03.tgz 30505 SHA256 92dfba8a462a2f23102000a10532c00a9a5203b79ccad5a87f44ce83eb6bc7ed SHA512 ed1513461ee5578548b6d30cc906b156ea08da52b6365851e03aa9578aaa466aabee3b505ed3028e09eeb63288eff7be6bc3ed523e2ff8d824ec8a827a092279 WHIRLPOOL 0226afe82315acc51adcb9901089783d9514c7038fdc5ca2cd29d34617484914456db2289193c4f2319397e25472798f156d25bf7bed7dca97e7c11e2b3106fa DIST mpiblacs.tgz 152823 SHA256 88dd7265d412022948debb7a2737226cd53a3bf73b0b62fc55ceb3ccc8a598f7 SHA512 00f28b77727740a115a337cb86411556a7653c072c380ee9d1428ce62a101183ac3f60bd016a590bdb320e6b97680a1c8cd16f2e688ba4f53f7ced058950f325 WHIRLPOOL 76617c3985e4248c8b85240d99dcb1fbb85b906dc56dd37ca8b841b937535e623a11737080fb275dc3ed67d94edf9eb0aba34da2d97a8798bef9be6696b49bb0 diff --git a/sci-libs/mpiblacs/mpiblacs-1.1-r1.ebuild b/sci-libs/mpiblacs/mpiblacs-1.1-r1.ebuild index c7ff691b4..55d6d2b1c 100644 --- a/sci-libs/mpiblacs/mpiblacs-1.1-r1.ebuild +++ b/sci-libs/mpiblacs/mpiblacs-1.1-r1.ebuild @@ -3,7 +3,7 @@ # $Header: $ EAPI=4 -inherit eutils toolchain-funcs versionator alternatives-2 +inherit eutils toolchain-funcs versionator alternatives-2 multilib DESCRIPTION="Basic Linear Algebra Communication Subprograms with MPI" HOMEPAGE="http://www.netlib.org/blacs/" @@ -13,27 +13,38 @@ SRC_URI="${HOMEPAGE}/${PN}.tgz LICENSE="BSD" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" IUSE="static-libs test" RDEPEND="virtual/mpi[fortran] virtual/blas !>sci-libs/scalapack-2" DEPEND="${RDEPEND} - dev-util/pkgconfig" + virtual/pkgconfig" S="${WORKDIR}/BLACS" -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() { @@ -67,11 +78,9 @@ src_compile() { F77FLAGS="${FFLAGS} -fPIC" \ CCFLAGS="${CFLAGS} -fPIC" \ mpi - cd LIB - LINK=mpif77 make_shared_lib lib${PN}.a - LINK=mpicc make_shared_lib lib${PN}Cinit.a -L. -l${PN} - LINK=mpif77 make_shared_lib lib${PN}F77init.a -L. -l${PN} - cd "${S}" + LINK=mpif77 static_to_shared LIB/lib${PN}.a + LINK=mpicc static_to_shared LIB/lib${PN}Cinit.a -LLIB -l${PN} + LINK=mpif77 static_to_shared LIB/lib${PN}F77init.a -LLIB -l${PN} if use static-libs; then emake clean -C SRC/MPI && rm -f LIB/*.a emake mpi @@ -91,7 +100,7 @@ src_test() { src_install() { pushd LIB - dolib.so lib*.so* + dolib.so lib*$(get_libname)* use static-libs && dolib.a lib*.a cat <<-EOF > ${PN}.pc prefix=${EPREFIX}/usr @@ -101,18 +110,19 @@ src_install() { Description: ${DESCRIPTION} Version: ${PV} URL: ${HOMEPAGE} - Libs: -L\${libdir} -l${PN} -l${PN}Cinit -l${PN}F77init -lm + Libs: -L\${libdir} -l${PN} -l${PN}Cinit -l${PN}F77init + Private: -lm Cflags: -I\${includedir}/${PN} Requires: blas EOF insinto /usr/$(get_libdir)/pkgconfig doins ${PN}.pc || die alternatives_for blacs ${PN} 0 \ - "/usr/$(get_libdir)/pkgconfig/blacs.pc" "${PN}.pc" - popd + /usr/$(get_libdir)/pkgconfig/blacs.pc ${PN}.pc + popd > /dev/null - pushd SRC/MPI + pushd SRC/MPI > /dev/null insinto /usr/include/blacs doins Bconfig.h Bdef.h - popd + popd > /dev/null } |