diff --git a/sci-libs/openblas/openblas-9999.ebuild b/sci-libs/openblas/openblas-9999.ebuild index c5166a3..8e5a1cc 100644 --- a/sci-libs/openblas/openblas-9999.ebuild +++ b/sci-libs/openblas/openblas-9999.ebuild @@ -175,35 +175,34 @@ src_test() { src_install() { local MULTIBUILD_VARIANTS=( $(fortran-int64_multilib_get_enabled_abis) ) + local blas_symlinks=() + local cblas_symlinks=() + local profname=$(fortran-int64_get_profname) my_src_install() { local openblas_flags=$(get_openblas_flags) - local profname=$(fortran-int64_get_profname) - local pcfile - for pcfile in *.pc; do - local profname=${pcfile%.pc} - # The file /usr/include/openblas/openblas_config.h is generated during the install. - # The sed on config_last.h removes the #define's OPENBLAS_USE64BITINT - # OPENBLASS__32BIT__ OPENBLASS__64BIT__ OPENBLAS__ARCH_X86 OPENBLAS__ARCH_X86_64 - # from /usr/include/openblas/openblas_config.h. We then specify it in Cflags in - # the /usr/lib64/pkg-config/openblas-int64-{threads,openmp}.pc file. - sed -e '/#define USE64BITINT/d' \ - -e '/#define ARCH_X86/d' \ - -e '/#define __\(32\|64\)BIT__/d' \ - -i config_last.h \ - || die "Could not ensure there is no definition of USE64BITINT in config_last.h" - emake install \ - PREFIX="${ED}"usr ${openblas_flags} \ - OPENBLAS_INCLUDE_DIR="${ED}"usr/include/${PN} \ - OPENBLAS_LIBRARY_DIR="${ED}"usr/$(get_libdir) - use static-libs || rm "${ED}"usr/$(get_libdir)/lib*.a - alternatives_for $(fortran-int64_get_blas_provider) ${profname} 0 \ - /usr/$(get_libdir)/pkgconfig/$(fortran-int64_get_blas_provider).pc ${pcfile} - alternatives_for $(fortran-int64_get_cblas_provider) ${profname} 0 \ - /usr/$(get_libdir)/pkgconfig/$(fortran-int64_get_cblas_provider).pc ${pcfile} \ - /usr/include/cblas.h ${PN}/cblas.h - insinto /usr/$(get_libdir)/pkgconfig - doins ${pcfile} - done + local pcfile=${profname}.pc + # The file /usr/include/openblas/openblas_config.h is generated during the install. + # The sed on config_last.h removes the #define's OPENBLAS_USE64BITINT + # OPENBLASS__32BIT__ OPENBLASS__64BIT__ OPENBLAS__ARCH_X86 OPENBLAS__ARCH_X86_64 + # from /usr/include/openblas/openblas_config.h. We then specify it in Cflags in + # the /usr/lib64/pkg-config/openblas-int64-{threads,openmp}.pc file. + sed -e '/#define USE64BITINT/d' \ + -e '/#define ARCH_X86/d' \ + -e '/#define __\(32\|64\)BIT__/d' \ + -i config_last.h \ + || die "Could not ensure there is no definition of USE64BITINT in config_last.h" + emake install \ + PREFIX="${ED}"usr ${openblas_flags} \ + OPENBLAS_INCLUDE_DIR="${ED}"usr/include/${PN} \ + OPENBLAS_LIBRARY_DIR="${ED}"usr/$(get_libdir) + use static-libs || rm "${ED}"usr/$(get_libdir)/lib*.a + blas_symlinks+=(/usr/$(get_libdir)/pkgconfig/$(fortran-int64_get_blas_provider).pc ${pcfile}) + cblas_symlinks+=( + /usr/$(get_libdir)/pkgconfig/$(fortran-int64_get_cblas_provider).pc ${pcfile} + /usr/include/cblas.h ${PN}/cblas.h + ) + insinto /usr/$(get_libdir)/pkgconfig + doins ${pcfile} if [[ ${CHOST} == *-darwin* ]] ; then cd "${ED}"/usr/$(get_libdir) @@ -222,6 +221,9 @@ src_install() { multibuild_foreach_variant run_in_build_dir fortran-int64_multilib_multibuild_wrapper my_src_install multilib_install_wrappers + alternatives_for $(fortran-int64_get_blas_provider) ${profname} 0 "${blas_symlinks[@]}" + alternatives_for $(fortran-int64_get_cblas_provider) ${profname} 0 "${cblas_symlinks[@]}" + dodoc GotoBLAS_{01Readme,03FAQ,04FAQ,05LargePage,06WeirdPerformance}.txt dodoc *md Changelog.txt }