|
|
|
# Copyright 1999-2013 Gentoo Foundation
|
|
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
|
|
|
|
EAPI=4
|
|
|
|
|
|
|
|
inherit eutils fortran-2 toolchain-funcs
|
|
|
|
|
|
|
|
DESCRIPTION="C library of sparse linear solvers"
|
|
|
|
HOMEPAGE="http://www.tau.ac.il/~stoledo/taucs/"
|
|
|
|
SRC_URI="http://www.tau.ac.il/~stoledo/${PN}/${PV}/${PN}.tgz -> ${P}.tgz"
|
|
|
|
|
|
|
|
SLOT="0"
|
|
|
|
LICENSE="LGPL-2.1"
|
|
|
|
IUSE="cilk doc static-libs"
|
|
|
|
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
|
|
|
|
|
|
|
|
RDEPEND="
|
|
|
|
virtual/blas
|
|
|
|
virtual/lapack
|
|
|
|
|| ( sci-libs/metis sci-libs/parmetis )
|
|
|
|
cilk? ( dev-lang/cilk )"
|
|
|
|
DEPEND="${RDEPEND}
|
|
|
|
virtual/pkgconfig"
|
|
|
|
|
|
|
|
S="${WORKDIR}"
|
|
|
|
|
|
|
|
src_prepare() {
|
|
|
|
# test with cilk has memory leaks
|
|
|
|
epatch "${FILESDIR}"/${P}-no-test-cilk.patch
|
|
|
|
}
|
|
|
|
|
|
|
|
src_configure() {
|
|
|
|
cat > config/linux_shared.mk <<-EOF
|
|
|
|
FC=$(tc-getFC)
|
|
|
|
CC=$(tc-getCC)
|
|
|
|
LD=$(tc-getFC)
|
|
|
|
CFLAGS=${CFLAGS} -fPIC
|
|
|
|
FFLAGS=${FFLAGS} -fPIC
|
|
|
|
LDFLAGS=${LDFLAGS} -fPIC
|
|
|
|
LIBBLAS=$($(tc-getPKG_CONFIG) --libs blas)
|
|
|
|
LIBLAPACK=$($(tc-getPKG_CONFIG) --libs lapack)
|
|
|
|
LIBF77=
|
|
|
|
EOF
|
|
|
|
|
|
|
|
echo "LIBMETIS=$($(tc-getPKG_CONFIG) --libs metis)" >> config/linux_shared.mk
|
|
|
|
# no cat <<EOF because -o has a trailing space
|
|
|
|
if use cilk; then
|
|
|
|
echo "CILKC=cilkc" >> config/linux_shared.mk
|
|
|
|
echo "CILKFLAGS=-O2 -I${EPREFIX}/usr/include/cilk -fPIC" >> config/linux_shared.mk
|
|
|
|
echo "CILKOUTFLG=-o " >> config/linux_shared.mk
|
|
|
|
fi
|
|
|
|
sed -e 's/ -fPIC//g' \
|
|
|
|
config/linux_shared.mk \
|
|
|
|
> config/linux_static.mk || die
|
|
|
|
}
|
|
|
|
|
|
|
|
src_compile() {
|
|
|
|
# not autotools configure
|
|
|
|
if use static-libs; then
|
|
|
|
./configure variant=_static || die
|
|
|
|
emake
|
|
|
|
fi
|
|
|
|
./configure variant=_shared || die
|
|
|
|
emake
|
|
|
|
|
|
|
|
cd lib/linux_shared
|
|
|
|
$(tc-getFC) ${LDFLAGS} -shared -Wl,-soname=libtaucs.so.1 \
|
|
|
|
-Wl,--whole-archive libtaucs.a -Wl,--no-whole-archive \
|
|
|
|
$($(tc-getPKG_CONFIG) --libs blas lapack metis) \
|
|
|
|
-o libtaucs.so.1.0.0 \
|
|
|
|
|| die "shared lib linking failed"
|
|
|
|
}
|
|
|
|
|
|
|
|
src_test() {
|
|
|
|
LD_LIBRARY_PATH=lib/linux_shared \
|
|
|
|
./testscript variant=_shared || die "compile test failed"
|
|
|
|
if grep -q FAILED testscript.log; then
|
|
|
|
eerror "Test failed. See ${S}/testscript.log"
|
|
|
|
die "test failed"
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
src_install() {
|
|
|
|
use static-libs && dolib.a lib/linux_static/libtaucs.a
|
|
|
|
ln -s libtaucs.so.1.0.0 lib/linux_shared/libtaucs.so.1
|
|
|
|
ln -s libtaucs.so.1 lib/linux_shared/libtaucs.so
|
|
|
|
dolib.so lib/linux_shared/libtaucs.so*
|
|
|
|
|
|
|
|
insinto /usr/include
|
|
|
|
doins build/*/*.h src/*.h
|
|
|
|
|
|
|
|
use doc && dodoc doc/*.pdf
|
|
|
|
}
|