mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-02-04 11:37:14 +08:00
110 lines
3.6 KiB
Bash
110 lines
3.6 KiB
Bash
#
|
|
# Platform packages for Chakra
|
|
#
|
|
|
|
pkgname=atlas-lapack
|
|
pkgver=3.8.4
|
|
_lapackver=3.4.0
|
|
pkgrel=1
|
|
pkgdesc="Complete LAPACK and BLAS implementation using optimised ATLAS routines"
|
|
url="http://math-atlas.sourceforge.net/"
|
|
depends=('gcc-libs')
|
|
makedepends=('binutils' 'sed' 'gcc-fortran')
|
|
arch=('i686' 'x86_64')
|
|
conflicts=('blas' 'lapack' 'cblas')
|
|
provides=("blas" "lapack=$_lapackver" 'cblas')
|
|
license=('custom:blas' 'custom:lapack' 'custom:atlas')
|
|
source=(http://www.netlib.org/lapack/lapack-$_lapackver.tgz http://downloads.sourceforge.net/math-atlas/atlas${pkgver}.tar.bz2 blas-license.txt atlas-license.txt lapack.patch makefile.shared.mt makefile.shared.st misdetects_i1_as_i2.patch)
|
|
md5sums=('02d5706ec03ba885fc246e5fa10d8c70'
|
|
'1bb3abde499b492b4be1f1a0759fbfa2'
|
|
'38b6acb8ed5691d25863319d30a8b365'
|
|
'4903eb06072dfbf94710691ccb6660bf'
|
|
'c681f11a9e17d31247570a26e266a506'
|
|
'235db0272fc5a17100115d5c45f29700'
|
|
'16691a5b602dcb5a20abc525b2ae9cfc'
|
|
'628b8f61b0403f23558ce6bf4c723bbc')
|
|
|
|
build() {
|
|
|
|
NCPU=`grep "^processor" /proc/cpuinfo | wc -l`
|
|
[ -x /usr/bin/cpufreq-info ] && [ $(cpufreq-info -d) != '' ] && {
|
|
ICPU=0
|
|
while [ $ICPU -lt $NCPU ]; do
|
|
STATUS=`cpufreq-info -c $ICPU -p | cut -d' ' -f3`
|
|
[ "$STATUS" != "performance" ] && {
|
|
msg 'Before building this package, as root you must run'
|
|
msg '"cpufreq-set -g performance -c <CPU nr>" for each CPU (<CPU'
|
|
msg 'nr> is 0, 1, 2 up to the number of your CPUS.'
|
|
return 1
|
|
}
|
|
let ICPU=ICPU+1
|
|
done
|
|
}
|
|
if [ "$CARCH" = "x86_64" ]; then
|
|
ARCHITECTURE_BUILD_OPTS="-b 64" # for x86_64
|
|
else
|
|
ARCHITECTURE_BUILD_OPTS="-b 32" # for i686
|
|
fi
|
|
|
|
mkdir -p "$srcdir/ATLAS/build"
|
|
cd "$srcdir/ATLAS"
|
|
patch -p0 -i "$srcdir/misdetects_i1_as_i2.patch"
|
|
cd "$srcdir/ATLAS/build"
|
|
|
|
msg 'Determine compiler and options for LAPACK'
|
|
../configure --prefix=/usr/ $ARCHITECTURE_BUILD_OPTS -Fa alg -fPIC
|
|
FORTRAN=`grep "F77 =" Make.inc|sed -e 's/ *F77 = //'`
|
|
FORTRANOPS=`grep "F77FLAGS =" Make.inc|sed -e 's/ *F77FLAGS = //'`
|
|
NOPTS=`echo $FORTRANOPS|sed -e 's/-O[0-9]/-O0/'`
|
|
|
|
msg 'Build LAPACK'
|
|
cd "$srcdir/lapack-$_lapackver"
|
|
cp INSTALL/make.inc.gfortran make.inc
|
|
patch -Np0 -i "$srcdir/lapack.patch"
|
|
make FORTRAN=$FORTRAN OPTS="$FORTRANOPS" NOOPT="$NOPTS" lib
|
|
LAPACKLIB="$srcdir/lapack-$_lapackver/liblapack.a"
|
|
|
|
msg 'Build ATLAS'
|
|
cd "$srcdir/ATLAS/build"
|
|
rm -rf *
|
|
../configure --prefix=/usr/ $ARCHITECTURE_BUILD_OPTS -Fa alg -fPIC \
|
|
--with-netlib-lapack="$LAPACKLIB"
|
|
make -j1 build
|
|
make -j1 check
|
|
make -j1 time
|
|
msg 'Build shared libraries'
|
|
cd lib
|
|
if [ 1 -lt $NCPU ]; then
|
|
cp "$srcdir/makefile.shared.mt" makefile
|
|
else
|
|
cp "$srcdir/makefile.shared.st" makefile
|
|
fi
|
|
make -f makefile
|
|
}
|
|
|
|
package() {
|
|
|
|
NCPU=`grep "^processor" /proc/cpuinfo | wc -l`
|
|
|
|
cd "$srcdir/ATLAS/build"
|
|
make DESTDIR="$pkgdir/usr" install
|
|
cp -d lib/*.so* "$pkgdir/usr/lib"
|
|
cd "$pkgdir/usr/lib"
|
|
if [ 1 -lt $NCPU ]; then
|
|
mv -f libptcblas.a libcblas.a
|
|
mv -f libptf77blas.a libf77blas.a
|
|
else
|
|
rm -f *pt*
|
|
fi
|
|
ln -s libf77blas.so libblas.so.3
|
|
ln -s liblapack.so.$_lapackver liblapack.so.3
|
|
ln -s liblapack.so.3 liblapack.so
|
|
|
|
install -Dm644 "${srcdir}/blas-license.txt" \
|
|
"${pkgdir}/usr/share/licenses/$pkgname/blas-license.txt"
|
|
install -Dm644 "${srcdir}/lapack-$_lapackver/LICENSE" \
|
|
"${pkgdir}/usr/share/licenses/$pkgname/lapack-license.txt"
|
|
install -Dm644 "${srcdir}/atlas-license.txt" \
|
|
"${pkgdir}/usr/share/licenses/$pkgname/atlas-license.txt"
|
|
}
|