0
0
Fork 0
haikuports/sci-libs/atlas/atlas-3.10.3.recipe

152 lines
4.2 KiB
Bash

SUMMARY="Automatically Tuned Linear Algebra Software"
DESCRIPTION="A software library for linear algebra. It provides a mature open \
source implementation of BLAS APIs for C and Fortran77."
HOMEPAGE="http://math-atlas.sourceforge.net/"
COPYRIGHT="2011-2016 The ATLAS Project"
LICENSE="BSD (3-clause)"
REVISION="1"
SOURCE_URI="https://downloads.sf.net/math-atlas/atlas$portVersion.tar.bz2"
CHECKSUM_SHA256="2688eb733a6c5f78a18ef32144039adcd62fabce66f2eb51dd59dde806a6d2b7"
SOURCE_DIR="ATLAS"
archlinuxCommit="286cdb8eafb3756cdb3d63f0f6c6084e55a31169"
archlinuxRepoBaseUri="https://aur.archlinux.org/cgit/aur.git/plain/"
SOURCE_URI_2="$archlinuxRepoBaseUri/$SOURCE_FILENAME_2?h=atlas-lapack&id=$archlinuxCommit#noarchive"
CHECKSUM_SHA256_2="7627446a0d598b55bc8f2795f8ff2028f134928b9ca597b76bf8dd5622dbff69"
SOURCE_FILENAME_2="makefile.shared.mt"
SOURCE_URI_3="$archlinuxRepoBaseUri/$SOURCE_FILENAME_3?h=atlas-lapack&id=$archlinuxCommit#noarchive"
CHECKSUM_SHA256_3="18cfd59a104451c03c3b91020786260cf2b2581642a9c8f8598ba1d26b9cb3bf"
SOURCE_FILENAME_3="makefile.shared.st"
PATCHES="atlas-$portVersion.patchset"
ARCHITECTURES="?all !x86_gcc2"
SECONDARY_ARCHITECTURES="!x86_gcc2 ?x86"
PROVIDES="
atlas$secondaryArchSuffix = $portVersion
lib:libatlas$secondaryArchSuffix = $portVersion compat >=3
lib:libcblas$secondaryArchSuffix = $portVersion compat >=3
lib:libf77blas$secondaryArchSuffix = $portVersion compat >=3
lib:liblapack$secondaryArchSuffix = $portVersion compat >=3
lib:libptcblas$secondaryArchSuffix = $portVersion compat >=3
lib:libptf77blas$secondaryArchSuffix = $portVersion compat >=3
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libgfortran$secondaryArchSuffix
lib:libgomp$secondaryArchSuffix
"
CONFLICTS="
blas$secondaryArchSuffix
cblas$secondaryArchSuffix
lapack$secondaryArchSuffix
"
PROVIDES_devel="
atlas${secondaryArchSuffix}_devel = $portVersion
devel:libatlas$secondaryArchSuffix = $portVersion compat >=3
devel:libcblas$secondaryArchSuffix = $portVersion compat >=3
devel:libf77blas$secondaryArchSuffix = $portVersion compat >=3
devel:liblapack$secondaryArchSuffix = $portVersion compat >=3
devel:libptcblas$secondaryArchSuffix = $portVersion compat >=3
devel:libptf77blas$secondaryArchSuffix = $portVersion compat >=3
"
REQUIRES_devel="
atlas$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
"
BUILD_PREREQUIRES="
binutils$secondaryArchSuffix
cmd:awk
cmd:bzip2
cmd:fgrep
cmd:find
cmd:g++$secondaryArchSuffix
cmd:gfortran$secondaryArchSuffix
cmd:make
cmd:sed
"
BUILD()
{
# Needs to be deleted!
rm -rf haiku_build || true
mkdir -p haiku_build
cd haiku_build
CORE=`sysinfo -cpu | grep -o "\w*MHz\w*" | grep -o '[0-9]*'` # CPU freq
NCPU=`sysinfo -cpu | grep "MHz" | awk '{print $1}'` # CPU count
if [ "$targetArchitecture" = "x86_64" ]; then
ARCHITECTURE_BUILD_OPTS="-b 64 -s 2 -A x86SSE2 -V 768" # for x86_64
else
ARCHITECTURE_BUILD_OPTS="-b 32 -s 1 -A x86x87 -V 512" # for i686
fi
echo 'Configuring ATLAS'
# Not an autotools package
../configure \
--prefix=$prefix \
--incdir=$includeDir \
--libdir=$libDir \
$ARCHITECTURE_BUILD_OPTS \
-Fa alg \
-fPIC \
--shared \
-D c -DPentiumCPS=$CORE \
-O 13 \
-t $NCPU \
-m $CORE
echo 'Building ATLAS'
make build
echo 'Building shared libraries'
cd lib
if [ 1 -lt $NCPU ]; then
cp "$sourceDir2/$SOURCE_FILENAME_2" makefile # shared.mt
else
cp "$sourceDir3/$SOURCE_FILENAME_3" makefile # shared.st
fi
make -f makefile $jobArgs
}
INSTALL()
{
echo 'Installing'
cd haiku_build
make install
cp -d lib/*.so* "$libDir"
[ -e lib/libptlapack.a ] && cp lib/libptlapack.a "$libDir"
ln -s $libDir/libblas.so $libDir/libblas.so.3
ln -s $libDir/liblapack.so.3 $libDir/liblapack.so
prepareInstalledDevelLibs \
libatlas \
libcblas \
libf77blas \
liblapack \
libptcblas \
libptf77blas
packageEntries devel \
$developDir
echo "This package provides a generic, not optimized version of ATLAS."
echo "In order to improve performance, we recommend compiling a version of ATLAS"
echo "optimized for your processor, using the atlas-lapack package in HaikuPorts"
}
TEST()
{
echo 'Testing'
cd haiku_build
make check
make ptcheck
make time
}