diff options
author | Sébastien Fabbro <bicatali@gentoo.org> | 2010-12-11 19:54:42 +0000 |
---|---|---|
committer | Sébastien Fabbro <bicatali@gentoo.org> | 2010-12-11 19:54:42 +0000 |
commit | be029d47c6c2a82c6e6afbbd5878a15cd2cc67a8 (patch) | |
tree | 080ded457581e7e9dd54206d68a8014888b97eb2 /sci-libs/atlas | |
parent | added blacs and scalapack eselect modules (diff) | |
download | bicatali-be029d47c6c2a82c6e6afbbd5878a15cd2cc67a8.tar.gz bicatali-be029d47c6c2a82c6e6afbbd5878a15cd2cc67a8.tar.bz2 bicatali-be029d47c6c2a82c6e6afbbd5878a15cd2cc67a8.zip |
fix renaming of collision libs
Diffstat (limited to 'sci-libs/atlas')
-rw-r--r-- | sci-libs/atlas/Manifest | 2 | ||||
-rw-r--r-- | sci-libs/atlas/atlas-3.9.32.ebuild | 89 |
2 files changed, 54 insertions, 37 deletions
diff --git a/sci-libs/atlas/Manifest b/sci-libs/atlas/Manifest index 304c110..e8c829e 100644 --- a/sci-libs/atlas/Manifest +++ b/sci-libs/atlas/Manifest @@ -2,6 +2,6 @@ DIST atlas3.8.3.tar.bz2 2527756 RMD160 0425e630d9d0c5b7aae81427a41b7eaa18447e90 DIST atlas3.9.32.tar.bz2 5079409 RMD160 a6f7dbd1ee13c9b3e3b4e9e28b706d037f19fe99 SHA1 77a448ebe779745ee916dcd22922255c7dc340db SHA256 8aa87f1d72802de691d4366c3b579644c2073a2ace81959d6dff6d6717b1c8a9 DIST lapack-3.3.0.tgz 6064824 RMD160 cc72e7c93ab13464fd892d684b00b910cbbd3b3e SHA1 4f0b103da52110e7f60d1d7676727103aca9785e SHA256 bc531761287156e17476395c42664a15373723f54a6f80f192cda47771ec1225 EBUILD atlas-3.8.3.ebuild 6114 RMD160 9418ed1ff693a46614aa1b80d79279ac9f84ccd7 SHA1 66c8d633124db4cb9521851fe9105d14639e38c0 SHA256 c80cb45fd453852dc40bacde75fa871960fbc2e62c9b768f01e101280133e5fe -EBUILD atlas-3.9.32.ebuild 5318 RMD160 16615a4ceac90d6eaca5fbd10d3293963c40457e SHA1 ad7d621a183ff927e4550414746a90ce3fedfe2a SHA256 a8399eab050748effe6360bc142efe1a95d36ffb64883a941617c7b8be4edd06 +EBUILD atlas-3.9.32.ebuild 6004 RMD160 31aa15493f190c89ddf20b3f549cec9d83c8d76b SHA1 909619f74a5461de568f03068bc7eb929617c0a2 SHA256 b20ecb7f59cb5a3e879b98ed95f69a94d0aaa3aa92b7ad0d70736cfe9bf31619 MISC ChangeLog 431 RMD160 5029ae5bb2dbcffadeb2485dc2d661e16c4bb7c8 SHA1 48b805b587c2d16f4994ab0a94f1199c9ca74528 SHA256 27c95c5cd6c008e15c7e0dae1b3c6acee327c2b17de8646cee33d3efd66331bc MISC metadata.xml 726 RMD160 e43f5ea9c594bbe2174f6640bbfdccd8b17d4a68 SHA1 0ab8c05e7925b4716d8c94acd952bf3ab85165cb SHA256 27ef4eee7e645ad923644830d057db45d32342ad250ad903ff10915a9ca068fd diff --git a/sci-libs/atlas/atlas-3.9.32.ebuild b/sci-libs/atlas/atlas-3.9.32.ebuild index 2b2f391..07f97ce 100644 --- a/sci-libs/atlas/atlas-3.9.32.ebuild +++ b/sci-libs/atlas/atlas-3.9.32.ebuild @@ -3,7 +3,7 @@ # $Header: $ EAPI=3 -inherit eutils toolchain-funcs multilib +inherit eutils toolchain-funcs multilib versionator LAPACKP=lapack-3.3.0 @@ -25,6 +25,15 @@ DEPEND="${RDEPEND} S="${WORKDIR}/ATLAS" +make_shared_lib() { + local soname=$(basename "${1%.a}").so.${3:-$(get_major_version)} + einfo "Making ${soname}" + ${2} ${LDFLAGS} \ + -shared -Wl,-soname="${soname}" \ + -Wl,--whole-archive "${1}" -Wl,--no-whole-archive \ + -o $(dirname "${1}")/"${soname}" || return 1 +} + pkg_setup() { if [[ -n $(type -P cpufreq-info) ]]; then [[ -z $(cpufreq-info -d) ]] && return @@ -102,7 +111,7 @@ src_configure() { fi mkdir "${S}_build_shared" && cd "${S}_build_shared" - myconf+=( "--shared" ) + myconf+=( "-Fa alg -fPIC" ) "${S}"/configure ${myconf[@]} || die "configure shared failed" } @@ -111,13 +120,28 @@ src_compile() { if use static-libs; then cd "${S}_build_static" emake -j1 build || die "emake static failed" + cd lib + emake libclapack.a || die + # rename to avoid collisions + mv lib{,a}cblas.a && [[ -e liblapack.a ]] && mv lib{,a}lapack.a fi cd "${S}_build_shared" emake -j1 build || die "emake static with PIC failed" cd lib - local alibs="shared cshared" - [[ -e libptcblas.a ]] && alibs="${alibs} ptshared ptcshared" - emake ${alibs} || die "emake shared libs failed" + emake libclapack.a || die + # rename to avoid collisions + mv lib{,a}cblas.a && [[ -e liblapack.a ]] && mv lib{,a}lapack.a + make_shared_lib libatlas.a $(tc-getCC) || die + make_shared_lib libacblas.a $(tc-getCC) 1 || die + make_shared_lib libclapack.a $(tc-getCC) || die + if use fortran; then + make_shared_lib libf77blas.a $(tc-getFC) 1 || die + use lapack && make_shared_lib libalapack.a $(tc-getFC) 3 || die + fi + if [[ -e libptcblas.a ]]; then + make_shared_lib libptcblas.a $(tc-getCC) 1 || die + use fortran && make_shared_lib libptf77blas.a $(tc-getCC) 1 || die + fi } src_test() { @@ -126,65 +150,58 @@ src_test() { emake -j1 time || die "emake time failed" } -# atlas_install <blas|cblas|lapack> <lib> -atlas_install() { - local iname=${1} ilib=${2} - if [[ ${iname} == ${ilib} ]]; then - # rename to avoid conflict with linked configurations - mv "${ED}"/usr/$(get_libdir)/lib{,a}${ilib}.so - use static-libs && "${ED}"/usr/$(get_libdir)/lib{,a}${ilib}.a - ilib=a${ilib} - fi - local prof=${PN}-${iname} ptlibs= - if [[ ${ilib:0:2} == pt ]]; then - prof=${prof}-threads - ptlibs="-lthreads" - fi +# atlas_make_profile <blas|cblas|lapack> <lib> +atlas_make_profile() { + local name=${1}; shift + local prof=${PN}-${name} + [[ ${libs} =~ pt ]] && prof=${prof}-threads cat <<-EOF > ${prof}.pc prefix=${EPREFIX}/usr libdir=\${prefix}/$(get_libdir) includedir=\${prefix}/include Name: ${prof} - Description: ${DESCRIPTION} ${iname} implementation + Description: ${DESCRIPTION} ${name} implementation Version: ${PV} URL: ${HOMEPAGE} - Libs: -L\${libdir} -latlas -l${ilib} ${ptlibs} + Libs: -L\${libdir} $@ -latlas Private: -lm Cflags: -I\${includedir}/${PN} - $([[ ${1} == lapack ]] && echo "Requires: blas") + $([[ ${1} == lapack ]] && echo "Requires: cblas blas") EOF insinto /usr/$(get_libdir)/pkgconfig doins ${prof}.pc || die - echo > eselect.${iname}.${prof} \ - "${prof}.pc ${EPREFIX}/usr/$(get_libdir)/pkgconfig/${iname}.pc" - if [[ ${iname} == cblas ]]; then - echo >> eselect.${iname}.${prof} \ + echo > eselect.${name}.${prof} \ + "${prof}.pc ${EPREFIX}/usr/$(get_libdir)/pkgconfig/${name}.pc" + if [[ ${name} == cblas ]]; then + echo >> eselect.${name}.${prof} \ "${PN}/cblas.h ${EPREFIX}/usr/include/cblas.h" fi - eselect ${iname} add $(get_libdir) eselect.${iname}.${prof} ${prof} + eselect ${name} add $(get_libdir) eselect.${name}.${prof} ${prof} } src_install() { # do a loop to make sure we install the same in shared/static local l - for l in "${S}_build_shared"/lib/lib*.so; do - dolib.so "${l}" || die + for l in "${S}_build_shared"/lib/lib*.so.*; do if use static-libs; then dolib.a "${l/_shared/_static}".a || die fi + dolib.so "${l}" || die + l=$(basename "${l}") + dosym ${l} /usr/$(get_libdir)/${l%.*} done - atlas_install cblas cblas + atlas_make_profile cblas -lacblas if use fortran; then - atlas_install blas f77blas - use lapack && atlas_install lapack lapack + atlas_make_profile blas -lf77blas + use lapack && atlas_make_profile lapack -lalapack fi - if [[ -e "${S}_build_shared"/lib/libptcblas.so ]]; then - atlas_install cblas ptcblas - use fortran && atlas_install blas ptf77blas + if [[ -e ${S}_build_shared/lib/libptcblas.a ]]; then + atlas_make_profile cblas -lptcblas -lpthread + use fortran && atlas_make_profile blas -lptf77blas -lpthread fi insinto /usr/include/${PN} doins include/*.h || die - #dosym atlas/clapack.h /usr/include/clapack.h + dosym atlas/clapack.h /usr/include/clapack.h cd doc dodoc INDEX.txt AtlasCredits.txt ChangeLog |