summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMo Zhou <cdluminate@gmail.com>2019-07-09 12:08:35 +0000
committerBenda Xu <heroxbd@gentoo.org>2019-07-09 23:44:15 +0800
commit2f5e92ccad73395c0aae63cbad530c64e4d7eb9a (patch)
tree7761a490c5d1a90313777dc2156eb4572db6153a /sci-libs
parentlicense/ISSL: add ISSL license. (diff)
downloadgentoo-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/Manifest1
-rw-r--r--sci-libs/mkl-rt/metadata.xml25
-rw-r--r--sci-libs/mkl-rt/mkl-rt-2019.4.243.ebuild81
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
+}