mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2025-12-21 21:17:37 -08:00
sci-mathematics/slepc: add 3.23.1
Closes: https://bugs.gentoo.org/951047 Closes: https://bugs.gentoo.org/952691 Closes: https://bugs.gentoo.org/958033 Signed-off-by: Matthias Maier <tamiko@gentoo.org>
This commit is contained in:
parent
430d378504
commit
a6fc307b4b
@ -1,2 +1,4 @@
|
||||
DIST slepc-3.22.1.tar.gz 1867493 BLAKE2B 812ce600ef88ff6cb3933f33d5c39f36402e0980f66988d21e2401d1eddd58ae0176ca09e457bbdcee6ba45d8bca33d829090c142255b27a0a06281bb682c14d SHA512 f82c6c867a720c3c4d02187f664f3889116ea0a926ecb19bf7153a64518721f3cc0497badf93df680155463d6b5484884d2b42556aa1140b6dfaa5ef8b9db6db
|
||||
DIST slepc-3.23.1.tar.gz 1769307 BLAKE2B 99ca6841d5d089577cb1f2b2892d0d263a8187104a6eed14a20294d5e23021dc0f02bfa4bc9e08c3ea3b71feeb31788ca6aa2c895cbf3c149614fcb7edbb7e3b SHA512 b91d1b014cab0f53ada0b57c796d0cea2d1baf2d6ea093e351164e6ab34cf11d3d159120851ac40f3bd4ae8b7f15f185700e3f6dd2312bf4e6aeb5203770a0ad
|
||||
DIST slepc-with-docs-3.22.1.tar.gz 6492734 BLAKE2B d019dc15bb27e82579bd56c90f100787567ff18c9c78664fa26f290323af545a95b970d5bf679d0fac992b4860d4c2d2d7617d95af24cf05e875301469550585 SHA512 c46b47825a50a9f8433b7710ba8a1d43371bd7acecb41498a710fd9b1b1e4bf3f50613f22e39c2f02cd19779cadb3ffe22bc0b57b123871c0f2a19c0e9298723
|
||||
DIST slepc-with-docs-3.23.1.tar.gz 6417187 BLAKE2B 81c56d8c2b0eacdc1763822819f4db98eb91cbde0f80f22652d3e14ba48245248fbe53e9c5df9740f223d81b5ad1c45b8069dbeafb2015aea33f5c3f11653d35 SHA512 b6c082b4ce3a59bc530f37f73d6ec675c75a1fa1cc7a96f2e2705bbec809f74b95dafed60dd3f41f4acfaed4ce9794f816b48697562b2c8d2706361c7c63f147
|
||||
|
||||
125
sci-mathematics/slepc/slepc-3.23.1.ebuild
Normal file
125
sci-mathematics/slepc/slepc-3.23.1.ebuild
Normal file
@ -0,0 +1,125 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
|
||||
inherit python-any-r1
|
||||
|
||||
DESCRIPTION="Scalable Library for Eigenvalue Problem Computations"
|
||||
HOMEPAGE="https://slepc.upv.es/"
|
||||
SRC_URI="
|
||||
!doc? ( https://slepc.upv.es/download/distrib/${P}.tar.gz )
|
||||
doc? ( https://slepc.upv.es/download/distrib/${PN}-with-docs-${PV}.tar.gz )"
|
||||
|
||||
LICENSE="LGPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="arpack complex-scalars doc +examples mpi"
|
||||
|
||||
REQUIRED_USE="arpack? ( mpi )"
|
||||
|
||||
RDEPEND="
|
||||
=sci-mathematics/petsc-$(ver_cut 1-2)*:=[examples,mpi=,complex-scalars=]
|
||||
arpack? ( sci-libs/arpack[mpi=] )
|
||||
mpi? ( virtual/mpi )
|
||||
"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
${PYTHON_DEPS}
|
||||
virtual/pkgconfig
|
||||
dev-build/cmake
|
||||
"
|
||||
|
||||
MAKEOPTS="${MAKEOPTS} V=1"
|
||||
|
||||
src_unpack() {
|
||||
use doc || unpack ${P}.tar.gz
|
||||
use doc && unpack ${PN}-with-docs-${PV}.tar.gz
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# *sigh*
|
||||
addpredict "${PETSC_DIR}"/.nagged
|
||||
|
||||
# Make sure that the environment is set up correctly:
|
||||
unset PETSC_DIR
|
||||
unset PETSC_ARCH
|
||||
source "${EPREFIX}"/etc/env.d/99petsc
|
||||
export PETSC_DIR
|
||||
export PETSC_ARCH
|
||||
export SLEPC_DIR="${S}"
|
||||
|
||||
# configure is a custom python script and doesn't want to have default
|
||||
# configure arguments that we set with econf
|
||||
if use arpack; then
|
||||
./configure \
|
||||
--prefix="${EPREFIX}/usr/$(get_libdir)/slepcdir" \
|
||||
--with-arpack=1 \
|
||||
--with-arpack-lib="$(usex mpi "-lparpack -larpack" "-larpack")"
|
||||
else
|
||||
./configure \
|
||||
--prefix="${EPREFIX}/usr/$(get_libdir)/slepcdir" \
|
||||
--with-arpack=0
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
#
|
||||
# Clean up the mess:
|
||||
#
|
||||
|
||||
# put all include directories under a proper subdirectory
|
||||
mkdir "${ED}"/usr/include || die "mkdir failed (include)"
|
||||
mv "${ED}"/usr/{$(get_libdir)/slepcdir/include,include/slepc} || die "mv failed (include)"
|
||||
|
||||
# put libraries and pkconfig file into proper place
|
||||
mv "${ED}"/usr/$(get_libdir)/slepcdir/lib/{libslepc*,pkgconfig} \
|
||||
"${ED}/usr/$(get_libdir)" || die "mv failed (lib)"
|
||||
|
||||
# move share to proper location
|
||||
mv "${ED}"/usr/{$(get_libdir)/slepcdir/share,share} || die "mv failed (share)"
|
||||
|
||||
# fix pc files:
|
||||
sed -i \
|
||||
-e 's#include$#include/slepc#' \
|
||||
-e "s#lib\$#$(get_libdir)#" \
|
||||
-e "s#^prefix=.*slepcdir\$#prefix=${EPREFIX}/usr#" \
|
||||
"${ED}"/usr/$(get_libdir)/pkgconfig/*.pc || die "sed failed (pkgconfig)"
|
||||
|
||||
# recreate a "valid" slepcdir:
|
||||
for i in "${ED}"/usr/$(get_libdir)/*; do
|
||||
[ $(basename $i) = slepcdir ] && continue
|
||||
ln -s "${EPREFIX}/usr/$(get_libdir)/$(basename $i)" \
|
||||
"${ED}/usr/$(get_libdir)/slepcdir/lib/$(basename $i)" || die "ln failed (slepcdir)"
|
||||
done
|
||||
ln -s "${EPREFIX}"/usr/include/slepc/ \
|
||||
"${ED}/usr/$(get_libdir)/slepcdir/include" || die "ln failed (slepcdir)"
|
||||
mkdir "${ED}/usr/$(get_libdir)/slepcdir/share" || die "mkdir fialed (slepcdir)"
|
||||
ln -s "${EPREFIX}"/usr/share/slepc/ \
|
||||
"${ED}/usr/$(get_libdir)/slepcdir/share/slepc" || die "ln failed (slepcdir)"
|
||||
|
||||
if use examples; then
|
||||
mkdir -p "${ED}"/usr/share/doc/${PF} || die "mkdir failed (examples)"
|
||||
mv "${ED}"/usr/share/slepc/examples "${ED}"/usr/share/doc/${PF} || die "mv failed (examples)"
|
||||
ln -s "${EPREFIX}"/usr/share/doc/${PF}/examples "${ED}"/usr/share/slepc/examples || die "ln failed (examples)"
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
else
|
||||
rm -r "${ED}"/usr/share/slepc/examples || die "rm failed (examples)"
|
||||
fi
|
||||
|
||||
if use doc ; then
|
||||
dodoc docs/slepc.pdf
|
||||
docinto html
|
||||
dodoc -r docs/*.html docs/manualpages
|
||||
fi
|
||||
|
||||
# add PETSC_DIR to environmental variables
|
||||
cat >> 99slepc <<- EOF
|
||||
SLEPC_DIR=${EPREFIX}/usr/$(get_libdir)/slepcdir
|
||||
EOF
|
||||
doenvd 99slepc
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user