parent
bb7d3f31b3
commit
3538fd4133
@ -0,0 +1,28 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
DESCRIPTION="BLAS/CBLAS module for eselect"
|
||||||
|
HOMEPAGE="https://www.gentoo.org"
|
||||||
|
SRC_URI=""
|
||||||
|
|
||||||
|
LICENSE="GPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
|
||||||
|
IUSE=""
|
||||||
|
|
||||||
|
# Need skel.bash lib
|
||||||
|
RDEPEND=">=app-admin/eselect-1.0.5
|
||||||
|
!app-eselect/eselect-cblas"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
|
||||||
|
S="${WORKDIR}"
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local MODULEDIR="/usr/share/eselect/modules"
|
||||||
|
local MODULE="blas"
|
||||||
|
insinto ${MODULEDIR}
|
||||||
|
newins "${FILESDIR}"/${MODULE}.eselect-${PVR} ${MODULE}.eselect
|
||||||
|
doman "${FILESDIR}"/blas.eselect.5
|
||||||
|
}
|
@ -0,0 +1,168 @@
|
|||||||
|
# -*-eselect-*- vim: ft=eselect
|
||||||
|
# Copyright 2019 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU GPL version 2 or later
|
||||||
|
|
||||||
|
inherit config tests multilib skel
|
||||||
|
|
||||||
|
MODULE="BLAS/CBLAS"
|
||||||
|
IFACE="blas"
|
||||||
|
DESCRIPTION="Manage installed alternatives of $MODULE shared objects"
|
||||||
|
MAINTAINER="lumin@debian.org"
|
||||||
|
VERSION="20190621"
|
||||||
|
|
||||||
|
### helper utility to find all available BLAS/CBLAS implementations
|
||||||
|
find_targets_in() {
|
||||||
|
[[ $# -eq 1 ]] || die -q "in which libdir?"
|
||||||
|
|
||||||
|
local cand
|
||||||
|
for cand in ${EROOT}/etc/env.d/blas/$1/*; do
|
||||||
|
[[ "config" = $(basename ${cand}) ]] && continue
|
||||||
|
[[ -r ${cand} ]] && basename ${cand}
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
### helper utility to validate a BLAS/CBLAS library directory
|
||||||
|
validate_blaslibdir() {
|
||||||
|
[[ -d $1 ]] || return 2 # dir doesn't exist
|
||||||
|
[[ -r "${1}/libblas.so.3" ]] && [[ -r "${1}/libblas.so" ]] \
|
||||||
|
&& [[ -r "${1}/libcblas.so.3" ]] && [[ -r "${1}/libcblas.so" ]] \
|
||||||
|
|| return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
### show action
|
||||||
|
do_show() {
|
||||||
|
# do_show -- show both lib64 and lib32 selection
|
||||||
|
# do_show libxx -- show libxx selection
|
||||||
|
local libdir cur libdirs=( $(list_libdirs) )
|
||||||
|
|
||||||
|
# if manually specified libdirs
|
||||||
|
if [[ ! $# -eq 0 ]]; then
|
||||||
|
for libdir in $@; do
|
||||||
|
has $libdir ${libdirs[@]} || die -q "invalid libdir '$libdir'!"
|
||||||
|
done
|
||||||
|
libdirs=( $@ )
|
||||||
|
fi
|
||||||
|
|
||||||
|
for libdir in ${libdirs[@]}; do
|
||||||
|
[[ ! -d ${EROOT}/usr/$libdir ]] && continue
|
||||||
|
[[ ! -r ${EROOT}/etc/env.d/blas/${libdir}/config ]] && continue
|
||||||
|
cur=$(load_config ${EROOT}/etc/env.d/blas/${libdir}/config CURRENT)
|
||||||
|
echo ${libdir}: $cur
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
### list action
|
||||||
|
do_list() {
|
||||||
|
local i cur targets
|
||||||
|
local libdir libdirs=( $(list_libdirs) )
|
||||||
|
|
||||||
|
# if manually specified libdirs
|
||||||
|
if [[ ! $# -eq 0 ]]; then
|
||||||
|
for libdir in $@; do
|
||||||
|
has $libdir ${libdirs[@]} || die -q "invalid libdir '$libdir'!"
|
||||||
|
done
|
||||||
|
libdirs=( $@ )
|
||||||
|
fi
|
||||||
|
|
||||||
|
for libdir in ${libdirs[@]}; do
|
||||||
|
[[ ! -d ${EROOT}/usr/$libdir ]] || [[ -L ${EROOT}/usr/$libdir ]] && continue
|
||||||
|
targets=( $(find_targets_in $libdir) )
|
||||||
|
cur=$(load_config ${EROOT}/etc/env.d/blas/${libdir}/config CURRENT)
|
||||||
|
|
||||||
|
write_list_start "Available BLAS/CBLAS ($libdir) candidates:"
|
||||||
|
for (( i = 0; i < ${#targets[@]}; i++ )); do
|
||||||
|
[[ ${targets[i]} = $cur ]] \
|
||||||
|
&& targets[i]=$(highlight_marker "${targets[i]}")
|
||||||
|
done
|
||||||
|
write_numbered_list -m "(none found)" "${targets[@]}"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
### validate action
|
||||||
|
describe_validate() {
|
||||||
|
echo "validate candidates and remove invalid ones"
|
||||||
|
}
|
||||||
|
|
||||||
|
do_validate() {
|
||||||
|
local i ldpath targets target candidate
|
||||||
|
local libdir libdirs=( $(list_libdirs) )
|
||||||
|
for libdir in ${libdirs[@]}; do
|
||||||
|
[[ ! -d ${EROOT}/usr/$libdir ]] || [[ -L ${EROOT}/usr/$libdir ]] && continue
|
||||||
|
targets=( $(find_targets_in $libdir) )
|
||||||
|
for target in ${targets[@]}; do
|
||||||
|
candidate=${EROOT}/etc/env.d/blas/${libdir}/${target}
|
||||||
|
ldpath=$(load_config $candidate LDPATH)
|
||||||
|
if ! validate_blaslibdir $ldpath; then
|
||||||
|
echo "Removing invalid BLAS/CBLAS candidate ($candidate) ..."
|
||||||
|
rm -v $candidate
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
### set action
|
||||||
|
|
||||||
|
describe_set() {
|
||||||
|
echo "Activate one of the installed $MODULE implementations"
|
||||||
|
}
|
||||||
|
|
||||||
|
describe_set_parameters() {
|
||||||
|
echo "[<libdir>] <implementation>"
|
||||||
|
}
|
||||||
|
|
||||||
|
describe_set_options() {
|
||||||
|
echo "libdir: lib64 or lib32. Will use the native one when omitted."
|
||||||
|
echo "implementation : implementation name or number (from 'list' action)"
|
||||||
|
}
|
||||||
|
|
||||||
|
do_set() {
|
||||||
|
local libdirs=( $(list_libdirs) )
|
||||||
|
local targets libdir ldconf libpath impl
|
||||||
|
|
||||||
|
# check argument existence
|
||||||
|
[[ $# -eq 1 ]] || [[ $# -eq 2 ]] || \
|
||||||
|
die -q "Please specify [<libdir>] <impl> to activate!"
|
||||||
|
# read argumenets
|
||||||
|
if [[ $# -eq 2 ]]; then libdir="$1"; else libdir="$(get_libdir)"; fi
|
||||||
|
if [[ $# -eq 2 ]]; then impl="$2"; else impl="$1"; fi
|
||||||
|
# validate arguments
|
||||||
|
has "$libdir" "${libdirs[@]}" || die -q "Invalid libdir ($libdir) !"
|
||||||
|
targets=( $(find_targets_in $libdir) )
|
||||||
|
if ! has "$impl" "${targets[@]}"; then
|
||||||
|
if [[ ${impl} -gt 0 ]] && [[ ${impl} -le ${#targets[@]} ]]; then
|
||||||
|
impl=${targets[(${impl} - 1)]}
|
||||||
|
else
|
||||||
|
die -q "Invalid impl ($impl) !"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# store the configuration to env.d
|
||||||
|
store_config ${EROOT}/etc/env.d/blas/${libdir}/config CURRENT "${impl}"
|
||||||
|
# generate ld.so.conf file
|
||||||
|
ldconf="${EROOT}/etc/ld.so.conf.d/81-blas-${libdir}.conf"
|
||||||
|
libpath=$(load_config ${EROOT}/etc/env.d/blas/${libdir}/${impl} LDPATH)
|
||||||
|
truncate -s0 $ldconf
|
||||||
|
echo "# Auto-generated by eselect::blas. DON'T EDIT." >> $ldconf
|
||||||
|
echo "$libpath" >> $ldconf
|
||||||
|
|
||||||
|
# refresh cache. env-update will call ldconfig (see
|
||||||
|
# portage::env_update.py) so we don't need to call it explicitly.
|
||||||
|
env-update
|
||||||
|
}
|
||||||
|
|
||||||
|
### add action
|
||||||
|
describe_add_parameters() {
|
||||||
|
echo "<libdir> <dir> <impl>"
|
||||||
|
}
|
||||||
|
|
||||||
|
describe_add_options() {
|
||||||
|
echo "libdir : library directory where $MODULE implementation is installed (lib, lib64, etc.)"
|
||||||
|
echo "dir : directory containing lib{,c}blas.so{.3}"
|
||||||
|
echo "impl : name of the $MODULE implementation"
|
||||||
|
}
|
||||||
|
|
||||||
|
do_add() {
|
||||||
|
[[ $# -eq 3 ]] \
|
||||||
|
|| die -q "Please specify <libdir> <dir> <impl> to activate!"
|
||||||
|
validate_blaslibdir $2 || die -q "invalid blas libdir!"
|
||||||
|
store_config ${EROOT}/etc/env.d/blas/$1/$3 LDPATH $2
|
||||||
|
}
|
@ -0,0 +1,79 @@
|
|||||||
|
.TH "ESELECT" "5" "June 2019" "Gentoo Linux" "eselect"
|
||||||
|
.SH "NAME"
|
||||||
|
blas.eselect \- The BLAS management module for Gentoo's eselect
|
||||||
|
.SH "SYNOPSIS"
|
||||||
|
\fBeselect blas\fR [\fBhelp\fR|\fBusage\fR]
|
||||||
|
.br
|
||||||
|
\fBeselect blas\fR \fBlist\fR [\fIlibdir\fR]
|
||||||
|
.br
|
||||||
|
\fBeselect blas\fR \fBadd\fR
|
||||||
|
.br
|
||||||
|
\fBeselect blas\fR \fBset\fR [\fIlibdir\fR] \fIimplementation\fR
|
||||||
|
.br
|
||||||
|
\fBeselect blas\fR \fBshow\fR [\fIlibdir\fR]
|
||||||
|
|
||||||
|
.SH "DESCRIPTION"
|
||||||
|
\fBeselect\fR is Gentoo's configuration and management tool. It features
|
||||||
|
modules that care for the individual administrative tasks.
|
||||||
|
.SH "ACTION: LIST"
|
||||||
|
\fBeselect blas list\fR [\fIlibdir\fR]
|
||||||
|
.br
|
||||||
|
Displays an ordered list of installed BLAS implementations. It distinguishes between versions with different
|
||||||
|
Application Binary Interfaces (e.g. x86/AMD64). Furthermore, it also distinguishes
|
||||||
|
between interfaces to high-level programming languages. Each line holds
|
||||||
|
a number and the implementation's name. An asterisk next to one of the list
|
||||||
|
elements denotes an active implementation.
|
||||||
|
|
||||||
|
phi / # eselect blas list
|
||||||
|
.br
|
||||||
|
Installed BLAS for libdir \fBlib\fR
|
||||||
|
.br
|
||||||
|
[1] atlas *
|
||||||
|
[2] reference
|
||||||
|
|
||||||
|
Possible \fIlibdir\fR to the \fBlist\fR action are restrictions to
|
||||||
|
handle only certain ABI\-specific library directories. For example,
|
||||||
|
|
||||||
|
\fBeselect blas list lib64\fR
|
||||||
|
|
||||||
|
lists only BLAS implementations found in \fB/usr/lib64\fR.
|
||||||
|
|
||||||
|
.SH "ACTION: SHOW"
|
||||||
|
\fBeselect blas show\fR [\fIlibdir\fR]
|
||||||
|
.br
|
||||||
|
Shows your system's currently active BLAS implementations.
|
||||||
|
|
||||||
|
phi / # eselect blas show
|
||||||
|
.br
|
||||||
|
lib: atlas
|
||||||
|
.br
|
||||||
|
lib64: reference
|
||||||
|
|
||||||
|
The same \fIlibdir\fR that apply to the \fBlist\fR action can be used
|
||||||
|
with the \fBshow\fR action to restrict it to given ABIs.
|
||||||
|
.SH "ACTION: SET"
|
||||||
|
\fBeselect blas set\fR [\fIlibdir\fR] \fIimplementation\fR
|
||||||
|
.br
|
||||||
|
Sets your system's currently active BLAS implementations to \fIimplementation\fR.
|
||||||
|
The same \fIlibdir\fR that apply to the \fBlist\fR action can be used
|
||||||
|
with the \fBset\fR action to restrict it to given ABIs.
|
||||||
|
|
||||||
|
phi / # eselect blas set atlas
|
||||||
|
|
||||||
|
.SH "ACTION: VALIDATE"
|
||||||
|
\fBeselect blas validate\fR
|
||||||
|
.br
|
||||||
|
Validates BLAS/CBLAS candidates under the /etc/env.d directory and automatically
|
||||||
|
remove the invalid ones.
|
||||||
|
|
||||||
|
.SH "ACTION: ADD"
|
||||||
|
\fBeselect blas add\fR \fIlibdir\fR \fIdir\fR \fIimpl\fR
|
||||||
|
.br
|
||||||
|
Add a new BLAS/CBLAS implementation.
|
||||||
|
|
||||||
|
.SH "AUTHOR"
|
||||||
|
Danny van Dyk <kugelfang@gentoo.org>
|
||||||
|
.br
|
||||||
|
Donnie Berkholz <spyderous@gentoo.org>
|
||||||
|
.br
|
||||||
|
Mo Zhou <lumin@debian.org>
|
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="project">
|
||||||
|
<email>sci@gentoo.org</email>
|
||||||
|
<name>Gentoo Science Project</name>
|
||||||
|
</maintainer>
|
||||||
|
</pkgmetadata>
|
@ -0,0 +1,27 @@
|
|||||||
|
# Copyright 1999-2019 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
DESCRIPTION="LAPACK module for eselect"
|
||||||
|
HOMEPAGE="https://www.gentoo.org"
|
||||||
|
SRC_URI=""
|
||||||
|
|
||||||
|
LICENSE="GPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="alpha amd64 ~arm ~arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86"
|
||||||
|
IUSE=""
|
||||||
|
|
||||||
|
# Need skel.bash lib
|
||||||
|
RDEPEND=">=app-admin/eselect-1.0.5"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
|
||||||
|
S="${WORKDIR}"
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
local MODULEDIR="/usr/share/eselect/modules"
|
||||||
|
local MODULE="lapack"
|
||||||
|
insinto ${MODULEDIR}
|
||||||
|
newins "${FILESDIR}"/${MODULE}.eselect-${PVR} ${MODULE}.eselect
|
||||||
|
doman "${FILESDIR}"/lapack.eselect.5
|
||||||
|
}
|
@ -0,0 +1,167 @@
|
|||||||
|
# -*-eselect-*- vim: ft=eselect
|
||||||
|
# Copyright 2019 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU GPL version 2 or later
|
||||||
|
|
||||||
|
inherit config tests multilib skel
|
||||||
|
|
||||||
|
MODULE="LAPACK"
|
||||||
|
IFACE="lapack"
|
||||||
|
DESCRIPTION="Manage installed alternatives of $MODULE shared objects"
|
||||||
|
MAINTAINER="lumin@debian.org"
|
||||||
|
VERSION="20190621"
|
||||||
|
|
||||||
|
### helper utility to find all available LAPACK implementations
|
||||||
|
find_targets_in() {
|
||||||
|
[[ $# -eq 1 ]] || die -q "in which libdir?"
|
||||||
|
|
||||||
|
local cand
|
||||||
|
for cand in ${EROOT}/etc/env.d/lapack/$1/*; do
|
||||||
|
[[ "config" = $(basename ${cand}) ]] && continue
|
||||||
|
[[ -r ${cand} ]] && basename ${cand}
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
### helper utility to validate a LAPACK library directory
|
||||||
|
validate_lapacklibdir() {
|
||||||
|
[[ -d $1 ]] || return 2 # dir doesn't exist
|
||||||
|
[[ -r "${1}/liblapack.so.3" ]] && [[ -r "${1}/liblapack.so" ]] \
|
||||||
|
|| return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
### show action
|
||||||
|
do_show() {
|
||||||
|
# do_show -- show both lib64 and lib32 selection
|
||||||
|
# do_show libxx -- show libxx selection
|
||||||
|
local libdir cur libdirs=( $(list_libdirs) )
|
||||||
|
|
||||||
|
# if manually specified libdirs
|
||||||
|
if [[ ! $# -eq 0 ]]; then
|
||||||
|
for libdir in $@; do
|
||||||
|
has $libdir ${libdirs[@]} || die -q "invalid libdir '$libdir'!"
|
||||||
|
done
|
||||||
|
libdirs=( $@ )
|
||||||
|
fi
|
||||||
|
|
||||||
|
for libdir in ${libdirs[@]}; do
|
||||||
|
[[ ! -d ${EROOT}/usr/$libdir ]] && continue
|
||||||
|
[[ ! -r ${EROOT}/etc/env.d/lapack/${libdir}/config ]] && continue
|
||||||
|
cur=$(load_config ${EROOT}/etc/env.d/lapack/${libdir}/config CURRENT)
|
||||||
|
echo ${libdir}: $cur
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
### list action
|
||||||
|
do_list() {
|
||||||
|
local i cur targets
|
||||||
|
local libdir libdirs=( $(list_libdirs) )
|
||||||
|
|
||||||
|
# if manually specified libdirs
|
||||||
|
if [[ ! $# -eq 0 ]]; then
|
||||||
|
for libdir in $@; do
|
||||||
|
has $libdir ${libdirs[@]} || die -q "invalid libdir '$libdir'!"
|
||||||
|
done
|
||||||
|
libdirs=( $@ )
|
||||||
|
fi
|
||||||
|
|
||||||
|
for libdir in ${libdirs[@]}; do
|
||||||
|
[[ ! -d ${EROOT}/usr/$libdir ]] || [[ -L ${EROOT}/usr/$libdir ]] && continue
|
||||||
|
targets=( $(find_targets_in $libdir) )
|
||||||
|
cur=$(load_config ${EROOT}/etc/env.d/lapack/${libdir}/config CURRENT)
|
||||||
|
|
||||||
|
write_list_start "Available LAPACK ($libdir) candidates:"
|
||||||
|
for (( i = 0; i < ${#targets[@]}; i++ )); do
|
||||||
|
[[ ${targets[i]} = $cur ]] \
|
||||||
|
&& targets[i]=$(highlight_marker "${targets[i]}")
|
||||||
|
done
|
||||||
|
write_numbered_list -m "(none found)" "${targets[@]}"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
### validate action
|
||||||
|
describe_validate() {
|
||||||
|
echo "validate candidates and remove invalid ones"
|
||||||
|
}
|
||||||
|
|
||||||
|
do_validate() {
|
||||||
|
local i ldpath targets target candidate
|
||||||
|
local libdir libdirs=( $(list_libdirs) )
|
||||||
|
for libdir in ${libdirs[@]}; do
|
||||||
|
[[ ! -d ${EROOT}/usr/$libdir ]] || [[ -L ${EROOT}/usr/$libdir ]] && continue
|
||||||
|
targets=( $(find_targets_in $libdir) )
|
||||||
|
for target in ${targets[@]}; do
|
||||||
|
candidate=${EROOT}/etc/env.d/lapack/${libdir}/${target}
|
||||||
|
ldpath=$(load_config $candidate LDPATH)
|
||||||
|
if ! validate_lapacklibdir $ldpath; then
|
||||||
|
echo "Removing invalid LAPACK candidate ($candidate) ..."
|
||||||
|
rm -v $candidate
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
### set action
|
||||||
|
|
||||||
|
describe_set() {
|
||||||
|
echo "Activate one of the installed $MODULE implementations"
|
||||||
|
}
|
||||||
|
|
||||||
|
describe_set_parameters() {
|
||||||
|
echo "[<libdir>] <implementation>"
|
||||||
|
}
|
||||||
|
|
||||||
|
describe_set_options() {
|
||||||
|
echo "libdir: lib64 or lib32. Will use the native one when omitted."
|
||||||
|
echo "implementation : implementation name or number (from 'list' action)"
|
||||||
|
}
|
||||||
|
|
||||||
|
do_set() {
|
||||||
|
local libdirs=( $(list_libdirs) )
|
||||||
|
local targets libdir ldconf libpath impl
|
||||||
|
|
||||||
|
# check argument existence
|
||||||
|
[[ $# -eq 1 ]] || [[ $# -eq 2 ]] || \
|
||||||
|
die -q "Please specify [<libdir>] <impl> to activate!"
|
||||||
|
# read argumenets
|
||||||
|
if [[ $# -eq 2 ]]; then libdir="$1"; else libdir="$(get_libdir)"; fi
|
||||||
|
if [[ $# -eq 2 ]]; then impl="$2"; else impl="$1"; fi
|
||||||
|
# validate arguments
|
||||||
|
has "$libdir" "${libdirs[@]}" || die -q "Invalid libdir ($libdir) !"
|
||||||
|
targets=( $(find_targets_in $libdir) )
|
||||||
|
if ! has "$impl" "${targets[@]}"; then
|
||||||
|
if [[ ${impl} -gt 0 ]] && [[ ${impl} -le ${#targets[@]} ]]; then
|
||||||
|
impl=${targets[(${impl} - 1)]}
|
||||||
|
else
|
||||||
|
die -q "Invalid impl ($impl) !"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# store the configuration to env.d
|
||||||
|
store_config ${EROOT}/etc/env.d/lapack/${libdir}/config CURRENT "${impl}"
|
||||||
|
# generate ld.so.conf file
|
||||||
|
ldconf="${EROOT}/etc/ld.so.conf.d/82-lapack-${libdir}.conf"
|
||||||
|
libpath=$(load_config ${EROOT}/etc/env.d/lapack/${libdir}/${impl} LDPATH)
|
||||||
|
truncate -s0 $ldconf
|
||||||
|
echo "# Auto-generated by eselect::lapack. DON'T EDIT." >> $ldconf
|
||||||
|
echo "$libpath" >> $ldconf
|
||||||
|
|
||||||
|
# refresh cache. env-update will call ldconfig (see
|
||||||
|
# portage::env_update.py) so we don't need to call it explicitly.
|
||||||
|
env-update
|
||||||
|
}
|
||||||
|
|
||||||
|
### add action
|
||||||
|
describe_add_parameters() {
|
||||||
|
echo "<libdir> <dir> <impl>"
|
||||||
|
}
|
||||||
|
|
||||||
|
describe_add_options() {
|
||||||
|
echo "libdir : library directory where $MODULE implementation is installed (lib, lib64, etc.)"
|
||||||
|
echo "dir : directory containing liblapack.so{.3}"
|
||||||
|
echo "impl : name of the $MODULE implementation"
|
||||||
|
}
|
||||||
|
|
||||||
|
do_add() {
|
||||||
|
[[ $# -eq 3 ]] \
|
||||||
|
|| die -q "Please specify <libdir> <dir> <impl> to activate!"
|
||||||
|
validate_lapacklibdir $2 || die -q "invalid lapack libdir!"
|
||||||
|
store_config ${EROOT}/etc/env.d/lapack/$1/$3 LDPATH $2
|
||||||
|
}
|
@ -0,0 +1,79 @@
|
|||||||
|
.TH "ESELECT" "5" "June 2019" "Gentoo Linux" "eselect"
|
||||||
|
.SH "NAME"
|
||||||
|
lapack.eselect \- The LAPACK management module for Gentoo's eselect
|
||||||
|
.SH "SYNOPSIS"
|
||||||
|
\fBeselect lapack\fR [\fBhelp\fR|\fBusage\fR]
|
||||||
|
.br
|
||||||
|
\fBeselect lapack\fR \fBlist\fR [\fIlibdir\fR]
|
||||||
|
.br
|
||||||
|
\fBeselect lapack\fR \fBadd\fR
|
||||||
|
.br
|
||||||
|
\fBeselect lapack\fR \fBset\fR [\fIoptions\fR] \fIimplementation\fR
|
||||||
|
.br
|
||||||
|
\fBeselect lapack\fR \fBshow\fR [\fIlibdir\fR]
|
||||||
|
|
||||||
|
.SH "DESCRIPTION"
|
||||||
|
\fBeselect\fR is Gentoo's configuration and management tool. It features
|
||||||
|
modules that care for the individual administrative tasks.
|
||||||
|
.SH "ACTION: LIST"
|
||||||
|
\fBeselect lapack list\fR [\fIlibdir\fR]
|
||||||
|
.br
|
||||||
|
Displays an ordered list of installed LAPACK implementations. It distinguishes between versions with different
|
||||||
|
Application Binary Interfaces (e.g. x86/AMD64). Furthermore, it also distinguishes
|
||||||
|
between interfaces to high-level programming languages. Each line holds
|
||||||
|
a number and the implementation's name. An asterisk next to one of the list
|
||||||
|
elements denotes an active implementation.
|
||||||
|
|
||||||
|
phi / # eselect lapack list
|
||||||
|
.br
|
||||||
|
Installed LAPACK for libdir \fBlib\fR
|
||||||
|
.br
|
||||||
|
[1] atlas *
|
||||||
|
[2] reference
|
||||||
|
|
||||||
|
Possible \fIoptions\fR to the \fBlist\fR action are restrictions to
|
||||||
|
handle only certain ABI\-specific library directories. For example,
|
||||||
|
|
||||||
|
\fBeselect lapack list lib64\fR
|
||||||
|
|
||||||
|
lists only LAPACK implementations found in \fB/usr/lib64\fR.
|
||||||
|
|
||||||
|
.SH "ACTION: SHOW"
|
||||||
|
\fBeselect lapack show\fR [\fIlibdir\fR]
|
||||||
|
.br
|
||||||
|
Shows your system's currently active LAPACK implementations.
|
||||||
|
|
||||||
|
phi / # eselect lapack show
|
||||||
|
.br
|
||||||
|
lib: atlas
|
||||||
|
.br
|
||||||
|
lib64: reference
|
||||||
|
|
||||||
|
The same \fIoptions\fR that apply to the \fBlist\fR action can be used
|
||||||
|
with the \fBshow\fR action to restrict it to given ABIs.
|
||||||
|
.SH "ACTION: SET"
|
||||||
|
\fBeselect lapack set\fR \fIimplementation\fR [\fIoptions\fR]
|
||||||
|
.br
|
||||||
|
Sets your system's currently active LAPACK implementations to \fIimplementation\fR.
|
||||||
|
The same \fIoptions\fR that apply to the \fBlist\fR action can be used
|
||||||
|
with the \fBset\fR action to restrict it to given ABIs.
|
||||||
|
|
||||||
|
phi / # eselect lapack set atlas
|
||||||
|
|
||||||
|
.SH "ACTION: VALIDATE"
|
||||||
|
\fBeselect lapack validate\fR
|
||||||
|
.br
|
||||||
|
Validates LAPACK candidates under the /etc/env.d directory and automatically
|
||||||
|
remove the invalid ones.
|
||||||
|
|
||||||
|
.SH "ACTION: ADD"
|
||||||
|
\fBeselect lapack add\fR \fIlibdir\fR \fIdir\fR \fIimpl\fR
|
||||||
|
.br
|
||||||
|
Add a new LAPACK implementation.
|
||||||
|
|
||||||
|
.SH "AUTHOR"
|
||||||
|
Danny van Dyk <kugelfang@gentoo.org>
|
||||||
|
.br
|
||||||
|
Donnie Berkholz <spyderous@gentoo.org>
|
||||||
|
.br
|
||||||
|
Mo Zhou <lumin@debian.org>
|
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="project">
|
||||||
|
<email>sci@gentoo.org</email>
|
||||||
|
<name>Gentoo Science Project</name>
|
||||||
|
</maintainer>
|
||||||
|
</pkgmetadata>
|
Loading…
Reference in new issue