From 2f5e92ccad73395c0aae63cbad530c64e4d7eb9a Mon Sep 17 00:00:00 2001 From: Mo Zhou Date: Tue, 9 Jul 2019 12:08:35 +0000 Subject: sci-libs/mkl-rt: Intel MKL runtime libraries with eselect-ldso mechanism. Closes: https://bugs.gentoo.org/672466 Closes: https://github.com/gentoo/gentoo/pull/12405 Signed-off-by: Mo Zhou Signed-off-by: Benda Xu --- sci-libs/mkl-rt/Manifest | 1 + sci-libs/mkl-rt/metadata.xml | 25 ++++++++++ sci-libs/mkl-rt/mkl-rt-2019.4.243.ebuild | 81 ++++++++++++++++++++++++++++++++ 3 files changed, 107 insertions(+) create mode 100644 sci-libs/mkl-rt/Manifest create mode 100644 sci-libs/mkl-rt/metadata.xml create mode 100644 sci-libs/mkl-rt/mkl-rt-2019.4.243.ebuild (limited to 'sci-libs/mkl-rt') diff --git a/sci-libs/mkl-rt/Manifest b/sci-libs/mkl-rt/Manifest new file mode 100644 index 000000000000..ee38f0cec318 --- /dev/null +++ b/sci-libs/mkl-rt/Manifest @@ -0,0 +1 @@ +DIST mkl-rt-2019.4.243.tar.bz2 213996111 BLAKE2B 04c04cd521d73b9c51341f60e69f41e3093403dcace370f2379db2cbceadcd3d64f6c06b25f8ffcbec31edbf0f0a46a9e454450e7f282cf91436093e770ea207 SHA512 a1f33806de2e1437cd3c1de088cbf117a5a3c41cf5f0003f680385d51c793d745229ec8fbd6587f03acfd25b7973912fdffbc0cf1f2360063edf2f4b0df0aa9d diff --git a/sci-libs/mkl-rt/metadata.xml b/sci-libs/mkl-rt/metadata.xml new file mode 100644 index 000000000000..9798851ed06c --- /dev/null +++ b/sci-libs/mkl-rt/metadata.xml @@ -0,0 +1,25 @@ + + + + + + https://software.intel.com/en-us/mkl + + + + Mo Zhou + lumin@debian.org + + + + Intel® Math Kernel Library (Intel® MKL) optimizes code with minimal + effort for future generations of Intel® processors. It is compatible + with your choice of compilers, languages, operating systems, and + linking and threading models. + + + + Enable runtime library switching by eselect and ld.so. + + + diff --git a/sci-libs/mkl-rt/mkl-rt-2019.4.243.ebuild b/sci-libs/mkl-rt/mkl-rt-2019.4.243.ebuild new file mode 100644 index 000000000000..5d2b0f31b254 --- /dev/null +++ b/sci-libs/mkl-rt/mkl-rt-2019.4.243.ebuild @@ -0,0 +1,81 @@ +# Copyright 2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit eutils + +DESCRIPTION="Intel Math Kernel Library (Runtime)" +HOMEPAGE="https://software.intel.com/en-us/mkl" +SRC_URI="https://repo.continuum.io/pkgs/main/linux-64/mkl-2019.4-243.tar.bz2 -> ${P}.tar.bz2" + +LICENSE="ISSL" # https://software.intel.com/en-us/mkl/license-faq +SLOT="0" +KEYWORDS="~amd64" +IUSE="eselect-ldso" + +# MKL uses Intel/LLVM OpenMP by default. +# One can change the threadding layer to "gnu" or "tbb" through the MKL_THREADING_LAYER env var. +RDEPEND=" +eselect-ldso? ( !app-eselect/eselect-cblas + >=app-eselect/eselect-blas-0.2 ) +sys-libs/libomp" + +DEPEND="" + +S=${WORKDIR} + +src_install () { + insinto /usr/$(get_libdir)/ + doins lib/*.so + + if use eselect-ldso; then + dodir /usr/$(get_libdir)/blas/mkl-rt + dosym ../../libmkl_rt.so usr/$(get_libdir)/blas/mkl-rt/libblas.so + dosym ../../libmkl_rt.so usr/$(get_libdir)/blas/mkl-rt/libblas.so.3 + dosym ../../libmkl_rt.so usr/$(get_libdir)/blas/mkl-rt/libcblas.so + dosym ../../libmkl_rt.so usr/$(get_libdir)/blas/mkl-rt/libcblas.so.3 + dosym ../../libomp.so usr/$(get_libdir)/blas/mkl-rt/libiomp5.so + dodir /usr/$(get_libdir)/lapack/mkl-rt + dosym ../../libmkl_rt.so usr/$(get_libdir)/lapack/mkl-rt/liblapack.so + dosym ../../libmkl_rt.so usr/$(get_libdir)/lapack/mkl-rt/liblapack.so.3 + dosym ../../libmkl_rt.so usr/$(get_libdir)/lapack/mkl-rt/liblapacke.so + dosym ../../libmkl_rt.so usr/$(get_libdir)/lapack/mkl-rt/liblapacke.so.3 + dosym ../../libomp.so usr/$(get_libdir)/lapack/mkl-rt/libiomp5.so + fi +} + +pkg_postinst () { + use eselect-ldso || return + local libdir=$(get_libdir) me="mkl-rt" + + # check blas + eselect blas add ${libdir} "${EROOT}"/usr/${libdir}/blas/${me} ${me} + local current_blas=$(eselect blas show ${libdir} | cut -d' ' -f2) + if [[ ${current_blas} == "${me}" || -z ${current_blas} ]]; then + eselect blas set ${libdir} ${me} + elog "Current eselect: BLAS/CBLAS ($libdir) -> [${current_blas}]." + else + elog "Current eselect: BLAS/CBLAS ($libdir) -> [${current_blas}]." + elog "To use blas [${me}] implementation, you have to issue (as root):" + elog "\t eselect blas set ${libdir} ${me}" + fi + + # check lapack + eselect lapack add ${libdir} "${EROOT}"/usr/${libdir}/lapack/${me} ${me} + local current_lapack=$(eselect lapack show ${libdir} | cut -d' ' -f2) + if [[ ${current_lapack} == "${me}" || -z ${current_lapack} ]]; then + eselect lapack set ${libdir} ${me} + elog "Current eselect: LAPACK ($libdir) -> [${current_blas}]." + else + elog "Current eselect: LAPACK ($libdir) -> [${current_blas}]." + elog "To use lapack [${me}] implementation, you have to issue (as root):" + elog "\t eselect lapack set ${libdir} ${me}" + fi +} + +pkg_postrm () { + if use eselect-ldso; then + eselect blas validate + eselect lapack validate + fi +} -- cgit v1.2.3-65-gdbad