152 lines
4.2 KiB
Bash
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
|
|
}
|