aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Seifert <soap@gentoo.org>2016-02-17 21:58:15 +0100
committerDavid Seifert <soap@gentoo.org>2016-02-19 10:56:10 +0100
commit66ff6de2e71ced15a357e56c428c342b0a8af6bd (patch)
tree556843aaee5b8cbf011ddcf78b8e8d30067d1ddb /sci-libs
parentdev-lang/ifc: Match new variables, remove ${INTEL_SINGLE_ARCH} (diff)
downloadsci-66ff6de2e71ced15a357e56c428c342b0a8af6bd.tar.gz
sci-66ff6de2e71ced15a357e56c428c342b0a8af6bd.tar.bz2
sci-66ff6de2e71ced15a357e56c428c342b0a8af6bd.zip
sci-libs/mkl: version bump
* EAPI=6 * update to intel-sdp-r1.eclass Package-Manager: portage-2.2.27
Diffstat (limited to 'sci-libs')
-rw-r--r--sci-libs/mkl/Manifest1
-rw-r--r--sci-libs/mkl/metadata.xml3
-rw-r--r--sci-libs/mkl/mkl-11.3.2.181.ebuild197
3 files changed, 201 insertions, 0 deletions
diff --git a/sci-libs/mkl/Manifest b/sci-libs/mkl/Manifest
index 86607ddb3..8dbce669a 100644
--- a/sci-libs/mkl/Manifest
+++ b/sci-libs/mkl/Manifest
@@ -6,3 +6,4 @@ DIST parallel_studio_xe_2015.tgz 3819862086 SHA256 31abe447b1db457b38547dfbf0fd7
DIST parallel_studio_xe_2015_update1.tgz 4044230603 SHA256 84fdf48d1de20e1d580ba5d419a5bc1c55d217a4f5dc1807190ecffe0229a62b SHA512 894c911dce9d261fbe67d65c91c3b6c7117b183102fe7673a5e106d14994a082fdf03fdb573bbb1a9f0a01cf1539082b72ec75c39db7590bb2f63222f9a5b832 WHIRLPOOL f43b219ba82aa3f94c6818c54b971302f3693cb1c0266924f7ee79c67d6008699388afedaf4b2f72e969a73c8fd7d276309d80ff4dc8dfb1ba766cbe19b33872
DIST parallel_studio_xe_2015_update2.tgz 4145283363 SHA256 8cbde4d4fb3bbfcc5096d5d924953121ca84e9a9bee7b00dfd07c029c1a89943 SHA512 1166eaa41c881059673dbf51194cf800fbc94a1080fc9eebbacc20cd762c3b2e92f83191cb1cdacc50da0c8522524b7132d269fc2a91615ba4fbda5c63cb7a47 WHIRLPOOL 95e93fc964f0ddbd81e87d3c8083adea3f8ab82fc0668dc00b10154ba8911bd50d07be9d2130a1b27c7ea66e5208e172055df4fee69f336ae777d629ca7874d4
DIST parallel_studio_xe_2015_update3.tgz 4156836825 SHA256 ab7169989c87bbb0fe66221cb7eb3a26b17c8b9ceff38f1926e5607834306896 SHA512 eccc2bfe85ccd039a2ec9e334d370e49d43baa0522d095c087a5982aa08bddb4c97bfc3125bd09f5cd57d3ed252c598012e1f2670b8373a1b3bb455825d18f96 WHIRLPOOL d1fd8d1e46ce35150357a9452f04529d8a1f7e915e50a5d714895184aa37fb61186a5455e89b4750f444f0f6da94563e493d0821c661378551c3739f8d27d7b9
+DIST parallel_studio_xe_2016_update2.tgz 4187748625 SHA256 280bf39c75d7f52f206759ca4d8b6334ab92d5970957b90f5aa286bb0aa8d65e SHA512 e1d208116ad37752a4fb03cc6aa60d380f70668092280c6de5005895f94d2498501e24d1c06ab3a471ad14fb58acb5b5eb10d2fc6db10e3341f52a6621dd13e4 WHIRLPOOL 81c74eb2f7c2fd841bbee50906cce617f57e05dbf1677861cdfbf43e2cfcc509fa8c04632f31e9b51cb1b5fb5b286b5a079d95bb212f04fc3e1b57e089870a5a
diff --git a/sci-libs/mkl/metadata.xml b/sci-libs/mkl/metadata.xml
index 0fff21e1e..8e7ff6cd9 100644
--- a/sci-libs/mkl/metadata.xml
+++ b/sci-libs/mkl/metadata.xml
@@ -16,4 +16,7 @@
<use>
<flag name="int64">Build the 64 bits integer library</flag>
</use>
+ <use>
+ <flag name="mic">Install the libraries needed for supporting Intel Many Integrated Core (Xeon Phi)</flag>
+ </use>
</pkgmetadata>
diff --git a/sci-libs/mkl/mkl-11.3.2.181.ebuild b/sci-libs/mkl/mkl-11.3.2.181.ebuild
new file mode 100644
index 000000000..3584ed67b
--- /dev/null
+++ b/sci-libs/mkl/mkl-11.3.2.181.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+INTEL_DIST_SKU=8676
+INTEL_DIST_PV=2016_update2
+INTEL_SKIP_LICENSE=true
+
+NUMERIC_MODULE_NAME=${PN}
+
+inherit alternatives-2 intel-sdp-r1 numeric-int64-multibuild
+
+DESCRIPTION="Intel Math Kernel Library: linear algebra, fft, math functions"
+HOMEPAGE="http://software.intel.com/en-us/articles/intel-mkl/"
+
+IUSE="doc examples linguas_ja mic"
+KEYWORDS="-* ~amd64 ~x86 ~amd64-linux ~x86-linux"
+
+DEPEND=""
+RDEPEND=">=dev-libs/intel-common-16[${MULTILIB_USEDEP},mic?]"
+
+CHECKREQS_DISK_BUILD=3500M
+
+INTEL_DIST_BIN_RPMS=(
+ "mkl"
+ "mkl-devel"
+ "mkl-gnu"
+ "mkl-gnu-devel"
+ "mkl-ps"
+ "mkl-ps-f95-devel"
+ "mkl-ps-gnu"
+ "mkl-ps-gnu-devel"
+ "mkl-ps-pgi"
+ "mkl-ps-pgi-devel"
+ "mkl-ps-ss-tbb"
+ "mkl-ps-ss-tbb-devel")
+INTEL_DIST_X86_RPMS=()
+INTEL_DIST_AMD64_RPMS=(
+ "mkl-ps-cluster"
+ "mkl-ps-cluster-devel"
+ "mkl-sp2dp"
+ "mkl-sp2dp-devel")
+INTEL_DIST_DAT_RPMS=(
+ "mkl-common"
+ "mkl-ps-cluster-common"
+ "mkl-ps-common"
+ "mkl-ps-f95-common")
+
+pkg_setup() {
+ if use doc; then
+ INTEL_DIST_DAT_RPMS+=(
+ "mkl-doc-11.3.2-181.noarch.rpm"
+ "mkl-ps-doc-11.3.2-181.noarch.rpm")
+
+ if use linguas_ja; then
+ INTEL_DIST_DAT_RPMS+=(
+ "mkl-ps-doc-jp-11.3.2-181.noarch.rpm")
+ fi
+ fi
+
+ if use mic; then
+ INTEL_DIST_AMD64_RPMS+=(
+ "mkl-ps-mic"
+ "mkl-ps-mic-devel"
+ "mkl-ps-tbb-mic"
+ "mkl-ps-tbb-mic-devel")
+ fi
+
+ if use linguas_ja; then
+ INTEL_DIST_BIN_RPMS+=(
+ "mkl-ps-jp")
+
+ INTEL_DIST_DAT_RPMS+=(
+ "mkl-ps-common-jp")
+
+ if use mic; then
+ INTEL_DIST_AMD64_RPMS+=(
+ "mkl-ps-mic-jp")
+ fi
+ fi
+}
+
+src_prepare() {
+ default
+ chmod u+w -R opt || die
+}
+
+_mkl_add_pc_file() {
+ local pcname=${1} cflags="" suffix=""
+ shift
+ numeric-int64_is_int64_build && cflags=-DMKL_ILP64 && suffix="-int64"
+
+ local IARCH=$(isdp_convert2intel-arch ${MULTIBUILD_ID})
+
+ create_pkgconfig \
+ --prefix "$(isdp_get-sdp-edir)/linux/mkl" \
+ --libdir "\${prefix}/lib/${IARCH}" \
+ --includedir "\${prefix}/include" \
+ --name ${pcname} \
+ --libs "-L\${libdir} -L$(isdp_get-sdp-edir)/linux/compiler/lib/${IARCH} $* -lpthread -lm" \
+ --cflags "-I\${includedir} ${cflags}" \
+ ${pcname}${suffix}
+}
+
+_mkl_add_alternative_provider() {
+ local prov=$1; shift
+ local alt
+ for alt in $*; do
+ NUMERIC_MODULE_NAME=${prov} \
+ numeric-int64-multibuild_install_alternative ${alt} ${prov}
+ done
+}
+
+# help: http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/
+mkl_add_pc_file() {
+ local bits=""
+ [[ ${MULTIBUILD_ID} =~ amd64 ]] && bits=_lp64
+ numeric-int64_is_int64_build && bits=_ilp64
+
+ local gf="-Wl,--no-as-needed -Wl,--start-group -lmkl_gf${bits}"
+ local gc="-Wl,--no-as-needed -Wl,--start-group -lmkl_intel${bits}"
+ local intel="-Wl,--start-group -lmkl_intel${bits}"
+ local core="-lmkl_core -Wl,--end-group"
+
+ # blas lapack cblas lapacke
+ _mkl_add_pc_file mkl-gfortran ${gf} -lmkl_sequential ${core}
+ _mkl_add_pc_file mkl-intel ${intel} -lmkl_sequential ${core}
+ _mkl_add_pc_file mkl-gfortran-openmp ${gf} -lmkl_gnu_thread ${core} -fopenmp
+ _mkl_add_pc_file mkl-gcc-openmp ${gc} -lmkl_gnu_thread ${core} -fopenmp
+ _mkl_add_pc_file mkl-intel-openmp ${intel} -lmkl_intel_thread ${core} -openmp
+ _mkl_add_pc_file mkl-dynamic -lmkl_rt
+ _mkl_add_pc_file mkl-dynamic-openmp -lmkl_rt -liomp5
+
+ # blacs and scalapack
+ local scal="-lmkl_scalapack${bits:-_core}"
+ local blacs="-lmkl_blacs_intelmpi${bits}"
+ core="-lmkl_core ${blacs} -Wl,--end-group"
+
+ _mkl_add_pc_file mkl-gfortran-blacs ${gf} -lmkl_sequential ${core}
+ _mkl_add_pc_file mkl-gfortran-scalapack ${scal} ${gf} -lmkl_sequential ${core}
+ _mkl_add_pc_file mkl-intel-blacs ${intel} -lmkl_sequential ${core}
+ _mkl_add_pc_file mkl-intel-scalapack ${scal} ${intel} -lmkl_sequential ${core}
+ _mkl_add_pc_file mkl-gfortran-openmp-blacs ${gf} -lmkl_gnu_thread ${core} -fopenmp
+ _mkl_add_pc_file mkl-gfortran-openmp-scalapack ${scal} ${gf} -lmkl_gnu_thread ${core} -fopenmp
+ _mkl_add_pc_file mkl-gcc-openmp-blacs ${gc} -lmkl_gnu_thread ${core} -fopenmp
+ _mkl_add_pc_file mkl-gcc-openmp-scalapack ${scal} ${gc} -lmkl_gnu_thread ${core} -fopenmp
+ _mkl_add_pc_file mkl-intel-openmp-blacs ${intel} -lmkl_intel_thread ${core} -liomp5
+ _mkl_add_pc_file mkl-intel-openmp-scalapack ${scal} ${intel} -lmkl_intel_thread ${core} -liomp5
+ _mkl_add_pc_file mkl-dynamic-blacs -lmkl_rt ${blacs}
+ _mkl_add_pc_file mkl-dynamic-scalapack ${scal} -lmkl_rt ${blacs}
+ _mkl_add_pc_file mkl-dynamic-openmp-blacs -lmkl_rt ${blacs} -liomp5
+ _mkl_add_pc_file mkl-dynamic-openmp-scalapack ${scal} -lmkl_rt ${blacs} -liomp5
+}
+
+mkl_add_alternative_provider() {
+ # blas lapack cblas lapacke
+ _mkl_add_alternative_provider mkl-gfortran blas lapack
+ _mkl_add_alternative_provider mkl-intel blas lapack cblas lapacke
+ _mkl_add_alternative_provider mkl-gfortran-openmp blas lapack
+ _mkl_add_alternative_provider mkl-gcc-openmp cblas lapacke
+ _mkl_add_alternative_provider mkl-intel-openmp blas lapack cblas lapacke
+ _mkl_add_alternative_provider mkl-dynamic blas lapack cblas lapacke
+ _mkl_add_alternative_provider mkl-dynamic-openmp blas lapack cblas lapacke
+
+ # blacs and scalapack
+ _mkl_add_alternative_provider mkl-gfortran-blacs blacs
+ _mkl_add_alternative_provider mkl-gfortran-scalapack scalapack
+ _mkl_add_alternative_provider mkl-intel-blacs blacs
+ _mkl_add_alternative_provider mkl-intel-scalapack scalapack
+ _mkl_add_alternative_provider mkl-gfortran-openmp-blacs blacs
+ _mkl_add_alternative_provider mkl-gfortran-openmp-scalapack scalapack
+ _mkl_add_alternative_provider mkl-gcc-openmp-blacs blacs
+ _mkl_add_alternative_provider mkl-gcc-openmp-scalapack scalapack
+ _mkl_add_alternative_provider mkl-intel-openmp-blacs blacs
+ _mkl_add_alternative_provider mkl-intel-openmp-scalapack scalapack
+ _mkl_add_alternative_provider mkl-dynamic-blacs blacs
+ _mkl_add_alternative_provider mkl-dynamic-scalapack scalapack
+ _mkl_add_alternative_provider mkl-dynamic-openmp-blacs blacs
+ _mkl_add_alternative_provider mkl-dynamic-openmp-scalapack scalapack
+}
+
+src_install() {
+ local IARCH
+ local ldpath="LDPATH="
+ intel-sdp-r1_src_install
+
+ numeric-int64-multibuild_foreach_all_abi_variants mkl_add_pc_file
+ mkl_add_alternative_provider
+
+ use abi_x86_64 && ldpath+="$(isdp_get-sdp-edir)/linux/mkl/lib/$(isdp_convert2intel-arch abi_x86_64)"
+ use abi_x86_32 && ldpath+=":$(isdp_get-sdp-edir)/linux/mkl/lib/$(isdp_convert2intel-arch abi_x86_32)"
+
+ echo "${ldpath}" > "${T}"/35mkl || die
+ doenvd "${T}"/35mkl
+}