blob: 8ed746549ad9ba4b457054d7a9f938955aa910df (
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
130
131
132
133
134
135
136
|
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sci-libs/lapack-reference/lapack-reference-3.0.ebuild,v 1.2 2004/12/29 18:34:39 ribosome Exp $
inherit eutils
MyPN=${PN/-reference/}
DESCRIPTION="FORTRAN reference implementation of LAPACK Linear Algebra PACKage"
HOMEPAGE="http://www.netlib.org/lapack/index.html"
SRC_URI="http://www.netlib.org/lapack/${MyPN}.tgz
mirror://gentoo/${MyPN}-20020531-20021004.patch.bz2
mirror://gentoo/${MyPN}-gentoo.patch"
LICENSE="lapack"
SLOT="0"
KEYWORDS="~x86 ~amd64"
IUSE="ifc"
DEPEND="sys-devel/libtool
sci-libs/lapack-config
ifc? ( dev-lang/ifc )"
RDEPEND="virtual/blas
ifc? ( dev-lang/ifc )" # Need ifc runtime libraries
PROVIDE="virtual/lapack"
S=${WORKDIR}/LAPACK
ifc_info() {
if [ -z "${IFCFLAGS}" ]
then
einfo
einfo "You may want to set some ifc optimization flags by running this"
einfo "ebuild as, for example, \`IFCFLAGS=\"-O3 -tpp7 -xW\" emerge blas\`"
einfo "(Pentium 4 exclusive optimizations)."
einfo
einfo "ifc defaults to -O2, with code tuned for Pentium 4, but that"
einfo "will run on any processor."
einfo
einfo "Beware that ifc's -O3 is very aggressive, sometimes resulting in"
einfo "significantly worse performance."
einfo
epause 5
fi
}
pkg_setup() {
# This version of lapack *can* be build completely with ifc
use ifc || \
if [ -z `which g77` ]; then
eerror "g77 not found on the system!"
eerror "Please add f77 to your USE flags and reemerge gcc!"
die
fi
}
src_unpack() {
unpack ${A}
epatch ${DISTDIR}/lapack-20020531-20021004.patch.bz2
epatch ${DISTDIR}/lapack-gentoo.patch
}
src_compile() {
TOP_PATH=${DESTTREE}/lib/lapack
# Library will be installed in RPATH:
RPATH=${TOP_PATH}/reference
if use ifc
then
FC="ifc"
FFLAGS="${IFCFLAGS}"
NOOPT="-O0" # Do NOT change this. It is applied to two files with
# routines to determine machine constants.
ifc_info
else
FC="g77"
FFLAGS="${CFLAGS}"
NOOPT=""
# libg2c is required to link with liblapack.so using ifc:
DEP_LIBS="-lg2c"
fi
DEP_LIBS="${DEP_LIBS} -lblas"
cd ${S}/SRC
make all \
FORTRAN="libtool --mode=compile --tag=F77 ${FC}"\
OPTS="${FFLAGS}"\
NOOPT="${NOOPT}" \
|| die
if use ifc
then
${FC} -shared ${FFLAGS} *.lo ${DEP_LIBS} \
-Wl,-soname -Wl,liblapack.so.0 -o liblapack.so.0.0.0 \
-Vaxlib # Intel portability library that provides the etime function
ar cru liblapack.a *.o
ranlib liblapack.a
else
libtool --mode=link --tag=CC ${FC} ${FFLAGS} -o liblapack.la *.lo \
-rpath ${RPATH} ${DEP_LIBS}
fi
}
src_install() {
dodir ${RPATH}
cd ${S}/SRC
if use ifc
then
strip --strip-unneeded liblapack.so.0.0.0
strip --strip-debug liblapack.a
exeinto ${RPATH}
doexe liblapack.so.0.0.0
dosym liblapack.so.0.0.0 ${RPATH}/liblapack.so.0
dosym liblapack.so.0.0.0 ${RPATH}/liblapack.so
insinto ${RPATH}
doins liblapack.a
else
libtool --mode=install install -s liblapack.la ${D}/${RPATH}
fi
insinto ${TOP_PATH}
doins ${FILESDIR}/f77-reference
dodoc ${S}/README
}
pkg_postinst() {
${DESTTREE}/bin/lapack-config reference
}
|