Moved from sci overlay to tree
authorJustin Lecher <jlec@gentoo.org>
Wed, 9 Jun 2010 08:18:58 +0000 (08:18 +0000)
committerJustin Lecher <jlec@gentoo.org>
Wed, 9 Jun 2010 08:18:58 +0000 (08:18 +0000)
Package-Manager: portage-2.2_rc67/cvs/Linux x86_64

sci-libs/superlu/ChangeLog [new file with mode: 0644]
sci-libs/superlu/Manifest [new file with mode: 0644]
sci-libs/superlu/files/4.0-test.patch [new file with mode: 0644]
sci-libs/superlu/files/superlu-4.0-autotools.patch [new file with mode: 0644]
sci-libs/superlu/files/superlu-examples.patch [new file with mode: 0644]
sci-libs/superlu/metadata.xml [new file with mode: 0644]
sci-libs/superlu/superlu-4.0-r1.ebuild [new file with mode: 0644]

diff --git a/sci-libs/superlu/ChangeLog b/sci-libs/superlu/ChangeLog
new file mode 100644 (file)
index 0000000..de289c4
--- /dev/null
@@ -0,0 +1,11 @@
+# ChangeLog for sci-libs/superlu
+# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/superlu/ChangeLog,v 1.1 2010/06/09 08:18:58 jlec Exp $
+
+*superlu-4.0-r1 (09 Jun 2010)
+
+  09 Jun 2010; Justin Lecher <jlec@gentoo.org> +files/4.0-test.patch,
+  +superlu-4.0-r1.ebuild, +files/superlu-4.0-autotools.patch,
+  +files/superlu-examples.patch, +metadata.xml:
+  Moved from sci overlay to tree
+
diff --git a/sci-libs/superlu/Manifest b/sci-libs/superlu/Manifest
new file mode 100644 (file)
index 0000000..cd4ed7a
--- /dev/null
@@ -0,0 +1,17 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+AUX 4.0-test.patch 1868 RMD160 861585be2d9cc3da505c0e8c0dd6e83e6e2708de SHA1 d9294695af21d725fdfbf2e48dc31c2aca6dd410 SHA256 263e24c1e502a28541b180b50ffaf98a49de7ee450386bf2660f6ab20e72c3d0
+AUX superlu-4.0-autotools.patch 9827 RMD160 fba6b4734a89a341c53f102e10194782b71ba04b SHA1 126a90a2d5b3de562d0a5117ed580fc0d5b97352 SHA256 b26bbb56501aca742442abf0d768a756f49a6e040dea9acdd7f10f2cb8768c50
+AUX superlu-examples.patch 454 RMD160 32a005e27e90005bc0053f1b4b99288a0493c0f5 SHA1 2c35bf54da5d62ed7ec703abadaf6dc5f0c4f61f SHA256 b708ff850f37a4c2b1196ec33b96146490d3ce259178d3f981587d3021b9eb11
+DIST superlu_4.0.tar.gz 2163874 RMD160 79a1b3ac9c5aa02a0f16ab170dff5802c1cfb410 SHA1 f6caa9a7324d68e9bce7f315bad6062a1326710f SHA256 2f160235ef702da77782a21f201f320c71e5be492fdd53b22564f5195e3309e6
+EBUILD superlu-4.0-r1.ebuild 1788 RMD160 b0998e24622339de3c21fb085da4e1e6f3ad2511 SHA1 6a977253a28afd1653aeb1964cc4ee61da7cbb34 SHA256 41593f3e2c9a839e8494cd80037b7134fa7f66cb96e815ea3ee9aa05935911ef
+MISC ChangeLog 448 RMD160 e50afb480760e2673ae71d8dc07755ffed127486 SHA1 06700b60129cd3fd776a31fc440083c6ed508a5d SHA256 901cd851eebd9dd4374a6d93d1102c33924a6e84b99ab248820a351ca25742ad
+MISC metadata.xml 1183 RMD160 90584eb7b02f392d8dcf1f7593d00532575fb2e7 SHA1 1f4720b37a9547af2f81d9eb9c72b0031ede1f6d SHA256 1086830fe855bba67b44bf4862464d8ecb88495e5242a7a06a97eb284dc5657c
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.15 (GNU/Linux)
+
+iEYEARECAAYFAkwPTngACgkQgAnW8HDreRa8qQCfUTbg+G7HK+slOgZXjuIM9WGA
+n6YAn3pTE8RZ168ztVa5p5q57QCyT1mt
+=aJM8
+-----END PGP SIGNATURE-----
diff --git a/sci-libs/superlu/files/4.0-test.patch b/sci-libs/superlu/files/4.0-test.patch
new file mode 100644 (file)
index 0000000..c697acf
--- /dev/null
@@ -0,0 +1,52 @@
+diff --git a/TESTING/cdrive.c b/TESTING/cdrive.c
+index 0ff08e1..6c5cd36 100644
+--- a/TESTING/cdrive.c
++++ b/TESTING/cdrive.c
+@@ -78,7 +78,7 @@ main(int argc, char *argv[])
+     trans_t        trans;
+     SuperLUStat_t  stat;
+     static char    matrix_type[8];
+-    static char    equed[1], path[3], sym[1], dist[1];
++    static char    equed[1], path[4], sym[1], dist[1];
+ 
+     /* Fixed set of parameters */
+     int            iseed[]  = {1988, 1989, 1990, 1991};
+diff --git a/TESTING/ddrive.c b/TESTING/ddrive.c
+index 587dd59..d2b12f3 100644
+--- a/TESTING/ddrive.c
++++ b/TESTING/ddrive.c
+@@ -78,7 +78,7 @@ main(int argc, char *argv[])
+     trans_t        trans;
+     SuperLUStat_t  stat;
+     static char    matrix_type[8];
+-    static char    equed[1], path[3], sym[1], dist[1];
++    static char    equed[1], path[4], sym[1], dist[1];
+ 
+     /* Fixed set of parameters */
+     int            iseed[]  = {1988, 1989, 1990, 1991};
+diff --git a/TESTING/sdrive.c b/TESTING/sdrive.c
+index b209ae6..d44ff4b 100644
+--- a/TESTING/sdrive.c
++++ b/TESTING/sdrive.c
+@@ -78,7 +78,7 @@ main(int argc, char *argv[])
+     trans_t        trans;
+     SuperLUStat_t  stat;
+     static char    matrix_type[8];
+-    static char    equed[1], path[3], sym[1], dist[1];
++    static char    equed[1], path[4], sym[1], dist[1];
+ 
+     /* Fixed set of parameters */
+     int            iseed[]  = {1988, 1989, 1990, 1991};
+diff --git a/TESTING/zdrive.c b/TESTING/zdrive.c
+index 5844f6a..33bd22e 100644
+--- a/TESTING/zdrive.c
++++ b/TESTING/zdrive.c
+@@ -78,7 +78,7 @@ main(int argc, char *argv[])
+     trans_t        trans;
+     SuperLUStat_t  stat;
+     static char    matrix_type[8];
+-    static char    equed[1], path[3], sym[1], dist[1];
++    static char    equed[1], path[4], sym[1], dist[1];
+ 
+     /* Fixed set of parameters */
+     int            iseed[]  = {1988, 1989, 1990, 1991};
diff --git a/sci-libs/superlu/files/superlu-4.0-autotools.patch b/sci-libs/superlu/files/superlu-4.0-autotools.patch
new file mode 100644 (file)
index 0000000..5e14f26
--- /dev/null
@@ -0,0 +1,298 @@
+--- configure.ac       1970-01-01 01:00:00.000000000 +0100
++++ configure.ac       2008-02-01 10:58:41.238020847 +0000
+@@ -0,0 +1,14 @@
++# -*- Autoconf -*-
++AC_PREREQ(2.59)
++AC_INIT(superlu, 3.0, xsli@lbl.gov)
++AM_INIT_AUTOMAKE([foreign])
++AC_CONFIG_HEADER([config.h])
++AC_PROG_INSTALL
++AC_PROG_LIBTOOL
++sinclude(acx_blas.m4)
++ACX_BLAS
++if test x"$BLAS_LIBS" = x; then
++   AC_MSG_ERROR([Cannot find blas libraries])
++fi
++AC_CONFIG_FILES([Makefile SRC/Makefile])
++AC_OUTPUT
+--- acx_blas.m4        1970-01-01 01:00:00.000000000 +0100
++++ acx_blas.m4        2008-02-01 10:58:19.428778009 +0000
+@@ -0,0 +1,191 @@
++##### http://autoconf-archive.cryp.to/acx_blas.html
++#
++# SYNOPSIS
++#
++#   ACX_BLAS([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
++#
++# DESCRIPTION
++#
++#   This macro looks for a library that implements the BLAS
++#   linear-algebra interface (see http://www.netlib.org/blas/). On
++#   success, it sets the BLAS_LIBS output variable to hold the
++#   requisite library linkages.
++#
++#   To link with BLAS, you should link with:
++#
++#     $BLAS_LIBS $LIBS $FLIBS
++#
++#   in that order. FLIBS is the output variable of the
++#   AC_F77_LIBRARY_LDFLAGS macro (called if necessary by ACX_BLAS), and
++#   is sometimes necessary in order to link with F77 libraries. Users
++#   will also need to use AC_F77_DUMMY_MAIN (see the autoconf manual),
++#   for the same reason.
++#
++#   Many libraries are searched for, from ATLAS to CXML to ESSL. The
++#   user may also use --with-blas=<lib> in order to use some specific
++#   BLAS library <lib>. In order to link successfully, however, be
++#   aware that you will probably need to use the same Fortran compiler
++#   (which can be set via the F77 env. var.) as was used to compile the
++#   BLAS library.
++#
++#   ACTION-IF-FOUND is a list of shell commands to run if a BLAS
++#   library is found, and ACTION-IF-NOT-FOUND is a list of commands to
++#   run it if it is not found. If ACTION-IF-FOUND is not specified, the
++#   default action will define HAVE_BLAS.
++#
++#   This macro requires autoconf 2.50 or later.
++#
++# LAST MODIFICATION
++#
++#   2007-07-29
++#
++# COPYLEFT
++#
++#   Copyright (c) 2007 Steven G. Johnson <stevenj@alum.mit.edu>
++#
++#   This program is free software: you can redistribute it and/or
++#   modify it under the terms of the GNU General Public License as
++#   published by the Free Software Foundation, either version 3 of the
++#   License, or (at your option) any later version.
++#
++#   This program is distributed in the hope that it will be useful, but
++#   WITHOUT ANY WARRANTY; without even the implied warranty of
++#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++#   General Public License for more details.
++#
++#   You should have received a copy of the GNU General Public License
++#   along with this program. If not, see
++#   <http://www.gnu.org/licenses/>.
++#
++#   As a special exception, the respective Autoconf Macro's copyright
++#   owner gives unlimited permission to copy, distribute and modify the
++#   configure scripts that are the output of Autoconf when processing
++#   the Macro. You need not follow the terms of the GNU General Public
++#   License when using or distributing such scripts, even though
++#   portions of the text of the Macro appear in them. The GNU General
++#   Public License (GPL) does govern all other use of the material that
++#   constitutes the Autoconf Macro.
++#
++#   This special exception to the GPL applies to versions of the
++#   Autoconf Macro released by the Autoconf Macro Archive. When you
++#   make and distribute a modified version of the Autoconf Macro, you
++#   may extend this special exception to the GPL to apply to your
++#   modified version as well.
++
++AC_DEFUN([ACX_BLAS], [
++AC_PREREQ(2.50)
++AC_REQUIRE([AC_F77_LIBRARY_LDFLAGS])
++acx_blas_ok=no
++
++AC_ARG_WITH(blas,
++      [AC_HELP_STRING([--with-blas=<lib>], [use BLAS library <lib>])])
++case $with_blas in
++      yes | "") ;;
++      no) acx_blas_ok=disable ;;
++      -* | */* | *.a | *.so | *.so.* | *.o) BLAS_LIBS="$with_blas" ;;
++      *) BLAS_LIBS="-l$with_blas" ;;
++esac
++
++# Get fortran linker names of BLAS functions to check for.
++AC_F77_FUNC(sgemm)
++AC_F77_FUNC(dgemm)
++
++acx_blas_save_LIBS="$LIBS"
++LIBS="$LIBS $FLIBS"
++
++# First, check BLAS_LIBS environment variable
++if test $acx_blas_ok = no; then
++if test "x$BLAS_LIBS" != x; then
++      save_LIBS="$LIBS"; LIBS="$BLAS_LIBS $LIBS"
++      AC_MSG_CHECKING([for $sgemm in $BLAS_LIBS])
++      AC_TRY_LINK_FUNC($sgemm, [acx_blas_ok=yes], [BLAS_LIBS=""])
++      AC_MSG_RESULT($acx_blas_ok)
++      LIBS="$save_LIBS"
++fi
++fi
++
++# BLAS linked to by default?  (happens on some supercomputers)
++if test $acx_blas_ok = no; then
++      save_LIBS="$LIBS"; LIBS="$LIBS"
++      AC_CHECK_FUNC($sgemm, [acx_blas_ok=yes])
++      LIBS="$save_LIBS"
++fi
++
++# BLAS in ATLAS library? (http://math-atlas.sourceforge.net/)
++if test $acx_blas_ok = no; then
++      AC_CHECK_LIB(atlas, ATL_xerbla,
++              [AC_CHECK_LIB(f77blas, $sgemm,
++              [AC_CHECK_LIB(cblas, cblas_dgemm,
++                      [acx_blas_ok=yes
++                       BLAS_LIBS="-lcblas -lf77blas -latlas"],
++                      [], [-lf77blas -latlas])],
++                      [], [-latlas])])
++fi
++
++# BLAS in PhiPACK libraries? (requires generic BLAS lib, too)
++if test $acx_blas_ok = no; then
++      AC_CHECK_LIB(blas, $sgemm,
++              [AC_CHECK_LIB(dgemm, $dgemm,
++              [AC_CHECK_LIB(sgemm, $sgemm,
++                      [acx_blas_ok=yes; BLAS_LIBS="-lsgemm -ldgemm -lblas"],
++                      [], [-lblas])],
++                      [], [-lblas])])
++fi
++
++# BLAS in Alpha CXML library?
++if test $acx_blas_ok = no; then
++      AC_CHECK_LIB(cxml, $sgemm, [acx_blas_ok=yes;BLAS_LIBS="-lcxml"])
++fi
++
++# BLAS in Alpha DXML library? (now called CXML, see above)
++if test $acx_blas_ok = no; then
++      AC_CHECK_LIB(dxml, $sgemm, [acx_blas_ok=yes;BLAS_LIBS="-ldxml"])
++fi
++
++# BLAS in Sun Performance library?
++if test $acx_blas_ok = no; then
++      if test "x$GCC" != xyes; then # only works with Sun CC
++              AC_CHECK_LIB(sunmath, acosp,
++                      [AC_CHECK_LIB(sunperf, $sgemm,
++                              [BLAS_LIBS="-xlic_lib=sunperf -lsunmath"
++                                 acx_blas_ok=yes],[],[-lsunmath])])
++      fi
++fi
++
++# BLAS in SCSL library?  (SGI/Cray Scientific Library)
++if test $acx_blas_ok = no; then
++      AC_CHECK_LIB(scs, $sgemm, [acx_blas_ok=yes; BLAS_LIBS="-lscs"])
++fi
++
++# BLAS in SGIMATH library?
++if test $acx_blas_ok = no; then
++      AC_CHECK_LIB(complib.sgimath, $sgemm,
++                   [acx_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath"])
++fi
++
++# BLAS in IBM ESSL library? (requires generic BLAS lib, too)
++if test $acx_blas_ok = no; then
++      AC_CHECK_LIB(blas, $sgemm,
++              [AC_CHECK_LIB(essl, $sgemm,
++                      [acx_blas_ok=yes; BLAS_LIBS="-lessl -lblas"],
++                      [], [-lblas $FLIBS])])
++fi
++
++# Generic BLAS library?
++if test $acx_blas_ok = no; then
++      AC_CHECK_LIB(blas, $sgemm, [acx_blas_ok=yes; BLAS_LIBS="-lblas"])
++fi
++
++AC_SUBST(BLAS_LIBS)
++
++LIBS="$acx_blas_save_LIBS"
++
++# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
++if test x"$acx_blas_ok" = xyes; then
++        ifelse([$1],,AC_DEFINE(HAVE_BLAS,1,[Define if you have a BLAS library.]),[$1])
++        :
++else
++        acx_blas_ok=no
++        $2
++fi
++])dnl ACX_BLAS
+--- Makefile.am        1970-01-01 01:00:00.000000000 +0100
++++ Makefile.am        2008-02-01 10:58:19.428778009 +0000
+@@ -0,0 +1 @@
++SUBDIRS = SRC
+--- SRC/Makefile.am    1970-01-01 01:00:00.000000000 +0100
++++ SRC/Makefile.am    2008-02-01 10:58:19.428778009 +0000
+@@ -0,0 +1,80 @@
++AM_CPPFLAGS = -DAdd_
++### LAPACK 
++LAAUX         = lsame.c xerbla.c
++SLASRC        = slacon.c 
++DLASRC        = dlacon.c
++CLASRC        = clacon.c scsum1.c icmax1.c
++ZLASRC        = zlacon.c dzsum1.c izmax1.c
++SCLAUX        = slamch.c
++DZLAUX        = dlamch.c
++
++### SuperLU 
++ALLAUX        = superlu_timer.c util.c memory.c get_perm_c.c mmd.c \
++        sp_coletree.c sp_preorder.c sp_ienv.c relax_snode.c \
++        heap_relax_snode.c colamd.c
++
++SLUSRC = \
++      sgssv.c sgssvx.c \
++      ssp_blas2.c ssp_blas3.c sgscon.c  \
++      slangs.c sgsequ.c slaqgs.c spivotgrowth.c \
++      sgsrfs.c sgstrf.c sgstrs.c scopy_to_ucol.c \
++      ssnode_dfs.c ssnode_bmod.c \
++      spanel_dfs.c spanel_bmod.c sreadhb.c \
++      scolumn_dfs.c scolumn_bmod.c spivotL.c spruneL.c \
++      smemory.c sutil.c smyblas2.c
++
++DLUSRC = \
++      dgssv.c dgssvx.c \
++      dsp_blas2.c dsp_blas3.c dgscon.c \
++      dlangs.c dgsequ.c dlaqgs.c dpivotgrowth.c  \
++      dgsrfs.c dgstrf.c dgstrs.c dcopy_to_ucol.c \
++      dsnode_dfs.c dsnode_bmod.c \
++      dpanel_dfs.c dpanel_bmod.c dreadhb.c \
++      dcolumn_dfs.c dcolumn_bmod.c dpivotL.c dpruneL.c \
++      dmemory.c dutil.c dmyblas2.c
++
++CLUSRC = \
++      scomplex.c cgssv.c cgssvx.c csp_blas2.c csp_blas3.c cgscon.c \
++      clangs.c cgsequ.c claqgs.c cpivotgrowth.c  \
++      cgsrfs.c cgstrf.c cgstrs.c ccopy_to_ucol.c \
++      csnode_dfs.c csnode_bmod.c \
++      cpanel_dfs.c cpanel_bmod.c creadhb.c \
++      ccolumn_dfs.c ccolumn_bmod.c cpivotL.c cpruneL.c \
++      cmemory.c cutil.c cmyblas2.c
++
++ZLUSRC = \
++      dcomplex.c zgssv.c zgssvx.c zsp_blas2.c zsp_blas3.c zgscon.c \
++      zlangs.c zgsequ.c zlaqgs.c zpivotgrowth.c  \
++      zgsrfs.c zgstrf.c zgstrs.c zcopy_to_ucol.c \
++      zsnode_dfs.c zsnode_bmod.c \
++      zpanel_dfs.c zpanel_bmod.c zreadhb.c \
++      zcolumn_dfs.c zcolumn_bmod.c zpivotL.c zpruneL.c \
++      zmemory.c zutil.c zmyblas2.c
++
++lib_LTLIBRARIES = libsuperlu.la
++libsuperlu_la_SOURCES = \
++      $(ALLAUX) $(LAAUX) \
++      $(SCLAUX) $(DZLAUX) \
++      $(SLUSRC) $(SLASRC) \
++      $(DLUSRC) $(DLASRC) \
++      $(CLUSRC) $(CLASRC) \
++      $(ZLUSRC) $(ZLASRC)
++libsuperlu_la_LIBADD = $(BLAS_LIBS)
++libsuperlu_la_LDFLAGS = -no-undefined -version-info 3:0:0
++
++
++
++##################################
++# Do not optimize these routines #
++##################################
++LTCOMPILE_NOOPT = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
++      --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
++      $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS)
++
++slamch.lo: slamch.c
++      $(LTCOMPILE_NOOPT) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
++dlamch.lo: dlamch.c
++      $(LTCOMPILE_NOOPT) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
++superlu_timer.lo: superlu_timer.c
++      $(LTCOMPILE_NOOPT) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
++##################################
diff --git a/sci-libs/superlu/files/superlu-examples.patch b/sci-libs/superlu/files/superlu-examples.patch
new file mode 100644 (file)
index 0000000..a585c1a
--- /dev/null
@@ -0,0 +1,13 @@
+--- EXAMPLE/Makefile.orig      2008-01-31 17:16:16.008471873 +0000
++++ EXAMPLE/Makefile   2008-01-31 17:20:16.581889615 +0000
+@@ -19,4 +19,9 @@
+-include ../make.inc
++SUPERLULIB   = -lsuperlu
++BLASLIB      = $(BLAS_LIBS)
++FORTRAN            = $(F77)
++LOADER       = $(LD)
++LOADOPTS     = $(LDFLAGS)
++CDEFS        = -DAdd_
+ 
+ #######################################################################
+ #  This makefile creates the example programs for the linear equation
diff --git a/sci-libs/superlu/metadata.xml b/sci-libs/superlu/metadata.xml
new file mode 100644 (file)
index 0000000..101acb6
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci</herd>
+<longdescription lang="en">
+  SuperLU is a general purpose library for the direct solution of large,
+  sparse, nonsymmetric systems of linear equations on high performance
+  machines. The library is written in C and is callable from either C or
+  Fortran. The library routines will perform an LU decomposition with
+  partial pivoting and triangular system solves through forward and back
+  substitution. The LU factorization routines can handle non-square
+  matrices but the triangular solves are performed only for square
+  matrices. The matrix columns may be preordered (before factorization)
+  either through library or user supplied routines. This preordering for
+  sparsity is completely separate from the factorization. Working
+  precision iterative refinement subroutines are provided for improved
+  backward stability. Routines are also provided to equilibrate the
+  system, estimate the condition number, calculate the relative backward
+  error, and estimate error bounds for the refined solutions.
+</longdescription>
+</pkgmetadata>
diff --git a/sci-libs/superlu/superlu-4.0-r1.ebuild b/sci-libs/superlu/superlu-4.0-r1.ebuild
new file mode 100644 (file)
index 0000000..2e9f725
--- /dev/null
@@ -0,0 +1,77 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/superlu/superlu-4.0-r1.ebuild,v 1.1 2010/06/09 08:18:58 jlec Exp $
+
+EAPI="2"
+
+inherit autotools eutils toolchain-funcs
+
+MY_PN=SuperLU
+
+DESCRIPTION="Sparse LU factorization library"
+HOMEPAGE="http://crd.lbl.gov/~xiaoye/SuperLU/"
+SRC_URI="${HOMEPAGE}/${PN}_${PV}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples static-libs test"
+
+RDEPEND="virtual/blas"
+DEPEND="${RDEPEND}
+       dev-util/pkgconfig
+       test? ( app-shells/tcsh )"
+
+S="${WORKDIR}/${MY_PN}_${PV}"
+
+src_prepare() {
+       epatch "${FILESDIR}"/${P}-autotools.patch
+       epatch "${FILESDIR}"/${PN}-examples.patch
+       epatch "${FILESDIR}"/${PV}-test.patch
+       eautoreconf
+}
+
+src_configure() {
+       econf \
+               --with-blas="$(pkg-config --libs blas)" \
+               $(use_enable static-libs static)
+}
+
+src_test() {
+       cd TESTING/MATGEN
+       emake -j1 \
+               FORTRAN="$(tc-getFC)" \
+               LOADER="$(tc-getCC)" \
+               CFLAGS="${CFLAGS}" \
+               FFLAGS="${FFLAGS}" \
+               LOADOPTS="${LDFLAGS}" \
+               SUPERLULIB="../SRC/.libs/libsuperlu.a" \
+               BLASLIB="$(pkg-config --libs blas)" \
+               CC="$(tc-getCC)" \
+               || die "emake matrix generation failed"
+       cd ..
+       emake -j1 \
+               CC="$(tc-getCC)" \
+               FORTRAN="$(tc-getFC)" \
+               LOADER="$(tc-getCC)" \
+               CFLAGS="${CFLAGS}" \
+               FFLAGS="${FFLAGS}" \
+               LOADOPTS="${LDFLAGS}" \
+               SUPERLULIB="../SRC/.libs/libsuperlu.so" \
+               BLASLIB="$(pkg-config --libs blas)" \
+               || die "emake test failed"
+}
+
+src_install() {
+       emake DESTDIR="${D}" install || die "emake install failed"
+
+       insinto /usr/include/${PN}
+       doins SRC/*.h || die
+
+       dodoc README
+       use doc && newdoc INSTALL/ug.ps userguide.ps
+       if use examples; then
+               insinto /usr/share/doc/${PF}
+               newins -r EXAMPLE examples
+       fi
+}