diff options
author | 2017-06-20 18:23:03 +0800 | |
---|---|---|
committer | 2017-06-20 18:23:03 +0800 | |
commit | ebbba7dd920f22899232384053bf85d60b88eacc (patch) | |
tree | 3b984d1d18c6c8ec947732852c4a174e07075e69 /sci-libs/mkl | |
parent | Update golang eclass (diff) | |
download | pigfoot-ebbba7dd920f22899232384053bf85d60b88eacc.tar.gz pigfoot-ebbba7dd920f22899232384053bf85d60b88eacc.tar.bz2 pigfoot-ebbba7dd920f22899232384053bf85d60b88eacc.zip |
Add sci-libs/mkl
Diffstat (limited to 'sci-libs/mkl')
-rw-r--r-- | sci-libs/mkl/Manifest | 3 | ||||
-rw-r--r-- | sci-libs/mkl/mkl-11.3.2.181.ebuild | 196 | ||||
-rw-r--r-- | sci-libs/mkl/mkl-2017.3.196.ebuild | 202 |
3 files changed, 401 insertions, 0 deletions
diff --git a/sci-libs/mkl/Manifest b/sci-libs/mkl/Manifest new file mode 100644 index 0000000..c639625 --- /dev/null +++ b/sci-libs/mkl/Manifest @@ -0,0 +1,3 @@ +DIST l_mkl_2017.3.196.tgz 930096918 SHA256 fd7295870fa164d6138c9818304f25f2bb263c814a6c6539c9fe4e104055f1ca SHA512 35320b7f42c003fdb87714c14ec766f9b49f03ca72ca9173a6375b74f5f62d7718f99fee03c55706a6fae955f3d5c9a6ff471aa8d46e385e358b3086d71acfba WHIRLPOOL c224f61bb669389a54788862d52de1392b3f332d5d153e28c2405bd62ea48e21f7462ebdd091c6cce8469dd9b5cf22d60728730fa731fda1435577dd5c1c8e2c +DIST parallel_studio_xe_2016_update2.tgz 4187748625 SHA256 280bf39c75d7f52f206759ca4d8b6334ab92d5970957b90f5aa286bb0aa8d65e SHA512 e1d208116ad37752a4fb03cc6aa60d380f70668092280c6de5005895f94d2498501e24d1c06ab3a471ad14fb58acb5b5eb10d2fc6db10e3341f52a6621dd13e4 WHIRLPOOL 81c74eb2f7c2fd841bbee50906cce617f57e05dbf1677861cdfbf43e2cfcc509fa8c04632f31e9b51cb1b5fb5b286b5a079d95bb212f04fc3e1b57e089870a5a +DIST parallel_studio_xe_2017_update4.tgz 4643931543 SHA256 27d34625adfc635d767c136b5417a372f322fabe6701b651d858a8fe06d07f2d SHA512 4446bd69858d6438bc6320b7ceb16a8f9e126af39404f7f55c964fdfeda7c41f65ebda74d67e4831162a530cca6ddf676070e3cb3669e0837b2d1d24274861b8 WHIRLPOOL 401b4f84851334179ecbe544a2d4f97e7231a481db769d866cd845b0966df82e9be1a5fb46aa38a9f5bbb9e01119487c2cdc65106bc31cc24f55ad5a77924e27 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 0000000..b4d1e6d --- /dev/null +++ b/sci-libs/mkl/mkl-11.3.2.181.ebuild @@ -0,0 +1,196 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +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 +} diff --git a/sci-libs/mkl/mkl-2017.3.196.ebuild b/sci-libs/mkl/mkl-2017.3.196.ebuild new file mode 100644 index 0000000..2f83a62 --- /dev/null +++ b/sci-libs/mkl/mkl-2017.3.196.ebuild @@ -0,0 +1,202 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +INTEL_DIST_NAME=l_mkl +INTEL_DIST_SKU=11544 +INTEL_DIST_PV=2017.3.196 +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 mic" +KEYWORDS="-* ~amd64 ~x86 ~amd64-linux ~x86-linux" + +DEPEND="" +RDEPEND="" + +CHECKREQS_DISK_BUILD=900M + +INTEL_DIST_BIN_RPMS=() +INTEL_DIST_X86_RPMS=() +INTEL_DIST_AMD64_RPMS=( + "mkl" + "mkl-common-c-64bit" + "mkl-gnu" + "mkl-gnu-c" + "mkl-gnu-rt" + "mkl-ps-cluster-64bit" + "mkl-ps-cluster-rt" + "mkl-ps-common-64bit" + "mkl-ps-common-f-64bit" + "mkl-ps-f95" + "mkl-ps-f95-mic" + "mkl-ps-gnu-f" + "mkl-ps-gnu-f-rt" + "mkl-ps-pgi" + "mkl-ps-pgi-c" + "mkl-ps-pgi-f" + "mkl-ps-pgi-rt" + "mkl-ps-ss-tbb" + "mkl-ps-ss-tbb-rt" + "mkl-rt" + "openmp-l-all-196-17.0.4-196.x86_64.rpm" + "openmp-l-ps-libs-196-17.0.4-196.x86_64.rpm") +INTEL_DIST_DAT_RPMS=( + "mkl-common" + "mkl-common-c" + "mkl-ps-cluster" + "mkl-ps-cluster-c" + "mkl-ps-cluster-f" + "mkl-ps-common" + "mkl-ps-common-c" + "mkl-ps-common-f" + "mkl-ps-f95-common" + #"comp-l-all-vars-196-17.0.4-196.noarch.rpm" + #"compxe-pset-056-2017.4-056.noarch.rpm" + "mkl-psxe-056-2017.3-056.noarch.rpm" + "mkl-sta-common") + #"psxe-common-056-2017.4-056.noarch.rpm" + #"tbb-libs-196-2017.6-196.noarch.rpm") + +pkg_setup() { + if use doc; then + INTEL_DIST_DAT_RPMS+=( + "mkl-doc" + "mkl-doc-c" + "mkl-ps-doc" + "mkl-ps-doc-f") + fi + + if use mic; then + INTEL_DIST_AMD64_RPMS+=( + "mkl-ps-mic" + "mkl-ps-mic-c" + "mkl-ps-mic-cluster" + "mkl-ps-mic-cluster-rt" + "mkl-ps-mic-f" + "mkl-ps-mic-rt" + "mkl-ps-tbb-mic" + "mkl-ps-tbb-mic-rt") + 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 +} |