blob: 952c35c2cacd548498163126ffd4e6196f3ed258 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-sci/blas-atlas/blas-atlas-3.6.0.ebuild,v 1.6 2004/06/19 06:52:29 mr_bones_ Exp $
inherit eutils
DESCRIPTION="Automatically Tuned Linear Algebra Software BLAS implementation"
HOMEPAGE="http://math-atlas.sourceforge.net/"
MY_PN=${PN/blas-/}
SRC_URI="mirror://sourceforge/math-atlas/${MY_PN}${PV}.tar.bz2
mirror://gentoo/atlas${PV}-shared-libs.patch.bz2"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~x86 amd64 ~ppc"
IUSE="doc"
DEPEND="app-sci/blas-config
>=sys-devel/libtool-1.5"
RDEPEND=""
PROVIDE="virtual/blas"
S=${WORKDIR}/ATLAS
pkg_setup() {
use ifc || if [ -z `which g77` ]; then
#if ifc is defined then the dep was already checked
eerror "No fortran compiler found on the system!"
eerror "Please add f77 to your USE flags and reemerge gcc!"
die
fi
}
src_unpack() {
unpack ${A}
cd ${S}
epatch ${DISTDIR}/atlas3.6.0-shared-libs.patch.bz2
cp ${FILESDIR}/war ${S}
chmod a+x ${S}/war
}
atlas_fail() {
eerror
eerror "ATLAS auto-config failed."
eerror "Please run 'interactive=1 emerge blas-atlas' to configure manually."
eerror
die "ATLAS auto-config failed."
}
src_compile() {
# Libraries will be installed in ${RPATH}/atlas and ${RPATH}/threaded-atlas:
RPATH="${DESTTREE}/lib/blas"
GCC="gcc"
if [ -n "${interactive}" ]
then
echo "${interactive}"
make config CC="${GCC} -DUSE_LIBTOOL -DINTERACTIVE" || die
else
# Use ATLAS defaults for all questions:
(echo | make config CC="${GCC} -DUSE_LIBTOOL") || atlas_fail
fi
TMPSTR=$(ls Make.Linux*)
ATLAS_ARCH=${TMPSTR#'Make.'}
make install arch=${ATLAS_ARCH} || die
make shared-strip arch=${ATLAS_ARCH} RPATH=${RPATH}/atlas || die
# Build shared versions of the threaded libs.
# ATLAS only compiles threaded libs on multiprocessor machines.
if [ -d gentoo/libptf77blas.a ]
then
make ptshared-strip \
arch=${ATLAS_ARCH} RPATH=${RPATH}/threaded-atlas || die
fi
}
src_install () {
dodir ${RPATH}/atlas
cd ${S}/gentoo/libs
cp -P libatlas* ${D}/${DESTTREE}/lib
cp -P *blas* ${D}/${RPATH}/atlas #the rest really
insinto ${RPATH}
doins ${FILESDIR}/c-ATLAS ${FILESDIR}/f77-ATLAS
if [ -d ${S}/gentoo/threaded-libs ]
then
dodir ${RPATH}/threaded-atlas
cd ${S}/gentoo/threaded-libs
cp -P * ${D}/${RPATH}/threaded-atlas
doins ${FILESDIR}/c-threaded-ATLAS ${FILESDIR}/f77-threaded-ATLAS
fi
insinto ${DESTTREE}/include/atlas
doins ${S}/include/cblas.h
# These headers contain the architecture-specific optimizations determined
# by ATLAS. The atlas-lapack build is much shorter if they are available,
# so save them:
doins ${S}/include/${ATLAS_ARCH}/*.h
#some docs
cd ${S}
dodoc README doc/{AtlasCredits.txt,ChangeLog}
use doc && dodoc doc/*.ps
}
pkg_postinst() {
if [ -d ${RPATH}/threaded-atlas ]
then
${DESTTREE}/bin/blas-config threaded-ATLAS
else
${DESTTREE}/bin/blas-config ATLAS
fi
einfo
einfo "Fortran users link using -lblas"
einfo
einfo "C users compile against the header /usr/include/atlas/cblas.h and"
einfo "link using -lcblas"
einfo
}
|