diff options
author | Mo Zhou <cdluminate@gmail.com> | 2019-07-09 12:08:35 +0000 |
---|---|---|
committer | Benda Xu <heroxbd@gentoo.org> | 2019-07-09 23:44:15 +0800 |
commit | 2f5e92ccad73395c0aae63cbad530c64e4d7eb9a (patch) | |
tree | 7761a490c5d1a90313777dc2156eb4572db6153a /sci-libs | |
parent | license/ISSL: add ISSL license. (diff) | |
download | gentoo-2f5e92ccad73395c0aae63cbad530c64e4d7eb9a.tar.gz gentoo-2f5e92ccad73395c0aae63cbad530c64e4d7eb9a.tar.bz2 gentoo-2f5e92ccad73395c0aae63cbad530c64e4d7eb9a.zip |
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 <cdluminate@gmail.com>
Signed-off-by: Benda Xu <heroxbd@gentoo.org>
Diffstat (limited to 'sci-libs')
-rw-r--r-- | sci-libs/mkl-rt/Manifest | 1 | ||||
-rw-r--r-- | sci-libs/mkl-rt/metadata.xml | 25 | ||||
-rw-r--r-- | sci-libs/mkl-rt/mkl-rt-2019.4.243.ebuild | 81 |
3 files changed, 107 insertions, 0 deletions
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 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + + <upstream> + <doc>https://software.intel.com/en-us/mkl</doc> + </upstream> + + <maintainer type="person"> + <name>Mo Zhou</name> + <email>lumin@debian.org</email> + </maintainer> + + <longdescription> + 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. + </longdescription> + + <use> + <flag name="eselect-ldso">Enable runtime library switching by eselect and ld.so.</flag> + </use> + +</pkgmetadata> 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 +} |