1 |
commit: 66ff6de2e71ced15a357e56c428c342b0a8af6bd |
2 |
Author: David Seifert <soap <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Feb 17 20:58:15 2016 +0000 |
4 |
Commit: Justin Lecher <jlec <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri Feb 19 09:56:10 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=66ff6de2 |
7 |
|
8 |
sci-libs/mkl: version bump |
9 |
|
10 |
* EAPI=6 |
11 |
* update to intel-sdp-r1.eclass |
12 |
|
13 |
Package-Manager: portage-2.2.27 |
14 |
|
15 |
sci-libs/mkl/metadata.xml | 3 + |
16 |
sci-libs/mkl/mkl-11.3.2.181.ebuild | 197 +++++++++++++++++++++++++++++++++++++ |
17 |
2 files changed, 200 insertions(+) |
18 |
|
19 |
diff --git a/sci-libs/mkl/metadata.xml b/sci-libs/mkl/metadata.xml |
20 |
index 0fff21e..8e7ff6c 100644 |
21 |
--- a/sci-libs/mkl/metadata.xml |
22 |
+++ b/sci-libs/mkl/metadata.xml |
23 |
@@ -16,4 +16,7 @@ |
24 |
<use> |
25 |
<flag name="int64">Build the 64 bits integer library</flag> |
26 |
</use> |
27 |
+ <use> |
28 |
+ <flag name="mic">Install the libraries needed for supporting Intel Many Integrated Core (Xeon Phi)</flag> |
29 |
+ </use> |
30 |
</pkgmetadata> |
31 |
|
32 |
diff --git a/sci-libs/mkl/mkl-11.3.2.181.ebuild b/sci-libs/mkl/mkl-11.3.2.181.ebuild |
33 |
new file mode 100644 |
34 |
index 0000000..3584ed6 |
35 |
--- /dev/null |
36 |
+++ b/sci-libs/mkl/mkl-11.3.2.181.ebuild |
37 |
@@ -0,0 +1,197 @@ |
38 |
+# Copyright 1999-2016 Gentoo Foundation |
39 |
+# Distributed under the terms of the GNU General Public License v2 |
40 |
+# $Id$ |
41 |
+ |
42 |
+EAPI=6 |
43 |
+ |
44 |
+INTEL_DIST_SKU=8676 |
45 |
+INTEL_DIST_PV=2016_update2 |
46 |
+INTEL_SKIP_LICENSE=true |
47 |
+ |
48 |
+NUMERIC_MODULE_NAME=${PN} |
49 |
+ |
50 |
+inherit alternatives-2 intel-sdp-r1 numeric-int64-multibuild |
51 |
+ |
52 |
+DESCRIPTION="Intel Math Kernel Library: linear algebra, fft, math functions" |
53 |
+HOMEPAGE="http://software.intel.com/en-us/articles/intel-mkl/" |
54 |
+ |
55 |
+IUSE="doc examples linguas_ja mic" |
56 |
+KEYWORDS="-* ~amd64 ~x86 ~amd64-linux ~x86-linux" |
57 |
+ |
58 |
+DEPEND="" |
59 |
+RDEPEND=">=dev-libs/intel-common-16[${MULTILIB_USEDEP},mic?]" |
60 |
+ |
61 |
+CHECKREQS_DISK_BUILD=3500M |
62 |
+ |
63 |
+INTEL_DIST_BIN_RPMS=( |
64 |
+ "mkl" |
65 |
+ "mkl-devel" |
66 |
+ "mkl-gnu" |
67 |
+ "mkl-gnu-devel" |
68 |
+ "mkl-ps" |
69 |
+ "mkl-ps-f95-devel" |
70 |
+ "mkl-ps-gnu" |
71 |
+ "mkl-ps-gnu-devel" |
72 |
+ "mkl-ps-pgi" |
73 |
+ "mkl-ps-pgi-devel" |
74 |
+ "mkl-ps-ss-tbb" |
75 |
+ "mkl-ps-ss-tbb-devel") |
76 |
+INTEL_DIST_X86_RPMS=() |
77 |
+INTEL_DIST_AMD64_RPMS=( |
78 |
+ "mkl-ps-cluster" |
79 |
+ "mkl-ps-cluster-devel" |
80 |
+ "mkl-sp2dp" |
81 |
+ "mkl-sp2dp-devel") |
82 |
+INTEL_DIST_DAT_RPMS=( |
83 |
+ "mkl-common" |
84 |
+ "mkl-ps-cluster-common" |
85 |
+ "mkl-ps-common" |
86 |
+ "mkl-ps-f95-common") |
87 |
+ |
88 |
+pkg_setup() { |
89 |
+ if use doc; then |
90 |
+ INTEL_DIST_DAT_RPMS+=( |
91 |
+ "mkl-doc-11.3.2-181.noarch.rpm" |
92 |
+ "mkl-ps-doc-11.3.2-181.noarch.rpm") |
93 |
+ |
94 |
+ if use linguas_ja; then |
95 |
+ INTEL_DIST_DAT_RPMS+=( |
96 |
+ "mkl-ps-doc-jp-11.3.2-181.noarch.rpm") |
97 |
+ fi |
98 |
+ fi |
99 |
+ |
100 |
+ if use mic; then |
101 |
+ INTEL_DIST_AMD64_RPMS+=( |
102 |
+ "mkl-ps-mic" |
103 |
+ "mkl-ps-mic-devel" |
104 |
+ "mkl-ps-tbb-mic" |
105 |
+ "mkl-ps-tbb-mic-devel") |
106 |
+ fi |
107 |
+ |
108 |
+ if use linguas_ja; then |
109 |
+ INTEL_DIST_BIN_RPMS+=( |
110 |
+ "mkl-ps-jp") |
111 |
+ |
112 |
+ INTEL_DIST_DAT_RPMS+=( |
113 |
+ "mkl-ps-common-jp") |
114 |
+ |
115 |
+ if use mic; then |
116 |
+ INTEL_DIST_AMD64_RPMS+=( |
117 |
+ "mkl-ps-mic-jp") |
118 |
+ fi |
119 |
+ fi |
120 |
+} |
121 |
+ |
122 |
+src_prepare() { |
123 |
+ default |
124 |
+ chmod u+w -R opt || die |
125 |
+} |
126 |
+ |
127 |
+_mkl_add_pc_file() { |
128 |
+ local pcname=${1} cflags="" suffix="" |
129 |
+ shift |
130 |
+ numeric-int64_is_int64_build && cflags=-DMKL_ILP64 && suffix="-int64" |
131 |
+ |
132 |
+ local IARCH=$(isdp_convert2intel-arch ${MULTIBUILD_ID}) |
133 |
+ |
134 |
+ create_pkgconfig \ |
135 |
+ --prefix "$(isdp_get-sdp-edir)/linux/mkl" \ |
136 |
+ --libdir "\${prefix}/lib/${IARCH}" \ |
137 |
+ --includedir "\${prefix}/include" \ |
138 |
+ --name ${pcname} \ |
139 |
+ --libs "-L\${libdir} -L$(isdp_get-sdp-edir)/linux/compiler/lib/${IARCH} $* -lpthread -lm" \ |
140 |
+ --cflags "-I\${includedir} ${cflags}" \ |
141 |
+ ${pcname}${suffix} |
142 |
+} |
143 |
+ |
144 |
+_mkl_add_alternative_provider() { |
145 |
+ local prov=$1; shift |
146 |
+ local alt |
147 |
+ for alt in $*; do |
148 |
+ NUMERIC_MODULE_NAME=${prov} \ |
149 |
+ numeric-int64-multibuild_install_alternative ${alt} ${prov} |
150 |
+ done |
151 |
+} |
152 |
+ |
153 |
+# help: http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/ |
154 |
+mkl_add_pc_file() { |
155 |
+ local bits="" |
156 |
+ [[ ${MULTIBUILD_ID} =~ amd64 ]] && bits=_lp64 |
157 |
+ numeric-int64_is_int64_build && bits=_ilp64 |
158 |
+ |
159 |
+ local gf="-Wl,--no-as-needed -Wl,--start-group -lmkl_gf${bits}" |
160 |
+ local gc="-Wl,--no-as-needed -Wl,--start-group -lmkl_intel${bits}" |
161 |
+ local intel="-Wl,--start-group -lmkl_intel${bits}" |
162 |
+ local core="-lmkl_core -Wl,--end-group" |
163 |
+ |
164 |
+ # blas lapack cblas lapacke |
165 |
+ _mkl_add_pc_file mkl-gfortran ${gf} -lmkl_sequential ${core} |
166 |
+ _mkl_add_pc_file mkl-intel ${intel} -lmkl_sequential ${core} |
167 |
+ _mkl_add_pc_file mkl-gfortran-openmp ${gf} -lmkl_gnu_thread ${core} -fopenmp |
168 |
+ _mkl_add_pc_file mkl-gcc-openmp ${gc} -lmkl_gnu_thread ${core} -fopenmp |
169 |
+ _mkl_add_pc_file mkl-intel-openmp ${intel} -lmkl_intel_thread ${core} -openmp |
170 |
+ _mkl_add_pc_file mkl-dynamic -lmkl_rt |
171 |
+ _mkl_add_pc_file mkl-dynamic-openmp -lmkl_rt -liomp5 |
172 |
+ |
173 |
+ # blacs and scalapack |
174 |
+ local scal="-lmkl_scalapack${bits:-_core}" |
175 |
+ local blacs="-lmkl_blacs_intelmpi${bits}" |
176 |
+ core="-lmkl_core ${blacs} -Wl,--end-group" |
177 |
+ |
178 |
+ _mkl_add_pc_file mkl-gfortran-blacs ${gf} -lmkl_sequential ${core} |
179 |
+ _mkl_add_pc_file mkl-gfortran-scalapack ${scal} ${gf} -lmkl_sequential ${core} |
180 |
+ _mkl_add_pc_file mkl-intel-blacs ${intel} -lmkl_sequential ${core} |
181 |
+ _mkl_add_pc_file mkl-intel-scalapack ${scal} ${intel} -lmkl_sequential ${core} |
182 |
+ _mkl_add_pc_file mkl-gfortran-openmp-blacs ${gf} -lmkl_gnu_thread ${core} -fopenmp |
183 |
+ _mkl_add_pc_file mkl-gfortran-openmp-scalapack ${scal} ${gf} -lmkl_gnu_thread ${core} -fopenmp |
184 |
+ _mkl_add_pc_file mkl-gcc-openmp-blacs ${gc} -lmkl_gnu_thread ${core} -fopenmp |
185 |
+ _mkl_add_pc_file mkl-gcc-openmp-scalapack ${scal} ${gc} -lmkl_gnu_thread ${core} -fopenmp |
186 |
+ _mkl_add_pc_file mkl-intel-openmp-blacs ${intel} -lmkl_intel_thread ${core} -liomp5 |
187 |
+ _mkl_add_pc_file mkl-intel-openmp-scalapack ${scal} ${intel} -lmkl_intel_thread ${core} -liomp5 |
188 |
+ _mkl_add_pc_file mkl-dynamic-blacs -lmkl_rt ${blacs} |
189 |
+ _mkl_add_pc_file mkl-dynamic-scalapack ${scal} -lmkl_rt ${blacs} |
190 |
+ _mkl_add_pc_file mkl-dynamic-openmp-blacs -lmkl_rt ${blacs} -liomp5 |
191 |
+ _mkl_add_pc_file mkl-dynamic-openmp-scalapack ${scal} -lmkl_rt ${blacs} -liomp5 |
192 |
+} |
193 |
+ |
194 |
+mkl_add_alternative_provider() { |
195 |
+ # blas lapack cblas lapacke |
196 |
+ _mkl_add_alternative_provider mkl-gfortran blas lapack |
197 |
+ _mkl_add_alternative_provider mkl-intel blas lapack cblas lapacke |
198 |
+ _mkl_add_alternative_provider mkl-gfortran-openmp blas lapack |
199 |
+ _mkl_add_alternative_provider mkl-gcc-openmp cblas lapacke |
200 |
+ _mkl_add_alternative_provider mkl-intel-openmp blas lapack cblas lapacke |
201 |
+ _mkl_add_alternative_provider mkl-dynamic blas lapack cblas lapacke |
202 |
+ _mkl_add_alternative_provider mkl-dynamic-openmp blas lapack cblas lapacke |
203 |
+ |
204 |
+ # blacs and scalapack |
205 |
+ _mkl_add_alternative_provider mkl-gfortran-blacs blacs |
206 |
+ _mkl_add_alternative_provider mkl-gfortran-scalapack scalapack |
207 |
+ _mkl_add_alternative_provider mkl-intel-blacs blacs |
208 |
+ _mkl_add_alternative_provider mkl-intel-scalapack scalapack |
209 |
+ _mkl_add_alternative_provider mkl-gfortran-openmp-blacs blacs |
210 |
+ _mkl_add_alternative_provider mkl-gfortran-openmp-scalapack scalapack |
211 |
+ _mkl_add_alternative_provider mkl-gcc-openmp-blacs blacs |
212 |
+ _mkl_add_alternative_provider mkl-gcc-openmp-scalapack scalapack |
213 |
+ _mkl_add_alternative_provider mkl-intel-openmp-blacs blacs |
214 |
+ _mkl_add_alternative_provider mkl-intel-openmp-scalapack scalapack |
215 |
+ _mkl_add_alternative_provider mkl-dynamic-blacs blacs |
216 |
+ _mkl_add_alternative_provider mkl-dynamic-scalapack scalapack |
217 |
+ _mkl_add_alternative_provider mkl-dynamic-openmp-blacs blacs |
218 |
+ _mkl_add_alternative_provider mkl-dynamic-openmp-scalapack scalapack |
219 |
+} |
220 |
+ |
221 |
+src_install() { |
222 |
+ local IARCH |
223 |
+ local ldpath="LDPATH=" |
224 |
+ intel-sdp-r1_src_install |
225 |
+ |
226 |
+ numeric-int64-multibuild_foreach_all_abi_variants mkl_add_pc_file |
227 |
+ mkl_add_alternative_provider |
228 |
+ |
229 |
+ use abi_x86_64 && ldpath+="$(isdp_get-sdp-edir)/linux/mkl/lib/$(isdp_convert2intel-arch abi_x86_64)" |
230 |
+ use abi_x86_32 && ldpath+=":$(isdp_get-sdp-edir)/linux/mkl/lib/$(isdp_convert2intel-arch abi_x86_32)" |
231 |
+ |
232 |
+ echo "${ldpath}" > "${T}"/35mkl || die |
233 |
+ doenvd "${T}"/35mkl |
234 |
+} |