mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
sci-libs/atlas: add 3.11.41
Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> Closes: https://github.com/gentoo/gentoo/pull/37726 Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
This commit is contained in:
committed by
Arthur Zamarin
parent
6393847c5e
commit
337352772f
@@ -1,4 +1,5 @@
|
||||
DIST atlas3.10.2.tar.bz2 4904923 BLAKE2B e2fb0d307907549644cb678c32c4befce7ce6809c348a11fa6084e17d696da8681b3388dd63d8bdee6040999d9ab38a75f1788b42640121a536eb5f13e6f8939 SHA512 9fe04cfa1f89449db047d1a4659a656964d13117c783cbbe43344eb32555736f037d9cd30c5ae1514c08ad5b8949a3982d7fe102d707ddb62288e76b2607fbb1
|
||||
DIST atlas3.10.3.tar.bz2 5156852 BLAKE2B cd3880a6d0c43b5840d4da26ac996cc9fe7615fc996229193ef1f936daa2c54c5465643def19f59dd5c481c447176e2ba3cf85d38c0b5008c2dc1bc18be0e65b SHA512 bf17306f09f2aa973cb776e2c9eacfb2409ad4d95d19802e1c4e0597d0a099fccdb5eaafe273c2682a41e41a3c6fabc8bbba4ce03180cffea40ede5df1d1f56e
|
||||
DIST atlas3.11.41.tar.bz2 6644195 BLAKE2B c046725f1a8978e345cb59026b93029483ecdfa0151256cca5dcdd337ced2a63819c19319795b663cd12180e8be0db475a3d1c1a5d76296ef333f99887d9e44a SHA512 06306c588505dcf22a1afa0f57d85b0008728deb5876e66b2710fee29712b979aa63eafc9142be2372b9895ba594cc5aba230aa3d1ddc95932af1e585478204d
|
||||
DIST lapack-3.12.0.tar.gz 7933607 BLAKE2B dafb1f9a717f2cbc00a26f8cff2c7a1ebb720714fe6d7bd5fabb511a2f4af317165814340864c9d601e4e16c7762f643fbbafc058170ebcdc6529a9b4f2d70b6 SHA512 f8f3c733a0221be0b3f5618235408ac59cbd4e5f1c4eab5f509b831a6ec6a9ef14b8849aa6ea10810df1aff90186ca454d15e9438d1dd271c2449d42d3da9dda
|
||||
DIST lapack-3.6.0.tgz 6792324 BLAKE2B 438f3376b63b38ef0fe70f6becac847816f3a11c01f5ab237dc0d941792ceb54dbd2f8dc22d56286f5dab3499289ed94e67521ea951a98973c9640abc294ad6c SHA512 bc50441d415ef8896dd7626d77c6104184b996e758704366288089f03d4c99d068e33153b0d13305310886017e5d2e716130f812a95cfcad36ef37fe20417ab8
|
||||
|
||||
225
sci-libs/atlas/atlas-3.11.41.ebuild
Normal file
225
sci-libs/atlas/atlas-3.11.41.ebuild
Normal file
@@ -0,0 +1,225 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
FORTRAN_NEEDED=fortran
|
||||
|
||||
inherit fortran-2 toolchain-funcs
|
||||
|
||||
LAPACKPV=3.12.0
|
||||
|
||||
DESCRIPTION="Automatically Tuned Linear Algebra Software"
|
||||
HOMEPAGE="https://math-atlas.sourceforge.net"
|
||||
SRC_URI="https://downloads.sourceforge.net/math-atlas/${PN}${PV}.tar.bz2
|
||||
fortran? ( lapack? (
|
||||
https://github.com/Reference-LAPACK/lapack/archive/refs/tags/v${LAPACKPV}.tar.gz
|
||||
-> lapack-${LAPACKPV}.tar.gz
|
||||
) )
|
||||
"
|
||||
S="${WORKDIR}/ATLAS"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="doc fortran generic lapack static-libs threads"
|
||||
|
||||
PATCHES=(
|
||||
# TODO These don't apply, find out why
|
||||
# "${FILESDIR}/${PN}-3.10.2-x32-support.patch"
|
||||
# "${FILESDIR}/${PN}-3.10.2-format-security.patch"
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
local _cpufreq
|
||||
for _cpufreq in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do
|
||||
if [[ -f ${_cpufreq} ]]; then
|
||||
if ! grep -q performance "${_cpufreq}"; then
|
||||
echo 2> /dev/null performance > "${_cpufreq}" || \
|
||||
die "${PN} needs all cpu set to performance"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
use fortran && fortran-2_pkg_setup
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# hack needed to trick the flaky gcc detection
|
||||
local mycc
|
||||
mycc="$(type -P "$(tc-getCC)")"
|
||||
[[ ${mycc} == *gcc* ]] && mycc=gcc
|
||||
atlas_configure() {
|
||||
local myconf=(
|
||||
--cripple-atlas-performance
|
||||
--prefix="/usr"
|
||||
--libdir="/usr/$(get_libdir)"
|
||||
--incdir="/usr/include"
|
||||
--cc="$(tc-getCC)"
|
||||
"-D c -DWALL"
|
||||
"-C acg '${mycc}'"
|
||||
"-F acg '${CFLAGS}'"
|
||||
"-Ss pmake '\$(MAKE) ${MAKEOPTS}'"
|
||||
)
|
||||
|
||||
# OpenMP shown to decreased performance over POSIX threads
|
||||
# (at least in 3.9.x, see atlas-dev mailing list)
|
||||
if use threads; then
|
||||
if use generic; then # 2 threads is most generic
|
||||
myconf+=( "-t 2" "-Si omp 0" )
|
||||
else
|
||||
myconf+=( "-t -1" "-Si omp 0" )
|
||||
fi
|
||||
else
|
||||
myconf+=( "-t 0" "-Si omp 0" )
|
||||
fi
|
||||
|
||||
if use amd64 || use ppc64 || use sparc; then
|
||||
if [[ ${ABI} = amd64 ]] || [[ ${ABI} = ppc64 ]] || [[ ${ABI} = sparc64 ]] ; then
|
||||
myconf+=( "-b 64" )
|
||||
elif [[ ${ABI} = x86 ]] || [[ ${ABI} = ppc ]] || [[ ${ABI} = sparc32 ]] ; then
|
||||
myconf+=( "-b 32" )
|
||||
elif [[ ${ABI} = x32 ]] ; then
|
||||
myconf+=( "-b 48" )
|
||||
else
|
||||
myconf+=( "-b 64" )
|
||||
fi
|
||||
elif use ppc || use x86; then
|
||||
myconf+=( "-b 32" )
|
||||
elif use ia64; then
|
||||
myconf+=( "-b 64" )
|
||||
fi
|
||||
if use fortran; then
|
||||
myconf+=(
|
||||
"-C if '$(type -P "$(tc-getFC)")'"
|
||||
"-F if '${FFLAGS}'"
|
||||
)
|
||||
if use lapack; then
|
||||
myconf+=(
|
||||
"-Si latune 1"
|
||||
"--with-netlib-lapack-tarfile=${DISTDIR}/lapack-${LAPACKPV}.tar.gz"
|
||||
)
|
||||
else
|
||||
myconf+=( "-Si latune 0" )
|
||||
fi
|
||||
else
|
||||
myconf+=( "-Si latune 0" "--nof77" )
|
||||
fi
|
||||
# generic stuff found by make make xprint_enums in atlas build dir
|
||||
# basically assuming sse2+sse1 and 2 threads max
|
||||
use generic && use x86 && myconf+=( "-V 384 -A 13")
|
||||
use generic && use amd64 && myconf+=( "-V 384 -A 24")
|
||||
|
||||
local confdir="${S}_${1}"; shift
|
||||
myconf+=( $@ )
|
||||
mkdir "${confdir}" || die
|
||||
cd "${confdir}" || die
|
||||
# for debugging
|
||||
echo "${myconf[@]}" > myconf.out
|
||||
"${S}"/configure ${myconf[@]} || die "configure in ${confdir} failed"
|
||||
}
|
||||
|
||||
atlas_configure shared "-Fa alg -fPIC" ${EXTRA_ECONF}
|
||||
use static-libs && atlas_configure static ${EXTRA_ECONF}
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
atlas_compile() {
|
||||
pushd "${S}_${1}" > /dev/null || die
|
||||
# atlas does its own parallel builds
|
||||
emake -j1 build
|
||||
cd lib || die
|
||||
emake libclapack.a
|
||||
[[ -e libptcblas.a ]] && emake libptclapack.a
|
||||
popd > /dev/null || die
|
||||
}
|
||||
|
||||
atlas_compile shared
|
||||
use static-libs && atlas_compile static
|
||||
}
|
||||
|
||||
src_test() {
|
||||
cd "${S}_shared" || die
|
||||
emake -j1 check time
|
||||
}
|
||||
|
||||
# transform a static archive into a shared library and install them
|
||||
# atlas_install_libs <mylib.a> [extra link flags]
|
||||
atlas_install_libs() {
|
||||
local libname soname
|
||||
libname=$(basename "${1%.*}")
|
||||
einfo "Installing ${libname}"
|
||||
soname=${libname}.so.$(ver_cut 1)
|
||||
shift
|
||||
pushd "${S}_shared"/lib > /dev/null || die
|
||||
${LINK:-$(tc-getCC)} ${LDFLAGS} -shared "-Wl,-soname=${soname}" \
|
||||
-Wl,--whole-archive "${libname}.a" -Wl,--no-whole-archive \
|
||||
$@ -o "${soname}" || die "Creating ${soname} failed"
|
||||
dolib.so "${soname}"
|
||||
ln -s "${soname}" "${soname%.*}"
|
||||
dosym "${soname}" "/usr/$(get_libdir)/${soname%.*}"
|
||||
popd > /dev/null || die
|
||||
use static-libs && dolib.a "${S}_static/lib/${libname}.a"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cd "${S}_shared/lib" || die
|
||||
# rename to avoid collision with other packages
|
||||
local l
|
||||
for l in {,c}{blas,lapack}; do
|
||||
if [[ -e lib${l}.a ]]; then
|
||||
mv lib{,atl}"${l}.a"
|
||||
use static-libs && mv "${S}"_static/lib/lib{,atl}"${l}.a"
|
||||
fi
|
||||
done
|
||||
|
||||
[[ -e libptcblas.a ]] && PTLIBS="-lpthread"
|
||||
|
||||
# atlas
|
||||
atlas_install_libs libatlas.a -lm "${PTLIBS}"
|
||||
|
||||
# cblas
|
||||
atlas_install_libs libatlcblas.a -lm -L. -latlas
|
||||
|
||||
# cblas threaded
|
||||
[[ -e libptcblas.a ]] && \
|
||||
atlas_install_libs libptcblas.a -lm -L. -latlas "${PTLIBS}"
|
||||
|
||||
if use lapack; then
|
||||
# clapack
|
||||
atlas_install_libs libatlclapack.a -lm -L. -latlas -latlcblas
|
||||
|
||||
# clapack threaded
|
||||
[[ -e libptclapack.a ]] && \
|
||||
atlas_install_libs libptclapack.a -lm -L. -latlas -lptcblas "${PTLIBS}"
|
||||
fi
|
||||
|
||||
if use fortran; then
|
||||
LINK=$(tc-getF77)
|
||||
|
||||
# blas
|
||||
atlas_install_libs libf77blas.a -lm -L. -latlas
|
||||
|
||||
# blas threaded
|
||||
[[ -e libptf77blas.a ]] && \
|
||||
atlas_install_libs libptf77blas.a -lm -L. -latlas "${PTLIBS}"
|
||||
|
||||
if use lapack; then
|
||||
# lapack
|
||||
atlas_install_libs libatllapack.a \
|
||||
-lm -L. -latlas -latlcblas -lf77blas
|
||||
# lapack threaded
|
||||
[[ -e libptlapack.a ]] && \
|
||||
atlas_install_libs libptlapack.a -lm -L. -latlas -lptcblas -lptf77blas "${PTLIBS}"
|
||||
fi
|
||||
fi
|
||||
|
||||
cd "${S}" || die
|
||||
insinto "/usr/include/${PN}"
|
||||
doins include/*.h
|
||||
|
||||
cd "${S}/doc" || die
|
||||
dodoc INDEX.txt AtlasCredits.txt ChangeLog
|
||||
use doc && dodoc atlas*pdf cblas.pdf cblasqref.pdf
|
||||
use doc && use fortran && dodoc f77blas*pdf
|
||||
use doc && use fortran && use lapack && dodoc -- *lapack*pdf
|
||||
}
|
||||
Reference in New Issue
Block a user