summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Lecher <jlec@gentoo.org>2010-06-09 08:18:58 +0000
committerJustin Lecher <jlec@gentoo.org>2010-06-09 08:18:58 +0000
commitc49afaa6453bd0232b782370c0801d7df868ee6a (patch)
tree537a0e761c2308bfbc8202f91aba2cdb2bde77a3 /sci-libs/superlu
parentVersion bump. (diff)
downloadhistorical-c49afaa6453bd0232b782370c0801d7df868ee6a.tar.gz
historical-c49afaa6453bd0232b782370c0801d7df868ee6a.tar.bz2
historical-c49afaa6453bd0232b782370c0801d7df868ee6a.zip
Moved from sci overlay to tree
Package-Manager: portage-2.2_rc67/cvs/Linux x86_64
Diffstat (limited to 'sci-libs/superlu')
-rw-r--r--sci-libs/superlu/ChangeLog11
-rw-r--r--sci-libs/superlu/Manifest17
-rw-r--r--sci-libs/superlu/files/4.0-test.patch52
-rw-r--r--sci-libs/superlu/files/superlu-4.0-autotools.patch298
-rw-r--r--sci-libs/superlu/files/superlu-examples.patch13
-rw-r--r--sci-libs/superlu/metadata.xml21
-rw-r--r--sci-libs/superlu/superlu-4.0-r1.ebuild77
7 files changed, 489 insertions, 0 deletions
diff --git a/sci-libs/superlu/ChangeLog b/sci-libs/superlu/ChangeLog
new file mode 100644
index 000000000000..de289c455bb0
--- /dev/null
+++ b/sci-libs/superlu/ChangeLog
@@ -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
index 000000000000..cd4ed7a67ed3
--- /dev/null
+++ b/sci-libs/superlu/Manifest
@@ -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
index 000000000000..c697acfd892e
--- /dev/null
+++ b/sci-libs/superlu/files/4.0-test.patch
@@ -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
index 000000000000..5e14f263d3b5
--- /dev/null
+++ b/sci-libs/superlu/files/superlu-4.0-autotools.patch
@@ -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
index 000000000000..a585c1a01b71
--- /dev/null
+++ b/sci-libs/superlu/files/superlu-examples.patch
@@ -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
index 000000000000..101acb6868f3
--- /dev/null
+++ b/sci-libs/superlu/metadata.xml
@@ -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
index 000000000000..2e9f7255e654
--- /dev/null
+++ b/sci-libs/superlu/superlu-4.0-r1.ebuild
@@ -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
+}