aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-cpp/eigen/eigen-3.1.0.ebuild')
-rw-r--r--dev-cpp/eigen/eigen-3.1.0.ebuild87
1 files changed, 87 insertions, 0 deletions
diff --git a/dev-cpp/eigen/eigen-3.1.0.ebuild b/dev-cpp/eigen/eigen-3.1.0.ebuild
new file mode 100644
index 000000000..af3759a06
--- /dev/null
+++ b/dev-cpp/eigen/eigen-3.1.0.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=4
+
+inherit cmake-utils alternatives-2 fortran-2 multilib
+
+DESCRIPTION="C++ template library for linear algebra"
+HOMEPAGE="http://eigen.tuxfamily.org/"
+
+MYPV=${PV/_/-}
+SRC_URI="http://bitbucket.org/eigen/eigen/get/${MYPV}.tar.bz2 -> ${P}.tar.bz2"
+
+LICENSE="|| ( LGPL-3 GPL-2 )"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+SLOT="3"
+IUSE="adolc doc fortran fftw gmp mkl sparse static-libs test"
+
+# TODO: support for pastix
+CDEPEND="adolc? ( sci-libs/adolc[sparse?] )
+ fftw? ( >=sci-libs/fftw-3 )
+ gmp? ( dev-libs/gmp dev-libs/mpfr )
+ mkl? ( sci-libs/mkl )
+ sparse? ( dev-cpp/sparsehash
+ sci-libs/cholmod[metis]
+ sci-libs/superlu
+ sci-libs/umfpack )"
+
+DEPEND="doc? ( app-doc/doxygen[dot,latex] )
+ test? ( ${CDEPEND} )"
+
+RDEPEND="!dev-cpp/eigen:0
+ ${CDEPEND}"
+
+pkg_setup() {
+ use fortran && fortran-2_pkg_setup
+}
+
+src_unpack() {
+ unpack ${A} && mv ${PN}* ${P}
+}
+
+src_configure() {
+ # TOFIX: static-libs for blas are always built with PIC
+ # TOFIX: BTL benchmarks
+ # TOFIX: is it worth fixing all the automagic given no library is built?
+ mycmakeargs=(
+ -DEIGEN_BUILD_BTL=OFF
+ )
+ CMAKE_BUILD_TYPE="release" cmake-utils_src_configure
+ use fortran && FORTRAN_LIBS="blas lapack"
+}
+
+src_compile() {
+ local targets="${FORTRAN_LIBS}"
+ use doc && targets+=" doc"
+ cmake-utils_src_compile ${targets}
+}
+
+src_install() {
+ cmake-utils_src_install
+ use doc && dohtml -r "${CMAKE_BUILD_DIR}"/doc/html/*
+ local x
+ for x in ${FORTRAN_LIBS}; do
+ local libname="eigen_${x}"
+ cd "${CMAKE_BUILD_DIR}"/${x}
+ dolib.so lib${libname}.so
+ use static-libs && newlib.a lib${libname}_static.a lib${libname}.a
+ cat > ${libname}.pc <<-EOF
+ prefix=${EPREFIX}/usr
+ libdir=\${prefix}/$(get_libdir)
+ includedir=\${prefix}/include
+ Name: ${PN}
+ Description: ${DESCRIPTION} ${x^^} implementation
+ Version: ${PV}
+ URL: ${HOMEPAGE}
+ Libs: -L\${libdir} -l${libname}
+ Libs.private: -lm
+ $([[ ${x} == lapack ]] && echo "Requires: blas")
+ EOF
+ alternatives_for ${x} eigen 0 \
+ /usr/$(get_libdir)/pkgconfig/${x}.pc ${libname}.pc
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins ${libname}.pc
+ done
+}