commit:     efbfe2f1562f314044a7a7a091f6d5df186193d4
Author:     Sébastien Fabbro <bicatali <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 24 20:04:53 2014 +0000
Commit:     Sebastien Fabbro <bicatali <AT> gentoo <DOT> org>
CommitDate: Thu Apr 24 20:04:53 2014 +0000
URL:        
http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=efbfe2f1

sci-libs/pastix: Initial import

Package-Manager: portage-2.2.8-prefix

---
 sci-libs/pastix/ChangeLog              |   9 +++
 sci-libs/pastix/metadata.xml           |  20 ++++++
 sci-libs/pastix/pastix-5.2.2_p9.ebuild | 113 +++++++++++++++++++++++++++++++++
 3 files changed, 142 insertions(+)

diff --git a/sci-libs/pastix/ChangeLog b/sci-libs/pastix/ChangeLog
new file mode 100644
index 0000000..316cc78
--- /dev/null
+++ b/sci-libs/pastix/ChangeLog
@@ -0,0 +1,9 @@
+# ChangeLog for sci-libs/pastix
+# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
+# $Header: $
+
+*pastix-5.2.2_p9 (24 Apr 2014)
+
+  24 Apr 2014; Sébastien Fabbro <bicat...@gentoo.org> +metadata.xml,
+  +pastix-5.2.2_p9.ebuild:
+  sci-libs/pastix: Initial import

diff --git a/sci-libs/pastix/metadata.xml b/sci-libs/pastix/metadata.xml
new file mode 100644
index 0000000..a117300
--- /dev/null
+++ b/sci-libs/pastix/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+<herd>sci</herd>
+<longdescription lang="en">
+  PaStiX (Parallel Sparse matriX package) is a scientific library that
+  provides a high performance parallel solver for very large sparse
+  linear systems based on direct methods.  Numerical algorithms are
+  implemented in single or double precision (real or complex) using
+  LLt, LDLt and LU with static pivoting (for non symmetric matrices
+  having a symmetric pattern).  This solver provides also an adaptive
+  blockwise iLU(k) factorization that can be used as a parallel
+  preconditioner using approximated supernodes to build a coarser
+  block structure of the incomplete factors.
+</longdescription>
+  <use>
+    <flag name="int64">Build the 64 bits integer library</flag>
+    <flag name="starpu">Build and link with <pkg>dev-libs/starpu</pkg></flag>
+  </use>
+</pkgmetadata>

diff --git a/sci-libs/pastix/pastix-5.2.2_p9.ebuild 
b/sci-libs/pastix/pastix-5.2.2_p9.ebuild
new file mode 100644
index 0000000..ad9db9b
--- /dev/null
+++ b/sci-libs/pastix/pastix-5.2.2_p9.ebuild
@@ -0,0 +1,113 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+
+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=351ef60
+# package id: change every version, see the link on inriaforge
+PID=33558
+# leave empty if this is not a post release bug fix
+PPV=bugfix9_
+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}/${MYPN}_${PPV}${CID}.tar.bz2";
+
+LICENSE="CeCILL-C"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc int64 mpi smp 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}/${MYPN}_${CID}/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
+       sed -i -e 's/__SO_NAME__,$@/__SO_NAME__,$(notdir $@)/g' Makefile || die
+}
+
+src_configure() {
+       use amd64 && sed -i \
+               -e 's/^\(VERSIONBIT\s*=\).*/\1 _64bit/' config.in
+
+       use int64 && sed -i \
+               -e '/VERSIONINT.*_int64/s/#//' \
+               -e '/CCTYPES.*INTSSIZE64/s/#//' config.in
+
+       use mpi || 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
+
+       use smp || sed -i \
+               -e '/VERSIONSMP.*_nosmp/s/#//' \
+               -e '/CCTYPES.*NOSMP/s/#//' config.in
+
+       use starpu && sed -i -e '/libstarpu/s/#//g' config.in
+}
+
+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)
+       use static-libs || rm "${ED}"/usr/$(get_libdir)/*.a
+       cd ..
+       dodoc README.txt
+       use doc && dodoc doc/refcard/refcard.pdf
+}

Reply via email to