summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-libs/pastix/pastix-5.2.2.22.ebuild')
-rw-r--r--sci-libs/pastix/pastix-5.2.2.22.ebuild124
1 files changed, 124 insertions, 0 deletions
diff --git a/sci-libs/pastix/pastix-5.2.2.22.ebuild b/sci-libs/pastix/pastix-5.2.2.22.ebuild
new file mode 100644
index 000000000000..19e3f2487f39
--- /dev/null
+++ b/sci-libs/pastix/pastix-5.2.2.22.ebuild
@@ -0,0 +1,124 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit eutils fortran-2 toolchain-funcs multilib
+
+# TODO:
+# testing: emake examples?
+# better doc instalation and building
+# pypastix (separate package?)
+# multilib with eselect?
+# static libs building without pic
+# metis?
+
+# commit id: change every version
+CID=
+# package id: change every version, see the link on inriaforge
+PID=35070
+# leave empty if this is not a post release bug fix
+PPV=bugfix10_
+MYPN=pastix_release
+
+DESCRIPTION="Parallel solver for very large sparse linear systems"
+HOMEPAGE="http://pastix.gforge.inria.fr"
+SRC_URI="https://gforge.inria.fr/frs/download.php/${PID}/${PN}_${PV}.tar.bz2"
+
+LICENSE="CeCILL-C"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+#IUSE="doc int64 mpi smp starpu static-libs"
+IUSE="doc int64 mpi starpu static-libs"
+
+RDEPEND="
+ sci-libs/scotch:0=[int64?,mpi?]
+ sys-apps/hwloc:0=
+ virtual/blas
+ mpi? ( virtual/mpi )
+ starpu? ( dev-libs/starpu:0= )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+S="${WORKDIR}/${PN}_${PV}/src"
+
+src_prepare() {
+ sed -e 's/^\(HOSTARCH\s*=\).*/\1 ${HOST}/' \
+ -e "s:^\(CCPROG\s*=\).*:\1 $(tc-getCC):" \
+ -e "s:^\(CFPROG\s*=\).*:\1 $(tc-getFC):" \
+ -e "s:^\(CF90PROG\s*=\).*:\1 $(tc-getFC):" \
+ -e "s:^\(MPCCPROG\s*=\).*:\1 mpicc -cc=$(tc-getCC):" \
+ -e "s:^\(MPCXXPROG\s*=\).*:\1 mpic++ -cxx=$(tc-getCXX):" \
+ -e "s:^\(MCFPROG\s*=\).*:\1 mpif90 -f90=$(tc-getFC):" \
+ -e "s:^\(ARPROG\s*=\).*:\1 $(tc-getAR):" \
+ -e "s:^\(CCFOPT\s*=\).*:\1 ${FFLAGS}:" \
+ -e "s:^\(CCFDEB\s*=\).*:\1 ${FFLAGS}:" \
+ -e 's:^\(EXTRALIB\s*=\).*:\1 -lm -lrt:' \
+ -e "s:^#\s*\(ROOT\s*=\).*:\1 \$(DESTDIR)${EPREFIX%/}/usr:" \
+ -e 's:^#\s*\(INCLUDEDIR\s*=\).*:\1 $(ROOT)/include:' \
+ -e 's:^#\s*\(BINDIR\s*=\).*:\1 $(ROOT)/bin:' \
+ -e "s:^#\s*\(LIBDIR\s*=\).*:\1 \$(ROOT)/$(get_libdir):" \
+ -e 's:^#\s*\(SHARED\s*=\).*:\1 1:' \
+ -e 's:^#\s*\(SOEXT\s*=\).*:\1 .so:' \
+ -e '/fPIC/s/^#//g' \
+ -e "s:^#\s*\(SHARED_FLAGS\s*=.*\):\1 ${LDFLAGS}:" \
+ -e "s:pkg-config:$(tc-getPKG_CONFIG):g" \
+ -e "s:^\(BLASLIB\s*=\).*:\1 $($(tc-getPKG_CONFIG) --libs blas):" \
+ -e "s:^\s*\(HWLOC_HOME\s*?=\).*:\1 ${EPREFIX}/usr:" \
+ -e "s:-I\$(HWLOC_INC):$($(tc-getPKG_CONFIG) --cflags hwloc):" \
+ -e "s:-L\$(HWLOC_LIB) -lhwloc:$($(tc-getPKG_CONFIG) --libs hwloc):" \
+ -e "s:^\s*\(SCOTCH_HOME\s*?=\).*:\1 ${EPREFIX}/usr:" \
+ -e "s:^\s*\(SCOTCH_INC\s*?=.*\):\1/scotch:" \
+ -e "s:^\s*\(SCOTCH_LIB\s*?=.*\)lib:\1$(get_libdir):" \
+ config/LINUX-GNU.in > config.in || die
+ sed -i -e 's/__SO_NAME__,$@/__SO_NAME__,$(notdir $@)/g' Makefile || die
+ default
+}
+
+src_configure() {
+ if use amd64; then
+ sed -i \
+ -e 's/^\(VERSIONBIT\s*=\).*/\1 _64bit/' config.in || die
+ fi
+
+ if use int64; then
+ sed -i \
+ -e '/VERSIONINT.*_int64/s/#//' \
+ -e '/CCTYPES.*INTSSIZE64/s/#//' config.in || die
+ fi
+
+ if ! use mpi; then
+ sed -i \
+ -e '/VERSIONMPI.*_nompi/s/#//' \
+ -e '/CCTYPES.*NOMPI/s/#//' \
+ -e '/MPCCPROG\s*= $(CCPROG)/s/#//' \
+ -e '/MCFPROG\s*= $(CFPROG)/s/#//' \
+ -e 's/-DDISTRIBUTED//' \
+ -e 's/-lptscotch/-lscotch/g' \
+ config.in || die
+ fi
+
+# if ! use smp; then
+# sed \
+# -e '/VERSIONSMP.*_nosmp/s/#//' \
+# -e '/CCTYPES.*NOSMP/s/#//' \
+# -i config.in || die
+# fi
+
+ if use starpu; then
+ sed -i -e '/libstarpu/s/#//g' config.in || die
+ fi
+}
+
+src_compile() {
+ emake all drivers
+}
+
+src_install() {
+ default
+ sed -i -e "s:${D}::g" "${ED}"/usr/bin/pastix-conf || die
+ # quick and dirty (static libs should really be built without pic)
+ cd .. || die
+ dodoc README.txt doc/refcard/refcard.pdf
+}