diff options
-rw-r--r-- | sci-libs/superlu/ChangeLog | 8 | ||||
-rw-r--r-- | sci-libs/superlu/files/superlu-4.1-autotools.patch | 575 | ||||
-rw-r--r-- | sci-libs/superlu/files/superlu-examples.patch | 2 | ||||
-rw-r--r-- | sci-libs/superlu/superlu-4.1.ebuild | 65 |
4 files changed, 648 insertions, 2 deletions
diff --git a/sci-libs/superlu/ChangeLog b/sci-libs/superlu/ChangeLog index de26266e514b..6e5858dd95f8 100644 --- a/sci-libs/superlu/ChangeLog +++ b/sci-libs/superlu/ChangeLog @@ -1,6 +1,12 @@ # 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.2 2010/09/27 06:26:22 bicatali Exp $ +# $Header: /var/cvsroot/gentoo-x86/sci-libs/superlu/ChangeLog,v 1.3 2010/12/12 18:27:41 bicatali Exp $ + +*superlu-4.1 (12 Dec 2010) + + 12 Dec 2010; Sébastien Fabbro <bicatali@gentoo.org> +superlu-4.1.ebuild, + +files/superlu-4.1-autotools.patch, files/superlu-examples.patch: + Version bump *superlu-4.0-r2 (27 Sep 2010) diff --git a/sci-libs/superlu/files/superlu-4.1-autotools.patch b/sci-libs/superlu/files/superlu-4.1-autotools.patch new file mode 100644 index 000000000000..dab5e4fbf129 --- /dev/null +++ b/sci-libs/superlu/files/superlu-4.1-autotools.patch @@ -0,0 +1,575 @@ +diff -Nur SuperLU_4.1.orig/ax_blas.m4 SuperLU_4.1/ax_blas.m4 +--- SuperLU_4.1.orig/ax_blas.m4 1970-01-01 01:00:00.000000000 +0100 ++++ SuperLU_4.1/ax_blas.m4 2010-12-12 17:41:08.000000000 +0000 +@@ -0,0 +1,201 @@ ++# =========================================================================== ++# http://www.gnu.org/software/autoconf-archive/ax_blas.html ++# =========================================================================== ++# ++# SYNOPSIS ++# ++# AX_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 AX_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. ++# ++# LICENSE ++# ++# Copyright (c) 2008 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 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. ++ ++#serial 11 ++ ++AU_ALIAS([ACX_BLAS], [AX_BLAS]) ++AC_DEFUN([AX_BLAS], [ ++AC_PREREQ(2.50) ++AC_REQUIRE([AC_F77_LIBRARY_LDFLAGS]) ++ax_blas_ok=no ++ ++AC_ARG_WITH(blas, ++ [AS_HELP_STRING([--with-blas=<lib>], [use BLAS library <lib>])]) ++case $with_blas in ++ yes | "") ;; ++ no) ax_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) ++ ++ax_blas_save_LIBS="$LIBS" ++LIBS="$LIBS $FLIBS" ++ ++# First, check BLAS_LIBS environment variable ++if test $ax_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, [ax_blas_ok=yes], [BLAS_LIBS=""]) ++ AC_MSG_RESULT($ax_blas_ok) ++ LIBS="$save_LIBS" ++fi ++fi ++ ++# BLAS linked to by default? (happens on some supercomputers) ++if test $ax_blas_ok = no; then ++ save_LIBS="$LIBS"; LIBS="$LIBS" ++ AC_MSG_CHECKING([if $sgemm is being linked in already]) ++ AC_TRY_LINK_FUNC($sgemm, [ax_blas_ok=yes]) ++ AC_MSG_RESULT($ax_blas_ok) ++ LIBS="$save_LIBS" ++fi ++ ++# BLAS in ATLAS library? (http://math-atlas.sourceforge.net/) ++if test $ax_blas_ok = no; then ++ AC_CHECK_LIB(atlas, ATL_xerbla, ++ [AC_CHECK_LIB(f77blas, $sgemm, ++ [AC_CHECK_LIB(cblas, cblas_dgemm, ++ [ax_blas_ok=yes ++ BLAS_LIBS="-lcblas -lf77blas -latlas"], ++ [], [-lf77blas -latlas])], ++ [], [-latlas])]) ++fi ++ ++# BLAS in PhiPACK libraries? (requires generic BLAS lib, too) ++if test $ax_blas_ok = no; then ++ AC_CHECK_LIB(blas, $sgemm, ++ [AC_CHECK_LIB(dgemm, $dgemm, ++ [AC_CHECK_LIB(sgemm, $sgemm, ++ [ax_blas_ok=yes; BLAS_LIBS="-lsgemm -ldgemm -lblas"], ++ [], [-lblas])], ++ [], [-lblas])]) ++fi ++ ++# BLAS in Intel MKL library? ++if test $ax_blas_ok = no; then ++ AC_CHECK_LIB(mkl, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lmkl"]) ++fi ++ ++# BLAS in Apple vecLib library? ++if test $ax_blas_ok = no; then ++ save_LIBS="$LIBS"; LIBS="-framework vecLib $LIBS" ++ AC_MSG_CHECKING([for $sgemm in -framework vecLib]) ++ AC_TRY_LINK_FUNC($sgemm, [ax_blas_ok=yes;BLAS_LIBS="-framework vecLib"]) ++ AC_MSG_RESULT($ax_blas_ok) ++ LIBS="$save_LIBS" ++fi ++ ++# BLAS in Alpha CXML library? ++if test $ax_blas_ok = no; then ++ AC_CHECK_LIB(cxml, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-lcxml"]) ++fi ++ ++# BLAS in Alpha DXML library? (now called CXML, see above) ++if test $ax_blas_ok = no; then ++ AC_CHECK_LIB(dxml, $sgemm, [ax_blas_ok=yes;BLAS_LIBS="-ldxml"]) ++fi ++ ++# BLAS in Sun Performance library? ++if test $ax_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" ++ ax_blas_ok=yes],[],[-lsunmath])]) ++ fi ++fi ++ ++# BLAS in SCSL library? (SGI/Cray Scientific Library) ++if test $ax_blas_ok = no; then ++ AC_CHECK_LIB(scs, $sgemm, [ax_blas_ok=yes; BLAS_LIBS="-lscs"]) ++fi ++ ++# BLAS in SGIMATH library? ++if test $ax_blas_ok = no; then ++ AC_CHECK_LIB(complib.sgimath, $sgemm, ++ [ax_blas_ok=yes; BLAS_LIBS="-lcomplib.sgimath"]) ++fi ++ ++# BLAS in IBM ESSL library? (requires generic BLAS lib, too) ++if test $ax_blas_ok = no; then ++ AC_CHECK_LIB(blas, $sgemm, ++ [AC_CHECK_LIB(essl, $sgemm, ++ [ax_blas_ok=yes; BLAS_LIBS="-lessl -lblas"], ++ [], [-lblas $FLIBS])]) ++fi ++ ++# Generic BLAS library? ++if test $ax_blas_ok = no; then ++ AC_CHECK_LIB(blas, $sgemm, [ax_blas_ok=yes; BLAS_LIBS="-lblas"]) ++fi ++ ++AC_SUBST(BLAS_LIBS) ++ ++LIBS="$ax_blas_save_LIBS" ++ ++# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: ++if test x"$ax_blas_ok" = xyes; then ++ ifelse([$1],,AC_DEFINE(HAVE_BLAS,1,[Define if you have a BLAS library.]),[$1]) ++ : ++else ++ ax_blas_ok=no ++ $2 ++fi ++])dnl AX_BLAS +diff -Nur SuperLU_4.1.orig/configure.ac SuperLU_4.1/configure.ac +--- SuperLU_4.1.orig/configure.ac 1970-01-01 01:00:00.000000000 +0100 ++++ SuperLU_4.1/configure.ac 2010-12-12 17:41:31.000000000 +0000 +@@ -0,0 +1,16 @@ ++# -*- Autoconf -*- ++AC_PREREQ(2.59) ++AC_INIT(superlu, 4.0, xsli@lbl.gov) ++AM_INIT_AUTOMAKE([foreign]) ++AC_CONFIG_HEADER([config.h]) ++AC_PROG_INSTALL ++AC_PROG_LIBTOOL ++AC_PROG_F77 ++sinclude(ax_blas.m4) ++AX_BLAS ++if test x"$BLAS_LIBS" = x; then ++ AC_MSG_ERROR([Cannot find blas libraries]) ++fi ++AC_CHECK_LIB([m], [floor]) ++AC_CONFIG_FILES([Makefile SRC/Makefile superlu.pc]) ++AC_OUTPUT +diff -Nur SuperLU_4.1.orig/EXAMPLE/Makefile SuperLU_4.1/EXAMPLE/Makefile +--- SuperLU_4.1.orig/EXAMPLE/Makefile 2010-08-11 23:40:19.000000000 +0100 ++++ SuperLU_4.1/EXAMPLE/Makefile 2010-12-12 17:50:34.000000000 +0000 +@@ -1,4 +1,3 @@ +-include ../make.inc + + ####################################################################### + # This makefile creates the example programs for the linear equation +@@ -32,7 +31,9 @@ + # + ####################################################################### + +-HEADER = ../SRC ++HEADER = $(shell pkg-config --cflags superlu) ++LIBS = $(shell pkg-config --libs superlu) ++CDEFS = -DAdd_ + + SLINEXM = slinsol.o + SLINEXM1 = slinsol1.o +@@ -63,7 +64,6 @@ + ZLINXEXM2 = zlinsolx2.o + ZITSOL = zitersol.o zfgmr.o + +- + all: single double complex complex16 + + single: slinsol slinsol1 slinsolx slinsolx1 slinsolx2 sitersol +@@ -71,86 +71,86 @@ + complex: clinsol clinsol1 clinsolx clinsolx1 clinsolx2 citersol + complex16: zlinsol zlinsol1 zlinsolx zlinsolx1 zlinsolx2 zitersol + +-slinsol: $(SLINEXM) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(SLINEXM) $(LIBS) -lm -o $@ ++slinsol: $(SLINEXM) ++ $(LD) $(LDFLAGS) $(SLINEXM) $(LIBS) -o $@ + +-slinsol1: $(SLINEXM1) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(SLINEXM1) $(LIBS) -lm -o $@ ++slinsol1: $(SLINEXM1) ++ $(LD) $(LDFLAGS) $(SLINEXM1) $(LIBS) -o $@ + +-slinsolx: $(SLINXEXM) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(SLINXEXM) $(LIBS) -lm -o $@ ++slinsolx: $(SLINXEXM) ++ $(LD) $(LDFLAGS) $(SLINXEXM) $(LIBS) -o $@ + +-slinsolx1: $(SLINXEXM1) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(SLINXEXM1) $(LIBS) -lm -o $@ ++slinsolx1: $(SLINXEXM1) ++ $(LD) $(LDFLAGS) $(SLINXEXM1) $(LIBS) -o $@ + +-slinsolx2: $(SLINXEXM2) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(SLINXEXM2) $(LIBS) -lm -o $@ ++slinsolx2: $(SLINXEXM2) ++ $(LD) $(LDFLAGS) $(SLINXEXM2) $(LIBS) -o $@ + +-sitersol: $(SITSOL) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(SITSOL) $(LIBS) -lm -o $@ ++sitersol: $(SITSOL) ++ $(LD) $(LDFLAGS) $(SITSOL) $(LIBS) -o $@ + +-dlinsol: $(DLINEXM) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(DLINEXM) $(LIBS) -lm -o $@ ++dlinsol: $(DLINEXM) ++ $(LD) $(LDFLAGS) $(DLINEXM) $(LIBS) -o $@ + +-dlinsol1: $(DLINEXM1) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(DLINEXM1) $(LIBS) -lm -o $@ ++dlinsol1: $(DLINEXM1) ++ $(LD) $(LDFLAGS) $(DLINEXM1) $(LIBS) -o $@ + +-dlinsolx: $(DLINXEXM) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(DLINXEXM) $(LIBS) -lm -o $@ ++dlinsolx: $(DLINXEXM) ++ $(LD) $(LDFLAGS) $(DLINXEXM) $(LIBS) -o $@ + +-dlinsolx1: $(DLINXEXM1) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(DLINXEXM1) $(LIBS) -lm -o $@ ++dlinsolx1: $(DLINXEXM1) ++ $(LD) $(LDFLAGS) $(DLINXEXM1) $(LIBS) -o $@ + +-dlinsolx2: $(DLINXEXM2) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(DLINXEXM2) $(LIBS) -lm -o $@ ++dlinsolx2: $(DLINXEXM2) ++ $(LD) $(LDFLAGS) $(DLINXEXM2) $(LIBS) -o $@ + +-superlu: $(SUPERLUEXM) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(SUPERLUEXM) $(LIBS) -lm -o $@ ++superlu: $(SUPERLUEXM) ++ $(LD) $(LDFLAGS) $(SUPERLUEXM) $(LIBS) -o $@ + +-ditersol: $(DITSOL) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(DITSOL) $(LIBS) -lm -o $@ ++ditersol: $(DITSOL) ++ $(LD) $(LDFLAGS) $(DITSOL) $(LIBS) -o $@ + +-clinsol: $(CLINEXM) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(CLINEXM) $(LIBS) -lm -o $@ ++clinsol: $(CLINEXM) ++ $(LD) $(LDFLAGS) $(CLINEXM) $(LIBS) -o $@ + +-clinsol1: $(CLINEXM1) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(CLINEXM1) $(LIBS) -lm -o $@ ++clinsol1: $(CLINEXM1) ++ $(LD) $(LDFLAGS) $(CLINEXM1) $(LIBS) -o $@ + +-clinsolx: $(CLINXEXM) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(CLINXEXM) $(LIBS) -lm -o $@ ++clinsolx: $(CLINXEXM) ++ $(LD) $(LDFLAGS) $(CLINXEXM) $(LIBS) -o $@ + +-clinsolx1: $(CLINXEXM1) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(CLINXEXM1) $(LIBS) -lm -o $@ ++clinsolx1: $(CLINXEXM1) ++ $(LD) $(LDFLAGS) $(CLINXEXM1) $(LIBS) -o $@ + +-clinsolx2: $(CLINXEXM2) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(CLINXEXM2) $(LIBS) -lm -o $@ ++clinsolx2: $(CLINXEXM2) ++ $(LD) $(LDFLAGS) $(CLINXEXM2) $(LIBS) -o $@ + +-citersol: $(CITSOL) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(CITSOL) $(LIBS) -lm -o $@ ++citersol: $(CITSOL) ++ $(LD) $(LDFLAGS) $(CITSOL) $(LIBS) -o $@ + +-zlinsol: $(ZLINEXM) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(ZLINEXM) $(LIBS) -lm -o $@ ++zlinsol: $(ZLINEXM) ++ $(LD) $(LDFLAGS) $(ZLINEXM) $(LIBS) -o $@ + +-zlinsol1: $(ZLINEXM1) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(ZLINEXM1) $(LIBS) -lm -o $@ ++zlinsol1: $(ZLINEXM1) ++ $(LD) $(LDFLAGS) $(ZLINEXM1) $(LIBS) -o $@ + +-zlinsolx: $(ZLINXEXM) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(ZLINXEXM) $(LIBS) -lm -o $@ ++zlinsolx: $(ZLINXEXM) ++ $(LD) $(LDFLAGS) $(ZLINXEXM) $(LIBS) -o $@ + +-zlinsolx1: $(ZLINXEXM1) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(ZLINXEXM1) $(LIBS) -lm -o $@ ++zlinsolx1: $(ZLINXEXM1) ++ $(LD) $(LDFLAGS) $(ZLINXEXM1) $(LIBS) -o $@ + +-zlinsolx2: $(ZLINXEXM2) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(ZLINXEXM2) $(LIBS) -lm -o $@ ++zlinsolx2: $(ZLINXEXM2) ++ $(LD) $(LDFLAGS) $(ZLINXEXM2) $(LIBS) -o $@ + +-zitersol: $(ZITSOL) $(SUPERLULIB) +- $(LOADER) $(LOADOPTS) $(ZITSOL) $(LIBS) -lm -o $@ ++zitersol: $(ZITSOL) ++ $(LD) $(LDFLAGS) $(ZITSOL) $(LIBS) -o $@ + + .c.o: +- $(CC) $(CFLAGS) $(CDEFS) -I$(HEADER) -c $< $(VERBOSE) ++ $(CC) $(CFLAGS) $(CDEFS) $(HEADER) -c $< $(VERBOSE) + + .f.o: +- $(FORTRAN) $(FFLAGS) -c $< $(VERBOSE) ++ $(FC) $(FFLAGS) -c $< $(VERBOSE) + + clean: + rm -f *.o *linsol *linsol1 *linsolx *linsolx1 *linsolx2 \ +diff -Nur SuperLU_4.1.orig/FORTRAN/Makefile SuperLU_4.1/FORTRAN/Makefile +--- SuperLU_4.1.orig/FORTRAN/Makefile 2010-08-11 23:40:19.000000000 +0100 ++++ SuperLU_4.1/FORTRAN/Makefile 2010-12-12 17:50:23.000000000 +0000 +@@ -1,28 +1,27 @@ +-include ../make.inc + + ####################################################################### + # This makefile creates the Fortran example interface to use the + # C routines in SuperLU. + ####################################################################### + +-HEADER = ../SRC +-LIBS = $(SUPERLULIB) $(BLASLIB) -lm ++HEADER = $(shell pkg-config --cflags superlu) ++LIBS = $(shell pkg-config --libs superlu) + + F77EXM = f77_main.o hbcode1.o c_fortran_dgssv.o + + all: f77exm + +-f77exm: $(F77EXM) $(SUPERLULIB) +- $(FORTRAN) $(LOADOPTS) $(F77EXM) $(LIBS) -o $@ ++f77exm: $(F77EXM) ++ $(FC) $(LDFLAGS) $(F77EXM) $(LIBS) -o $@ + + c_fortran_zgssv.o: c_fortran_zgssv.c +- $(CC) $(CFLAGS) $(CDEFS) -I$(HEADER) -c $< $(VERBOSE) ++ $(CC) $(CFLAGS) $(CDEFS) $(HEADER) -c $< $(VERBOSE) + + .c.o: +- $(CC) $(CFLAGS) $(CDEFS) -I$(HEADER) -c $< $(VERBOSE) ++ $(CC) $(CFLAGS) $(CDEFS) -c $< $(VERBOSE) + + .f.o: +- $(FORTRAN) $(FFLAGS) -c $< $(VERBOSE) ++ $(FC) $(FFLAGS) -c $< $(VERBOSE) + + clean: + rm -f *.o f77exm +diff -Nur SuperLU_4.1.orig/Makefile.am SuperLU_4.1/Makefile.am +--- SuperLU_4.1.orig/Makefile.am 1970-01-01 01:00:00.000000000 +0100 ++++ SuperLU_4.1/Makefile.am 2010-12-12 17:47:31.000000000 +0000 +@@ -0,0 +1,4 @@ ++SUBDIRS = SRC ++ ++pkgconfigdir = $(libdir)/pkgconfig ++pkgconfig_DATA = superlu.pc +diff -Nur SuperLU_4.1.orig/SRC/Makefile.am SuperLU_4.1/SRC/Makefile.am +--- SuperLU_4.1.orig/SRC/Makefile.am 1970-01-01 01:00:00.000000000 +0100 ++++ SuperLU_4.1/SRC/Makefile.am 2010-12-12 18:00:18.000000000 +0000 +@@ -0,0 +1,116 @@ ++AM_CPPFLAGS = -DAdd_ ++ ++### headers ++noinst_HEADERS = \ ++ colamd.h \ ++ html_mainpage.h ++ ++src_includedir = $(includedir)/superlu ++src_include_HEADERS = \ ++ slu_cdefs.h \ ++ slu_ddefs.h \ ++ slu_sdefs.h \ ++ slu_zdefs.h ++ slu_Cnames.h \ ++ slu_dcomplex.h \ ++ slu_scomplex.h \ ++ slu_util.h \ ++ superlu_enum_consts.h \ ++ supermatrix.h ++ ++### 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 \ ++ ilu_relax_snode.c ilu_heap_relax_snode.c mark_relax.c \ ++ mc64ad.f qselect.f ++ ++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 \ ++ sgsisx.c sgsitrf.c sldperm.c \ ++ ilu_sdrop_row.c ilu_ssnode_dfs.c \ ++ ilu_scolumn_dfs.c ilu_spanel_dfs.c ilu_scopy_to_ucol.c \ ++ ilu_spivotL.c sdiagonal.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 \ ++ dgsisx.c dgsitrf.c \ ++ dldperm.c \ ++ ilu_ddrop_row.c ilu_dsnode_dfs.c \ ++ ilu_dcolumn_dfs.c ilu_dpanel_dfs.c ilu_dcopy_to_ucol.c \ ++ ilu_dpivotL.c ddiagonal.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 \ ++ cgsisx.c cgsitrf.c cldperm.c \ ++ ilu_cdrop_row.c ilu_csnode_dfs.c \ ++ ilu_ccolumn_dfs.c ilu_cpanel_dfs.c ilu_ccopy_to_ucol.c \ ++ ilu_cpivotL.c cdiagonal.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 \ ++ zgsisx.c zgsitrf.c zldperm.c \ ++ ilu_zdrop_row.c ilu_zsnode_dfs.c \ ++ ilu_zcolumn_dfs.c ilu_zpanel_dfs.c ilu_zcopy_to_ucol.c \ ++ ilu_zpivotL.c zdiagonal.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 4: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 -Nur SuperLU_4.1.orig/superlu.pc.in SuperLU_4.1/superlu.pc.in +--- SuperLU_4.1.orig/superlu.pc.in 1970-01-01 01:00:00.000000000 +0100 ++++ SuperLU_4.1/superlu.pc.in 2010-12-12 17:44:43.000000000 +0000 +@@ -0,0 +1,13 @@ ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++libdir=@libdir@ ++includedir=@includedir@ ++ ++Name: @PACKAGE_NAME@ ++Description: Sparse LU factorization library ++Version: @PACKAGE_VERSION@ ++URL: http://www.netlib.org/blas/ ++Libs: -L${libdir} -lsuperlu ++Libs.private: -lm @FLIBS@ ++Requires: blas ++Cflags: -I${includedir} diff --git a/sci-libs/superlu/files/superlu-examples.patch b/sci-libs/superlu/files/superlu-examples.patch index a585c1a01b71..7183d9815506 100644 --- a/sci-libs/superlu/files/superlu-examples.patch +++ b/sci-libs/superlu/files/superlu-examples.patch @@ -4,7 +4,7 @@ -include ../make.inc +SUPERLULIB = -lsuperlu +BLASLIB = $(BLAS_LIBS) -+FORTRAN = $(F77) ++FORTRAN = $(FC) +LOADER = $(LD) +LOADOPTS = $(LDFLAGS) +CDEFS = -DAdd_ diff --git a/sci-libs/superlu/superlu-4.1.ebuild b/sci-libs/superlu/superlu-4.1.ebuild new file mode 100644 index 000000000000..92f826554f0e --- /dev/null +++ b/sci-libs/superlu/superlu-4.1.ebuild @@ -0,0 +1,65 @@ +# 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.1.ebuild,v 1.1 2010/12/12 18:27:41 bicatali 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 + eautoreconf +} + +src_configure() { + econf \ + --with-blas="$(pkg-config --libs blas)" \ + $(use_enable static-libs static) +} + +src_test() { + cd TESTING + emake -j1 \ + CC="$(tc-getCC)" \ + FORTRAN="$(tc-getFC)" \ + LOADER="$(tc-getCC)" \ + CFLAGS="${CFLAGS}" \ + FFLAGS="${FFLAGS}" \ + LOADOPTS="${LDFLAGS}" \ + BLASLIB="$(pkg-config --libs blas)" \ + SUPERLULIB="${S}/SRC/.libs/libsuperlu.so" \ + LD_LIBRARY_PATH="${S}/SRC/.libs" \ + || die "emake matrix generation failed" +} + +src_install() { + emake DESTDIR="${D}" install || die "emake install failed" + dodoc README + + if use doc; then + dodoc DOC/ug.pdf || die + dohtml DOC/html/* || die + fi + if use examples; then + insinto /usr/share/doc/${PF}/examples + doins -r EXAMPLE FORTRAN || die + fi +} |