summaryrefslogtreecommitdiff
path: root/sci-libs/mkl
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-06-13 10:39:22 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-06-13 10:39:22 +0100
commit9452a6e87b6c2c70513bc47a2470bf9f1168920e (patch)
tree8ac67e26b45f34d71c5aab3621813b100a0d5f00 /sci-libs/mkl
parentf516638b7fe9592837389826a6152a7e1b251c54 (diff)
gentoo resync : 13.06.2020
Diffstat (limited to 'sci-libs/mkl')
-rw-r--r--sci-libs/mkl/Manifest4
-rw-r--r--sci-libs/mkl/files/mkl-10.0.2.018-openmpi.patch4
-rw-r--r--sci-libs/mkl/files/mkl-10.0.2.018-tests.patch21
-rw-r--r--sci-libs/mkl/mkl-10.0.5.025.ebuild367
4 files changed, 3 insertions, 393 deletions
diff --git a/sci-libs/mkl/Manifest b/sci-libs/mkl/Manifest
index 18b63ca9034f..96cd5d09d210 100644
--- a/sci-libs/mkl/Manifest
+++ b/sci-libs/mkl/Manifest
@@ -1,6 +1,4 @@
-AUX mkl-10.0.2.018-openmpi.patch 332 BLAKE2B d438bc03fa7f4750ac32423075f960c8bff90230fe303932deecf96a7fe3023fafc59e90cd187711f972d6a3020c87b925fd16868532a0367540ce9a85d2a1f9 SHA512 5efb139622a6f0e8f03c5a76a12298685a9dfe9e816b8eaabd2874fda6c0d468a111a46df8e6885cd62a40ec611c322a99762a805dc74a4c684c85fdf222b530
-AUX mkl-10.0.2.018-tests.patch 528 BLAKE2B 483a6ccc83c04594e265680078e6515f0d3a601dad5c02d8140e800dc79635a8851a42cbad3d972f115e040d02b2a6414c8a4c01bc05490fcaf1f12350144c4f SHA512 6dd716f5d6764cd79c6de22703729d77be71f35e5f600a11f01ccff06c87309471ac5289e68ef40ae830d5917cbd20d4b2b9f1b5554384977f1b83c4b3556382
+AUX mkl-10.0.2.018-openmpi.patch 331 BLAKE2B 2472d459c1e3e90f6efaa1bf0941a02f2c71b24712be71fbc6be23dd53743468b8af88df49e49510344aff7b7f334940bfd5574f146eb5c82dc79a2bb0920f34 SHA512 b097815a369e8d743e77fd45ff52ad1cbe5f6d608e4bbe43d9c2cb54301c0d76960b7ce314bdbd5cd06c51e32332c9275360fe811b93df712710e359a4afab60
DIST l_mkl_p_10.0.5.025.tgz 230389719 BLAKE2B 622dd0076c8e6d747f170685b6a378db95aa2453d15a53c93ef863729bb8dc76409d7bf72f8bab8ef9a07d8efe1e448cb9e7fc8e6f0c0b2cbbf0a0f6944e2a86 SHA512 621c3bfdecb57313e375424e391c0630a29efd70196e3e4bfc5b4ddd03aa45fda4761523652d875f2e60d466a0010c06659306b11f20966fba4943c308fa6f84
EBUILD mkl-10.0.5.025-r1.ebuild 9829 BLAKE2B ac549f14e7c68b899a05369cc1c52670de2fabe5c07cb9def15f040e57b16eb1471a738c6db1d4133b06b38e59826bd62b494c289afda17e19cb79c923a7486d SHA512 2e09cf66221de13e9331ec0935944a878cb4de36fa36c580abd883ee7aff0d194b705935bb6e1e86b8e9d6ba3f86590e6048bbd1b0127a624e63fca1f944668b
-EBUILD mkl-10.0.5.025.ebuild 9958 BLAKE2B 266471c412fb94d3afa16c70c3354f801217bf1e13c63c91ba2a6a09ff6df563e48ec0e611ef7198f3fd807744197dafdacc7acbedd23da881efd6bcb0389d72 SHA512 cc58f9d6099a6abefa15ec0f83c2665001ea9897a6650e816cc214017a62fab863218803a697e50176e1eeb6e9b7ea8828b25308fed27d1c6e04adfd97a0f5ce
MISC metadata.xml 882 BLAKE2B 420f779849ebf2b4191156df6328233e0d474fe7ed1ced6505cfa3136b780a4029eb7f7df52a357287376252704d7215c98f2562689061e4fe5d1b420f2fcb22 SHA512 9909f91bb7389c3bcecc25935f7d7fc03c4b91c26990a188e3597be0818d94aec644f7cc9786cf673321c1136738e4738ae775019ab423019450e49725788be8
diff --git a/sci-libs/mkl/files/mkl-10.0.2.018-openmpi.patch b/sci-libs/mkl/files/mkl-10.0.2.018-openmpi.patch
index 6f7f9edebb0f..0519b5fdebdb 100644
--- a/sci-libs/mkl/files/mkl-10.0.2.018-openmpi.patch
+++ b/sci-libs/mkl/files/mkl-10.0.2.018-openmpi.patch
@@ -1,5 +1,5 @@
---- interfaces/fftw2x_cdft/makefile.orig 2008-03-11 23:26:26.287984332 +0000
-+++ interfaces/fftw2x_cdft/makefile 2008-03-13 10:56:44.755095617 +0000
+--- a/interfaces/fftw2x_cdft/makefile 2008-03-11 23:26:26.287984332 +0000
++++ b/interfaces/fftw2x_cdft/makefile 2008-03-13 10:56:44.755095617 +0000
@@ -172,6 +172,15 @@
endif
diff --git a/sci-libs/mkl/files/mkl-10.0.2.018-tests.patch b/sci-libs/mkl/files/mkl-10.0.2.018-tests.patch
deleted file mode 100644
index 975170f7dbc0..000000000000
--- a/sci-libs/mkl/files/mkl-10.0.2.018-tests.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- tests/scalapack/make.inc.orig 2008-03-13 22:36:06.119890888 +0000
-+++ tests/scalapack/make.inc 2008-03-13 22:54:58.201781899 +0000
-@@ -59,6 +59,9 @@
- IFACE_PART = _ilp64
- COPTS = -DMKL_ILP64
- FOPTS = -i8
-+ifeq ($(compiler),gnu)
-+FOPTS = -fdefault-integer-8
-+endif
- else
- ADD_IFACE = _lp64
- IFACE_PART = _lp64
-@@ -203,7 +206,7 @@
- # Compiler flags
- F77FLAGS=-w -u $(OPTS)
- ifeq ($(comp),gnu)
--F77FLAGS=$(OPTS) -ff90 -fno-globals -Wno-globals
-+F77FLAGS=$(OPTS)
- endif
- # Remove objects variable
- RMOBJ=rm -f *.o core work.pc*
diff --git a/sci-libs/mkl/mkl-10.0.5.025.ebuild b/sci-libs/mkl/mkl-10.0.5.025.ebuild
deleted file mode 100644
index d731a62613d5..000000000000
--- a/sci-libs/mkl/mkl-10.0.5.025.ebuild
+++ /dev/null
@@ -1,367 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit check-reqs eutils fortran-2 multilib toolchain-funcs
-
-PID=1232
-PB=${PN}
-P_ARCHIVE=l_${PN}_p_${PV}
-
-DESCRIPTION="Intel(R) Math Kernel Library: linear algebra, fft, math functions"
-HOMEPAGE="https://software.intel.com/en-us/mkl"
-SRC_URI="http://registrationcenter-download.intel.com/irc_nas/${PID}/${P_ARCHIVE}.tgz"
-
-SLOT="0"
-LICENSE="Intel-SDP"
-KEYWORDS="-* amd64 ~ia64 x86"
-IUSE="doc fftw fortran95 int64 mpi"
-
-RESTRICT="bindist strip mirror"
-
-DEPEND="
- app-eselect/eselect-blas
- app-eselect/eselect-cblas
- app-eselect/eselect-lapack"
-RDEPEND="${DEPEND}
- doc? ( app-doc/blas-docs app-doc/lapack-docs )
- mpi? ( virtual/mpi )"
-
-MKL_DIR=/opt/intel/${PN}/${PV}
-INTEL_LIC_DIR=/opt/intel/licenses
-
-CHECKREQS_DISK_BUILD=3500M
-
-QA_PREBUILT="opt/intel/${PN}/${PV}/*"
-
-get_fcomp() {
- case $(tc-getFC) in
- *gfortran* )
- FCOMP="gfortran" ;;
- ifort )
- FCOMP="ifc" ;;
- * )
- FCOMP=$(tc-getFC) ;;
- esac
-}
-
-pkg_setup() {
- check-reqs_pkg_setup
- fortran-2_pkg_setup
- # Check the license
- if [[ -z ${MKL_LICENSE} ]]; then
- MKL_LICENSE="$(grep -ls MKern ${ROOT}${INTEL_LIC_DIR}/* | tail -n 1)"
- MKL_LICENSE=${MKL_LICENSE/${ROOT}/}
- fi
- if [[ -z ${MKL_LICENSE} ]]; then
- eerror "Did not find any valid mkl license."
- eerror "Register at ${HOMEPAGE} to receive a license"
- eerror "and place it in ${INTEL_LIC_DIR} or run:"
- eerror "export MKL_LICENSE=/my/license/file emerge mkl"
- die "license setup failed"
- fi
-
- # Check if we have enough free diskspace to install
- CHECKREQS_DISK_BUILD="1100M"
- check-reqs_pkg_setup
-
- # Check and setup fortran
- if use fortran95; then
- # blas95 and lapack95 don't compile with gfortran < 4.2
- [[ $(tc-getFC) =~ (gfortran|g77) ]] && [[ $(gcc-major-version)$(gcc-minor-version) -lt 42 ]] &&
- die "blas95 and lapack95 don't compile with gfortran < 4.2"
- fi
- MKL_FC="gnu"
- [[ $(tc-getFC) =~ if ]] && MKL_FC="intel"
-
- # build profiles according to what compiler is installed
- MKL_CC="gnu"
- [[ $(tc-getCC) == icc ]] && MKL_CC="intel"
-
- if has_version sys-cluster/mpich; then
- MKL_MPI=mpich
- elif has_version sys-cluster/mpich2; then
- MKL_MPI=mpich2
- elif has_version sys-cluster/openmpi; then
- MKL_MPI=openmpi
- else
- MKL_MPI=intelmpi
- fi
- get_fcomp
-}
-
-src_unpack() {
- default
- cd "${WORKDIR}/${P_ARCHIVE}"/install || die
-
- cp ${MKL_LICENSE} "${WORKDIR}"/ || die
- MKL_LIC="$(basename ${MKL_LICENSE})"
-
- # binary blob extractor installs rpm leftovers in /opt/intel
- addwrite /opt/intel
- # undocumented features: INSTALLMODE_mkl=NONRPM
-
- # We need to install mkl non-interactively.
- # If things change between versions, first do it interactively:
- # tar xf l_*; ./install.sh --duplicate mkl.ini;
- # The file will be instman/mkl.ini
- # Then check it and modify the ebuild-created one below
- # --norpm is required to be able to install 10.x
- cat > mkl.ini <<-EOF
- [MKL]
- EULA_ACCEPT_REJECT=ACCEPT
- FLEXLM_LICENSE_LOCATION=${WORKDIR}/${MKL_LIC}
- INSTALLMODE_mkl=NONRPM
- INSTALL_DESTINATION=${S}
- EOF
- einfo "Extracting ..."
- ./install \
- --silent ./mkl.ini \
- --installpath "${S}" \
- --log log.txt &> /dev/null
-
- if [[ -z $(find "${S}" -name libmkl.so) ]]; then
- eerror "Could not find extracted files"
- eerror "See ${PWD}/log.txt to see why"
- die "extracting failed"
- fi
-}
-
-src_prepare() {
- # remove left over
- rm -f /opt/intel/.*mkl*.log /opt/intel/intel_sdp_products.db || die
-
- # remove unused stuff and set up intel names
- rm -rf "${WORKDIR}"/l_* || die
-
- # allow openmpi to work
- epatch "${FILESDIR}"/${PN}-10.0.2.018-openmpi.patch
- # make scalapack tests work for gfortran
- #epatch "${FILESDIR}"/${PN}-10.0.2.018-tests.patch
- case ${ARCH} in
- x86) MKL_ARCH=32
- MKL_KERN=ia32
- rm -rf lib*/{em64t,64} || die
- ;;
-
- amd64) MKL_ARCH=em64t
- MKL_KERN=em64t
- rm -rf lib*/{32,64} || die
- ;;
-
- ia64) MKL_ARCH=64
- MKL_KERN=ipf
- rm -rf lib*/{32,em64t} || die
- ;;
- esac
- MKL_LIBDIR=${MKL_DIR}/lib/${MKL_ARCH}
- # fix env scripts
- sed -i \
- -e "s:${S}:${MKL_DIR}:g" \
- tools/environment/*sh || die "sed support file failed"
-}
-
-src_compile() {
- cd "${S}"/interfaces || die
- if use fortran95; then
- einfo "Compiling fortan95 static lib wrappers"
- local myconf="lib${MKL_ARCH}"
- [[ $(tc-getFC) =~ gfortran ]] && \
- myconf="${myconf} FC=gfortran"
- if use int64; then
- myconf="${myconf} interface=ilp64"
- [[ $(tc-getFC) =~ gfortran ]] && \
- myconf="${myconf} FOPTS=-fdefault-integer-8"
- fi
- local x
- for x in blas95 lapack95; do
- pushd ${x} > /dev/null || die
- emake ${myconf}
- popd > /dev/null || die
- done
- fi
-
- if use fftw; then
- local fftwdirs="fftw2xc fftw2xf fftw3xc fftw3xf"
- local myconf="lib${MKL_ARCH} compiler=${MKL_CC}"
- if use mpi; then
- fftwdirs="${fftwdirs} fftw2x_cdft"
- myconf="${myconf} mpi=${MKL_MPI}"
- fi
- einfo "Compiling fftw static lib wrappers"
- local x
- for x in ${fftwdirs}; do
- pushd ${x} > /dev/null || die
- emake ${myconf}
- popd > /dev/null || die
- done
- fi
-}
-
-src_test() {
- cd "${S}"/tests
- local myconf
- local testdirs="blas cblas"
- use int64 && myconf="${myconf} interface=ilp64"
- # buggy with g77 and gfortran
- #if use mpi; then
- # testdirs="${testdirs} scalapack"
- # myconf="${myconf} mpi=${MKL_MPI}"
- #fi
- for x in ${testdirs}; do
- pushd ${x}
- einfo "Testing ${x}"
- emake \
- compiler=${MKL_FC} \
- ${myconf} \
- so${MKL_ARCH}
- popd
- done
-}
-
-mkl_make_generic_profile() {
- cd "${S}" || die
- # produce eselect files
- # don't make them in FILESDIR, it changes every major version
- cat > eselect.blas <<-EOF
- ${MKL_LIBDIR}/libmkl_${MKL_KERN}.a /usr/@LIBDIR@/libblas.a
- ${MKL_LIBDIR}/libmkl.so /usr/@LIBDIR@/libblas.so
- ${MKL_LIBDIR}/libmkl.so /usr/@LIBDIR@/libblas.so.0
- EOF
- cat > eselect.cblas <<-EOF
- ${MKL_LIBDIR}/libmkl_${MKL_KERN}.a /usr/@LIBDIR@/libcblas.a
- ${MKL_LIBDIR}/libmkl.so /usr/@LIBDIR@/libcblas.so
- ${MKL_LIBDIR}/libmkl.so /usr/@LIBDIR@/libcblas.so.0
- ${MKL_DIR}/include/mkl_cblas.h /usr/include/cblas.h
- EOF
- cat > eselect.lapack <<-EOF
- ${MKL_LIBDIR}/libmkl_lapack.a /usr/@LIBDIR@/liblapack.a
- ${MKL_LIBDIR}/libmkl_lapack.so /usr/@LIBDIR@/liblapack.so
- ${MKL_LIBDIR}/libmkl_lapack.so /usr/@LIBDIR@/liblapack.so.0
- EOF
-}
-
-# usage: mkl_add_profile <profile> <interface_lib> <thread_lib> <rtl_lib>
-mkl_add_profile() {
- cd "${S}" || die
- local prof=${1}
- local x
- for x in blas cblas lapack; do
- cat > ${x}-${prof}.pc <<-EOF
- prefix=${MKL_DIR}
- libdir=${MKL_LIBDIR}
- includedir=\${prefix}/include
- Name: ${x}
- Description: Intel(R) Math Kernel Library implementation of ${x}
- Version: ${PV}
- URL: ${HOMEPAGE}
- EOF
- done
- cat >> blas-${prof}.pc <<-EOF
- Libs: -Wl,--no-as-needed -L\${libdir} ${2} ${3} -lmkl_core ${4} -lpthread
- EOF
- cat >> cblas-${prof}.pc <<-EOF
- Requires: blas
- Libs: -Wl,--no-as-needed -L\${libdir} ${2} ${3} -lmkl_core ${4} -lpthread
- Cflags: -I\${includedir}
- EOF
- cat >> lapack-${prof}.pc <<-EOF
- Requires: blas
- Libs: -Wl,--no-as-needed -L\${libdir} ${2} ${3} -lmkl_core -lmkl_lapack ${4} -lpthread
- EOF
- insinto ${MKL_LIBDIR}
- for x in blas cblas lapack; do
- doins ${x}-${prof}.pc
- cp eselect.${x} eselect.${x}.${prof} || die
- echo "${MKL_LIBDIR}/${x}-${prof}.pc /usr/@LIBDIR@/pkgconfig/${x}.pc" \
- >> eselect.${x}.${prof}
- eselect ${x} add $(get_libdir) eselect.${x}.${prof} ${prof}
- done
-}
-
-mkl_make_profiles() {
- local clib="gf"
- has_version 'dev-lang/ifc' && clib+=" intel"
- local slib="-lmkl_sequential"
- local rlib="-liomp5"
- local pbase=${PN}
- local c
- for c in ${clib}; do
- local ilib="-lmkl_${c}_lp64"
- use x86 && ilib="-lmkl_${c}"
- local tlib="-lmkl_${c/gf/gnu}_thread"
- local comp="${c/gf/gfortran}"
- comp="${comp/intel/ifort}"
- mkl_add_profile ${pbase}-${comp} ${ilib} ${slib}
- mkl_add_profile ${pbase}-${comp}-threads ${ilib} ${tlib} ${rlib}
- if use int64; then
- ilib="-lmkl_${c}_ilp64"
- mkl_add_profile ${pbase}-${comp}-int64 ${ilib} ${slib}
- mkl_add_profile ${pbase}-${comp}-threads-int64 ${ilib} ${tlib} ${rlib}
- fi
- done
-}
-
-src_install() {
- dodir ${MKL_DIR}
-
- # install license
- if [[ ! -f ${INTEL_LIC_DIR}/${MKL_LIC} ]]; then
- insinto ${INTEL_LIC_DIR}
- doins "${WORKDIR}"/${MKL_LIC}
- fi
-
- # install main stuff: cp faster than doins
- einfo "Installing files..."
- local cpdirs="benchmarks doc examples include interfaces lib man tests"
- local doinsdirs="tools"
- cp -pPR ${cpdirs} "${D}"${MKL_DIR} \
- || die "installing mkl failed"
- insinto ${MKL_DIR}
- doins -r ${doinsdirs}
- dosym mkl_cblas.h ${MKL_DIR}/include/cblas.h
-
- # install blas/lapack profiles
- mkl_make_generic_profile
- mkl_make_profiles
-
- # install env variables
- cat > 35mkl <<-EOF
- MKLROOT=${MKL_DIR}
- LDPATH=${MKL_LIBDIR}
- MANPATH=${MKL_DIR}/man
- EOF
- doenvd 35mkl
-}
-
-pkg_postinst() {
- # if blas profile is mkl, set lapack and cblas profiles as mkl
- local blas_prof=$(eselect blas show | cut -d' ' -f2)
- local def_prof="mkl-gfortran-threads"
- has_version 'dev-lang/ifc' && def_prof="mkl-ifort-threads"
- use int64 && def_prof="${def_prof}-int64"
- for x in blas cblas lapack; do
- local cur_prof=$(eselect ${x} show | cut -d' ' -f2)
- if [[ -z ${cur_prof} || ${cur_prof} == ${def_prof} ]]; then
- # work around eselect bug #189942
- local configfile="${ROOT}"/etc/env.d/${x}/$(get_libdir)/config
- [[ -e ${configfile} ]] && rm -f ${configfile}
- eselect ${x} set ${def_prof}
- elog "${x} has been eselected to ${def_prof}"
- else
- elog "Current eselected ${x} is ${current_lib}"
- elog "To use one of mkl profiles, issue (as root):"
- elog "\t eselect ${x} set <profile>"
- fi
- if [[ ${blas_prof} == mkl* && ${cur_prof} != ${blas_prof} ]]; then
- eselect blas set ${def_prof}
- elog "${x} is now set to ${def_prof} for consistency"
- fi
- done
- if [[ $(gcc-major-version)$(gcc-minor-version) -lt 42 ]]; then
- elog "Multi-threading OpenMP for GNU compilers only available"
- elog "with gcc >= 4.2. Make sure you have a compatible version"
- elog "and select it with gcc-config before selecting gnu profiles"
- fi
-}