summaryrefslogtreecommitdiff
path: root/sci-libs/taucs/taucs-2.2.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'sci-libs/taucs/taucs-2.2.ebuild')
-rw-r--r--sci-libs/taucs/taucs-2.2.ebuild93
1 files changed, 93 insertions, 0 deletions
diff --git a/sci-libs/taucs/taucs-2.2.ebuild b/sci-libs/taucs/taucs-2.2.ebuild
new file mode 100644
index 000000000000..c3da7a074eb5
--- /dev/null
+++ b/sci-libs/taucs/taucs-2.2.ebuild
@@ -0,0 +1,93 @@
+# 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
+}