Gentoo Archives: gentoo-commits

From: Sebastien Fabbro <bicatali@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/sci:master commit in: sci-libs/atlas/
Date: Thu, 23 May 2013 05:14:02
Message-Id: 1369250431.4d8b1e647052cc50f0dfc4c65a3ca55c96f5bdc7.bicatali@gentoo
1 commit: 4d8b1e647052cc50f0dfc4c65a3ca55c96f5bdc7
2 Author: Sébastien Fabbro <bicatali <AT> gentoo <DOT> org>
3 AuthorDate: Wed May 22 19:20:31 2013 +0000
4 Commit: Sebastien Fabbro <bicatali <AT> gentoo <DOT> org>
5 CommitDate: Wed May 22 19:20:31 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=4d8b1e64
7
8 Cleanup
9
10 Package-Manager: portage-2.2.01.21938-prefix
11
12 ---
13 sci-libs/atlas/ChangeLog | 4 +
14 sci-libs/atlas/atlas-3.10.1.ebuild | 281 ------------------------------------
15 sci-libs/atlas/metadata.xml | 12 +-
16 3 files changed, 10 insertions(+), 287 deletions(-)
17
18 diff --git a/sci-libs/atlas/ChangeLog b/sci-libs/atlas/ChangeLog
19 index c010571..0ac8999 100644
20 --- a/sci-libs/atlas/ChangeLog
21 +++ b/sci-libs/atlas/ChangeLog
22 @@ -2,6 +2,10 @@
23 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
24 # $Header: $
25
26 + 22 May 2013; Sébastien Fabbro <bicatali@g.o> -atlas-3.10.1.ebuild,
27 + metadata.xml:
28 + Cleanup
29 +
30 25 Feb 2013; Sébastien Fabbro <bicatali@g.o> atlas-3.10.1-r1.ebuild:
31 sci-libs/atlas: Switched threads libraries to Libs.private in pkg-config files
32
33
34 diff --git a/sci-libs/atlas/atlas-3.10.1.ebuild b/sci-libs/atlas/atlas-3.10.1.ebuild
35 deleted file mode 100644
36 index d9da19e..0000000
37 --- a/sci-libs/atlas/atlas-3.10.1.ebuild
38 +++ /dev/null
39 @@ -1,281 +0,0 @@
40 -# Copyright 1999-2013 Gentoo Foundation
41 -# Distributed under the terms of the GNU General Public License v2
42 -# $Header: $
43 -
44 -EAPI=5
45 -
46 -FORTRAN_NEEDED=fortran
47 -inherit eutils toolchain-funcs fortran-2 versionator alternatives-2 multilib
48 -
49 -LAPACKP=lapack-3.4.2.tgz
50 -
51 -DESCRIPTION="Automatically Tuned Linear Algebra Software"
52 -HOMEPAGE="http://math-atlas.sourceforge.net/"
53 -SRC_URI="mirror://sourceforge/math-atlas/${PN}${PV}.tar.bz2
54 - fortran? ( lapack? ( http://www.netlib.org/lapack/${LAPACKP} ) )"
55 -
56 -LICENSE="BSD"
57 -SLOT="0"
58 -KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
59 -IUSE="fortran doc generic lapack static-libs threads"
60 -
61 -RDEPEND=""
62 -DEPEND="${RDEPEND}
63 - !prefix? ( sys-power/cpufrequtils )"
64 -
65 -S="${WORKDIR}/ATLAS"
66 -
67 -pkg_setup() {
68 - if [[ -n $(type -P cpufreq-info) ]]; then
69 - [[ -z $(cpufreq-info -d) ]] && return
70 - local ncpu=$(LANG=C cpufreq-info | grep -c "analyzing CPU")
71 - local cpu=0
72 - while [[ ${cpu} -lt ${ncpu} ]]; do
73 - if ! $(LANG=C cpufreq-info -p -c ${cpu} | grep -q performance); then
74 - ewarn "CPU $cpu is not set to performance"
75 - ewarn "Run cpufreq-set -r -g performance as root"
76 - die "${PN} needs all cpu set to performance"
77 - fi
78 - cpu=$((cpu + 1))
79 - done
80 - else
81 - ewarn "Please make sure to disable CPU throttling completely"
82 - ewarn "during the compile of ${PN}. Otherwise, all ${PN}"
83 - ewarn "generated timings will be completely random and the"
84 - ewarn "performance of the resulting libraries will be degraded"
85 - ewarn "considerably."
86 - fi
87 - use fortran && fortran-2_pkg_setup
88 -}
89 -
90 -src_prepare() {
91 - epatch "${FILESDIR}"/${PN}-3.10.0-x32-support.patch
92 -}
93 -
94 -src_configure() {
95 - # hack needed to trick the flaky gcc detection
96 - local mycc="$(type -P $(tc-getCC))"
97 - [[ ${mycc} == *gcc* ]] && mycc=gcc
98 - atlas_configure() {
99 - local myconf=(
100 - --prefix="${ED}/usr"
101 - --libdir="${ED}/usr/$(get_libdir)"
102 - --incdir="${ED}/usr/include"
103 - --cc="$(tc-getCC)"
104 - "-D c -DWALL"
105 - "-C acg '${mycc}'"
106 - "-F acg '${CFLAGS}'"
107 - "-Ss pmake '\$(MAKE) ${MAKEOPTS}'"
108 - )
109 -
110 - # OpenMP shown to decreased performance over POSIX threads
111 - # (at least in 3.9.x, see atlas-dev mailing list)
112 - if use threads; then
113 - if use generic; then # 2 threads is most generic
114 - myconf+=( "-t 2" "-Si omp 0" )
115 - else
116 - myconf+=( "-t -1" "-Si omp 0" )
117 - fi
118 - else
119 - myconf+=( "-t 0" "-Si omp 0" )
120 - fi
121 -
122 - if use amd64 || use ppc64 || use sparc; then
123 - if [ ${ABI} = amd64 ] || [ ${ABI} = ppc64 ] || [ ${ABI} = sparc64 ] ; then
124 - myconf+=( "-b 64" )
125 - elif [ ${ABI} = x86 ] || [ ${ABI} = ppc ] || [ ${ABI} = sparc32 ] ; then
126 - myconf+=( "-b 32" )
127 - elif [ ${ABI} = x32 ] ; then
128 - myconf+=( "-b 48" )
129 - else
130 - myconf+=( "-b 64" )
131 - fi
132 - elif use ppc || use x86; then
133 - myconf+=( "-b 32" )
134 - elif use ia64; then
135 - myconf+=( "-b 64" )
136 - fi
137 - if use fortran; then
138 - myconf+=(
139 - "-C if '$(type -P $(tc-getFC))'"
140 - "-F if '${FFLAGS}'"
141 - )
142 - if use lapack; then
143 - myconf+=(
144 - "-Si latune 1"
145 - "--with-netlib-lapack-tarfile=${DISTDIR}/${LAPACKP}"
146 - )
147 - else
148 - myconf+=( "-Si latune 0" )
149 - fi
150 - else
151 - myconf+=( "-Si latune 0" "--nof77" )
152 - fi
153 - # generic stuff found by make make xprint_enums in atlas build dir
154 - # basically assuming sse2+sse1 and 2 threads max
155 - use generic && use x86 && myconf+=( "-V 384 -A 13")
156 - use generic && use amd64 && myconf+=( "-V 384 -A 24")
157 -
158 - local confdir="${S}_${1}"; shift
159 - myconf+=( $@ )
160 - mkdir "${confdir}" && cd "${confdir}"
161 - # for debugging
162 - echo ${myconf[@]} > myconf.out
163 - "${S}"/configure ${myconf[@]} || die "configure in ${confdir} failed"
164 - }
165 -
166 - atlas_configure shared "-Fa alg -fPIC" ${EXTRA_ECONF}
167 - use static-libs && atlas_configure static ${EXTRA_ECONF}
168 -}
169 -
170 -src_compile() {
171 - atlas_compile() {
172 - pushd "${S}_${1}" > /dev/null
173 - # atlas does its own parallel builds
174 - emake -j1 build
175 - cd lib
176 - emake libclapack.a
177 - [[ -e libptcblas.a ]] && emake libptclapack.a
178 - popd > /dev/null
179 - }
180 -
181 - atlas_compile shared
182 - use static-libs && atlas_compile static
183 -}
184 -
185 -src_test() {
186 - cd "${S}_shared"
187 - emake -j1 check time
188 -}
189 -
190 -# transform a static archive into a shared library and install them
191 -# atlas_install_libs <mylib.a> [extra link flags]
192 -atlas_install_libs() {
193 - local libname=$(basename ${1%.*})
194 - einfo "Installing ${libname}"
195 - local soname=${libname}.so.$(get_major_version)
196 - shift
197 - pushd "${S}_shared"/lib > /dev/null
198 - ${LINK:-$(tc-getCC)} ${LDFLAGS} -shared -Wl,-soname=${soname} \
199 - -Wl,--whole-archive ${libname}.a -Wl,--no-whole-archive \
200 - "$@" -o ${soname} || die "Creating ${soname} failed"
201 - dolib.so ${soname}
202 - ln -s ${soname} ${soname%.*}
203 - dosym ${soname} /usr/$(get_libdir)/${soname%.*}
204 - popd > /dev/null
205 - use static-libs && dolib.a "${S}_static"/lib/${libname}.a
206 -}
207 -
208 -# create and install a pkgconfig file
209 -# atlas_install_pc <libname> <pkg name> [extra link flags]
210 -atlas_install_pc() {
211 - local libname=${1} ; shift
212 - local pcname=${1} ; shift
213 - cat <<-EOF > ${pcname}.pc
214 - prefix=${EPREFIX}/usr
215 - libdir=\${prefix}/$(get_libdir)
216 - includedir=\${prefix}/include
217 - Name: ${pcname}
218 - Description: ${PN} ${pcname}
219 - Version: ${PV}
220 - URL: ${HOMEPAGE}
221 - Libs: -L\${libdir} -l${libname} $@
222 - Cflags: -I\${includedir}/${PN}
223 - ${PCREQ}
224 - EOF
225 - insinto /usr/$(get_libdir)/pkgconfig
226 - doins ${pcname}.pc
227 -}
228 -
229 -src_install() {
230 - cd "${S}_shared/lib"
231 - # rename to avoid collision with other packages
232 - local l
233 - for l in {,c}{blas,lapack}; do
234 - if [[ -e lib${l}.a ]]; then
235 - mv lib{,atl}${l}.a
236 - use static-libs && mv "${S}"_static/lib/lib{,atl}${l}.a
237 - fi
238 - done
239 -
240 - [[ -e libptcblas.a ]] && PTLIBS="-lpthread"
241 -
242 - # atlas
243 - atlas_install_libs libatlas.a -lm ${PTLIBS}
244 -
245 - # cblas
246 - atlas_install_libs libatlcblas.a -lm -L. -latlas
247 - atlas_install_pc atlcblas atlas-cblas -lm -latlas
248 - alternatives_for cblas atlas 0 \
249 - /usr/$(get_libdir)/pkgconfig/cblas.pc atlas-cblas.pc \
250 - /usr/include/cblas.h atlas/cblas.h
251 -
252 - # cblas threaded
253 - if [[ -e libptcblas.a ]]; then
254 - atlas_install_libs libptcblas.a -lm -L. -latlas ${PTLIBS}
255 - atlas_install_pc ptcblas atlas-cblas-threads -lm -latlas ${PTLIBS}
256 - alternatives_for cblas atlas-threads 0 \
257 - /usr/$(get_libdir)/pkgconfig/cblas.pc atlas-cblas-threads.pc \
258 - /usr/include/cblas.h atlas/cblas.h
259 - fi
260 -
261 - if use lapack; then
262 - PCREQ="Requires: cblas"
263 - # clapack
264 - atlas_install_libs libatlclapack.a -lm -L. -latlas -latlcblas
265 - atlas_install_pc atlclapack atlas-clapack -lm -latlas
266 -
267 - # clapack threaded
268 - if [[ -e libptclapack.a ]]; then
269 - atlas_install_libs libptclapack.a -lm -L. -latlas -lptcblas ${PTLIBS}
270 - atlas_install_pc ptclapack atlas-clapack-threads -lm -latlas ${PTLIBS}
271 - fi
272 - fi
273 -
274 - if use fortran; then
275 - LINK=$(tc-getF77) PCREQ=
276 -
277 - # blas
278 - atlas_install_libs libf77blas.a -lm -L. -latlas
279 - atlas_install_pc f77blas atlas-blas -lm -latlas
280 - alternatives_for blas atlas 0 \
281 - /usr/$(get_libdir)/pkgconfig/blas.pc atlas-blas.pc
282 -
283 - # blas threaded
284 - if [[ -e libptf77blas.a ]]; then
285 - atlas_install_libs libptf77blas.a -lm -L. -latlas ${PTLIBS}
286 - atlas_install_pc ptf77blas atlas-blas-threads -lm -latlas ${PTLIBS}
287 - alternatives_for blas atlas-threads 0 \
288 - /usr/$(get_libdir)/pkgconfig/blas.pc atlas-blas-threads.pc
289 - fi
290 -
291 - if use lapack; then
292 - PCREQ="Requires: blas cblas"
293 - # lapack
294 - atlas_install_libs libatllapack.a \
295 - -lm -L. -latlas -latlcblas -lf77blas
296 - atlas_install_pc atllapack atlas-lapack -lm -latlas
297 - alternatives_for lapack atlas 0 \
298 - /usr/$(get_libdir)/pkgconfig/lapack.pc atlas-lapack.pc
299 - # lapack threaded
300 - if [[ -e libptlapack.a ]]; then
301 - atlas_install_libs libptlapack.a \
302 - -lm -L. -latlas -lptcblas -lptf77blas ${PTLIBS}
303 - atlas_install_pc ptlapack atlas-lapack-threads \
304 - -lm -latlas ${PTLIBS}
305 - alternatives_for lapack atlas-threads 0 \
306 - /usr/$(get_libdir)/pkgconfig/lapack.pc atlas-lapack-threads.pc
307 - fi
308 - fi
309 - fi
310 -
311 - cd "${S}"
312 - insinto /usr/include/${PN}
313 - doins include/*.h
314 -
315 - cd "${S}/doc"
316 - dodoc INDEX.txt AtlasCredits.txt ChangeLog
317 - use doc && dodoc atlas*pdf cblas.pdf cblasqref.pdf
318 - use doc && use fortran && dodoc f77blas*pdf
319 - use doc && use fortran && use lapack && dodoc *lapack*pdf
320 -}
321
322 diff --git a/sci-libs/atlas/metadata.xml b/sci-libs/atlas/metadata.xml
323 index b4b8088..2fddb01 100644
324 --- a/sci-libs/atlas/metadata.xml
325 +++ b/sci-libs/atlas/metadata.xml
326 @@ -3,12 +3,12 @@
327 <pkgmetadata>
328 <herd>sci</herd>
329 <longdescription lang='en'>
330 - ATLAS is an approach for the automatic generation and optimization of
331 - numerical software. Currently ATLAS supplies optimized versions for the
332 - complete set of linear algebra kernels known as the Basic Linear Algebra
333 - Subroutines (BLAS) for both c and F77 interfaces. It can also build
334 - a subset of the linear algebra routine LAPACK library or the full
335 - LAPACK using the reference LAPACK from Netlib.
336 + ATLAS is an approach for the automatic generation and optimization of
337 + numerical software. Currently ATLAS supplies optimized versions for the
338 + complete set of linear algebra kernels known as the Basic Linear Algebra
339 + Subroutines (BLAS) for both c and F77 interfaces. It can also build
340 + a subset of the linear algebra routine LAPACK library or the full
341 + LAPACK using the reference LAPACK from Netlib.
342 </longdescription>
343 <use>
344 <flag name='generic'>Build atlas assuming a fairly generic architecture (sse2 for x86, core2 for amd64)</flag>