diff options
Diffstat (limited to 'sci-libs/umfpack')
-rw-r--r-- | sci-libs/umfpack/ChangeLog | 8 | ||||
-rw-r--r-- | sci-libs/umfpack/files/umfpack-5.5.0-autotools.patch | 560 | ||||
-rw-r--r-- | sci-libs/umfpack/metadata.xml | 3 | ||||
-rw-r--r-- | sci-libs/umfpack/umfpack-5.5.0.ebuild | 46 |
4 files changed, 616 insertions, 1 deletions
diff --git a/sci-libs/umfpack/ChangeLog b/sci-libs/umfpack/ChangeLog index b107ed693087..6529a47890e4 100644 --- a/sci-libs/umfpack/ChangeLog +++ b/sci-libs/umfpack/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for sci-libs/umfpack # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sci-libs/umfpack/ChangeLog,v 1.17 2010/01/02 18:19:03 fauli Exp $ +# $Header: /var/cvsroot/gentoo-x86/sci-libs/umfpack/ChangeLog,v 1.18 2010/05/14 21:46:31 bicatali Exp $ + +*umfpack-5.5.0 (14 May 2010) + + 14 May 2010; Sébastien Fabbro <bicatali@gentoo.org> + +umfpack-5.5.0.ebuild, +files/umfpack-5.5.0-autotools.patch, metadata.xml: + Version bump. Now can use METIS partitioning, via CHOLMOD 02 Jan 2010; Christian Faulhammer <fauli@gentoo.org> umfpack-5.4.0.ebuild: Transfer Prefix keywords diff --git a/sci-libs/umfpack/files/umfpack-5.5.0-autotools.patch b/sci-libs/umfpack/files/umfpack-5.5.0-autotools.patch new file mode 100644 index 000000000000..44db752f45c5 --- /dev/null +++ b/sci-libs/umfpack/files/umfpack-5.5.0-autotools.patch @@ -0,0 +1,560 @@ +diff -Nur UMFPACK.orig/acx_blas.m4 UMFPACK/acx_blas.m4 +--- UMFPACK.orig/acx_blas.m4 1970-01-01 01:00:00.000000000 +0100 ++++ UMFPACK/acx_blas.m4 2010-05-14 20:54:52.000000000 +0100 +@@ -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 +diff -Nur UMFPACK.orig/configure.ac UMFPACK/configure.ac +--- UMFPACK.orig/configure.ac 1970-01-01 01:00:00.000000000 +0100 ++++ UMFPACK/configure.ac 2010-05-14 20:55:11.000000000 +0100 +@@ -0,0 +1,44 @@ ++# -*- Autoconf -*- ++AC_PREREQ(2.59) ++AC_INIT(umfpack, 5.5.0, davis@cise.ufl.edu) ++AC_CONFIG_SRCDIR([Source/umf_solve.c]) ++AM_INIT_AUTOMAKE([foreign]) ++AC_PROG_INSTALL ++AC_PROG_F77 ++AC_PROG_LIBTOOL ++AC_CHECK_LIB(m, sqrt) ++sinclude(acx_blas.m4) ++ACX_BLAS ++if test x"$BLAS_LIBS" = x; then ++ AC_MSG_ERROR([Cannot find blas libraries]) ++fi ++AC_CHECK_LIB(amd, amd_aat) ++ ++AC_ARG_WITH(cholmod, ++ [AC_HELP_STRING([--with-cholmod], ++ [Use CHOLMOD for ordering methods])], ++ [with_cholmod=$withval], ++ [with_cholmod="yes"]) ++if test x$with_cholmod = xyes; then ++ AC_CHECK_HEADERS(cholmod.h) ++ AC_CHECK_LIB(cholmod, cholmod_solve, [], \ ++ [AC_MSG_ERROR([Cannot find libcholmod])]) ++ ++ PKG_PROG_PKG_CONFIG ++ if test -n "$PKG_CONFIG"; then ++ PKG_CHECK_MODULES([metis], [metis]) ++ else ++ AC_CHECK_HEADERS(metis.h) ++ AC_CHECK_LIB(metis, METIS_NodeND, [METIS_LIBS=-lmetis], \ ++ [AC_MSG_ERROR([CHOLMOD needs metis. Cannot find libmetis])]) ++ fi ++ AC_DEFINE(NCHOLMOD) ++fi ++AM_CONDITIONAL([CHOLMOD], [test x$with_cholmod = xyes]) ++ ++ ++AC_CONFIG_FILES([Source/Makefile ++ Include/Makefile ++ Demo/Makefile ++ Makefile]) ++AC_OUTPUT +diff -Nur UMFPACK.orig/Demo/Makefile.am UMFPACK/Demo/Makefile.am +--- UMFPACK.orig/Demo/Makefile.am 1970-01-01 01:00:00.000000000 +0100 ++++ UMFPACK/Demo/Makefile.am 2010-05-14 20:54:52.000000000 +0100 +@@ -0,0 +1,44 @@ ++AM_CPPFLAGS = -I$(top_srcdir)/Include ++LDADD = $(top_builddir)/Source/libumfpack.la ++ ++check_PROGRAMS = umfpack_simple \ ++ umfpack_di_demo \ ++ umfpack_dl_demo \ ++ umfpack_zi_demo \ ++ umfpack_zl_demo ++ ++umfpack_%_demo.c: umfpack_xx_demo.c umfpack_%_demo.sed ++ - sed -f umfpack_$*_demo.sed < umfpack_xx_demo.c > umfpack_$*_demo.c ++ ++umfpack_simple_SOURCES = umfpack_simple.c ++umfpack_di_demo_SOURCES = umfpack_di_demo.c ++umfpack_dl_demo_SOURCES = umfpack_dl_demo.c ++umfpack_zi_demo_SOURCES = umfpack_zi_demo.c ++umfpack_zl_demo_SOURCES = umfpack_zl_demo.c ++ ++check-local: $(check_PROGRAMS) ++ @total=0; failed=0; \ ++ ./umfpack_simple; \ ++ if [ "x$$?" = "x0" ]; then \ ++ echo "Test umfpack_simple PASSED."; \ ++ else \ ++ echo "Test umfpack_simple FAILED!!!"; \ ++ failed=$$(($$failed + 1)); \ ++ fi; \ ++ total=$$(($$total + 1)); \ ++ for i in *demo; do \ ++ echo "--- Testing $$i ---"; \ ++ ./$$i$(EXEEXT) > my_$$i.out; \ ++ diff $$i.out my_$$i.out; \ ++ if [ "x$$?" = "x0" ]; then \ ++ echo "Test \`$$i' PASSED."; \ ++ else \ ++ echo "Test \`$$i' FAILED!!!"; \ ++ failed=$$(($$failed + 1)); \ ++ fi; \ ++ total=$$(($$total + 1)); \ ++ done; \ ++ if [ $$failed -gt 0 ]; then \ ++ echo "*** ERROR: $$failed/$$total tests failed!!!"; \ ++ echo "Please check the failures before reporting"; \ ++ fi +diff -Nur UMFPACK.orig/Include/Makefile.am UMFPACK/Include/Makefile.am +--- UMFPACK.orig/Include/Makefile.am 1970-01-01 01:00:00.000000000 +0100 ++++ UMFPACK/Include/Makefile.am 2010-05-14 20:54:52.000000000 +0100 +@@ -0,0 +1,34 @@ ++include_HEADERS = \ ++ umfpack.h \ ++ umfpack_col_to_triplet.h \ ++ umfpack_defaults.h \ ++ umfpack_free_numeric.h \ ++ umfpack_free_symbolic.h \ ++ umfpack_get_determinant.h \ ++ umfpack_get_lunz.h \ ++ umfpack_get_numeric.h \ ++ umfpack_get_symbolic.h \ ++ umfpack_global.h \ ++ umfpack_load_numeric.h \ ++ umfpack_load_symbolic.h \ ++ umfpack_numeric.h \ ++ umfpack_qsymbolic.h \ ++ umfpack_report_control.h \ ++ umfpack_report_info.h \ ++ umfpack_report_matrix.h \ ++ umfpack_report_numeric.h \ ++ umfpack_report_perm.h \ ++ umfpack_report_status.h \ ++ umfpack_report_symbolic.h \ ++ umfpack_report_triplet.h \ ++ umfpack_report_vector.h \ ++ umfpack_save_numeric.h \ ++ umfpack_save_symbolic.h \ ++ umfpack_scale.h \ ++ umfpack_solve.h \ ++ umfpack_symbolic.h \ ++ umfpack_tictoc.h \ ++ umfpack_timer.h \ ++ umfpack_transpose.h \ ++ umfpack_triplet_to_col.h \ ++ umfpack_wsolve.h +diff -Nur UMFPACK.orig/Makefile.am UMFPACK/Makefile.am +--- UMFPACK.orig/Makefile.am 1970-01-01 01:00:00.000000000 +0100 ++++ UMFPACK/Makefile.am 2010-05-14 20:54:52.000000000 +0100 +@@ -0,0 +1,2 @@ ++SUBDIRS = Source Include Demo ++EXTRA_DIST = README.txt +diff -Nur UMFPACK.orig/Source/Makefile.am UMFPACK/Source/Makefile.am +--- UMFPACK.orig/Source/Makefile.am 1970-01-01 01:00:00.000000000 +0100 ++++ UMFPACK/Source/Makefile.am 2010-05-14 20:54:52.000000000 +0100 +@@ -0,0 +1,221 @@ ++AM_CPPFLAGS = -I$(top_srcdir)/Include ++lib_LTLIBRARIES = libumfpack.la ++ ++# non-user-callable umf_*.[ch] files: ++UMFCH = umf_assemble umf_blas3_update umf_build_tuples umf_create_element \ ++ umf_dump umf_extend_front umf_garbage_collection umf_get_memory \ ++ umf_init_front umf_kernel umf_kernel_init umf_kernel_wrapup \ ++ umf_local_search umf_lsolve umf_ltsolve umf_mem_alloc_element \ ++ umf_mem_alloc_head_block umf_mem_alloc_tail_block \ ++ umf_mem_free_tail_block umf_mem_init_memoryspace \ ++ umf_report_vector umf_row_search umf_scale_column \ ++ umf_set_stats umf_solve umf_symbolic_usage umf_transpose \ ++ umf_tuple_lengths umf_usolve umf_utsolve umf_valid_numeric \ ++ umf_valid_symbolic umf_grow_front umf_start_front \ ++ umf_store_lu umf_scale ++ ++# non-user-callable umf_*.[ch] files, int/UF_long versions only (no real/complex): ++UMFINT = umf_analyze umf_apply_order umf_colamd umf_cholmod umf_free umf_fsize \ ++ umf_is_permutation umf_malloc umf_realloc umf_report_perm \ ++ umf_singletons ++ ++# non-user-callable, created from umf_ltsolve.c, umf_utsolve.c, ++# umf_triplet.c, and umf_assemble.c , with int/UF_long and real/complex versions: ++UMF_CREATED = umf_lhsolve umf_uhsolve umf_triplet_map_nox \ ++ umf_triplet_nomap_x umf_triplet_nomap_nox umf_triplet_map_x \ ++ umf_assemble_fixq umf_store_lu_drop ++ ++# non-user-callable, int/UF_long and real/complex versions: ++UMF = $(UMF_CREATED) $(UMFCH) ++ ++# user-callable umfpack_*.[ch] files (int/UF_long and real/complex): ++UMFPACK = umfpack_col_to_triplet umfpack_defaults umfpack_free_numeric \ ++ umfpack_free_symbolic umfpack_get_numeric umfpack_get_lunz \ ++ umfpack_get_symbolic umfpack_get_determinant umfpack_numeric \ ++ umfpack_qsymbolic umfpack_report_control umfpack_report_info \ ++ umfpack_report_matrix umfpack_report_numeric umfpack_report_perm \ ++ umfpack_report_status umfpack_report_symbolic umfpack_report_triplet \ ++ umfpack_report_vector umfpack_solve umfpack_symbolic \ ++ umfpack_transpose umfpack_triplet_to_col umfpack_scale \ ++ umfpack_load_numeric umfpack_save_numeric \ ++ umfpack_load_symbolic umfpack_save_symbolic ++ ++# user-callable, created from umfpack_solve.c (umfpack_wsolve.h exists, though): ++# with int/UF_long and real/complex versions: ++UMFPACKW = umfpack_wsolve ++ ++USER = $(UMFPACKW) $(UMFPACK) ++ ++# user-callable, only one version for int/UF_long, real/complex, *.[ch] files: ++GENERIC = umfpack_timer umfpack_tictoc umfpack_global ++ ++ ++#------------------------------------------------------------------------------- ++# object files for each version ++#------------------------------------------------------------------------------- ++ ++DI = $(addsuffix .lo, $(subst umf_,umf_di_,$(UMF)) $(subst umfpack_,umfpack_di_,$(USER))) ++DL = $(addsuffix .lo, $(subst umf_,umf_dl_,$(UMF)) $(subst umfpack_,umfpack_dl_,$(USER))) ++ZI = $(addsuffix .lo, $(subst umf_,umf_zi_,$(UMF)) $(subst umfpack_,umfpack_zi_,$(USER))) ++ZL = $(addsuffix .lo, $(subst umf_,umf_zl_,$(UMF)) $(subst umfpack_,umfpack_zl_,$(USER))) ++II = $(addsuffix .lo, $(subst umf_,umf_i_,$(UMFINT))) ++LL = $(addsuffix .lo, $(subst umf_,umf_l_,$(UMFINT))) ++GN = $(addsuffix .lo, $(subst umfpack_,umfpack_gn_,$(GENERIC))) ++ ++#------------------------------------------------------------------------------- ++# compile each int and UF_long routine (with no real/complex version) ++#------------------------------------------------------------------------------- ++ ++umf_i_%.lo: umf_%.c $(INC) ++ $(LTCOMPILE) -DDINT -c $< -o $@ ++ ++umf_l_%.lo: umf_%.c $(INC) ++ $(LTCOMPILE) -DDLONG -c $< -o $@ ++ ++#------------------------------------------------------------------------------- ++# compile each routine in the DI version ++#------------------------------------------------------------------------------- ++ ++umf_di_%.lo: umf_%.c $(INC) ++ $(LTCOMPILE) -DDINT -c $< -o $@ ++ ++umf_di_%hsolve.lo: umf_%tsolve.c $(INC) ++ $(LTCOMPILE) -DDINT -DCONJUGATE_SOLVE -c $< -o $@ ++ ++umf_di_triplet_map_x.lo: umf_triplet.c $(INC) ++ $(LTCOMPILE) -DDINT -DDO_MAP -DDO_VALUES -c $< -o $@ ++ ++umf_di_triplet_map_nox.lo: umf_triplet.c $(INC) ++ $(LTCOMPILE) -DDINT -DDO_MAP -c $< -o $@ ++ ++umf_di_triplet_nomap_x.lo: umf_triplet.c $(INC) ++ $(LTCOMPILE) -DDINT -DDO_VALUES -c $< -o $@ ++ ++umf_di_triplet_nomap_nox.lo: umf_triplet.c $(INC) ++ $(LTCOMPILE) -DDINT -c $< -o $@ ++ ++umf_di_assemble_fixq.lo: umf_assemble.c $(INC) ++ $(LTCOMPILE) -DDINT -DFIXQ -c $< -o $@ ++ ++umf_di_store_lu_drop.lo: umf_store_lu.c $(INC) ++ $(LTCOMPILE) -DDINT -DDROP -c $< -o $@ ++ ++umfpack_di_wsolve.lo: umfpack_solve.c $(INC) ++ $(LTCOMPILE) -DDINT -DWSOLVE -c $< -o $@ ++ ++umfpack_di_%.lo: umfpack_%.c $(INC) ++ $(LTCOMPILE) -DDINT -c $< -o $@ ++ ++#------------------------------------------------------------------------------- ++# compile each routine in the DL version ++#------------------------------------------------------------------------------- ++ ++umf_dl_%.lo: umf_%.c $(INC) ++ $(LTCOMPILE) -DDLONG -c $< -o $@ ++ ++umf_dl_%hsolve.lo: umf_%tsolve.c $(INC) ++ $(LTCOMPILE) -DDLONG -DCONJUGATE_SOLVE -c $< -o $@ ++ ++umf_dl_triplet_map_x.lo: umf_triplet.c $(INC) ++ $(LTCOMPILE) -DDLONG -DDO_MAP -DDO_VALUES -c $< -o $@ ++ ++umf_dl_triplet_map_nox.lo: umf_triplet.c $(INC) ++ $(LTCOMPILE) -DDLONG -DDO_MAP -c $< -o $@ ++ ++umf_dl_triplet_nomap_x.lo: umf_triplet.c $(INC) ++ $(LTCOMPILE) -DDLONG -DDO_VALUES -c $< -o $@ ++ ++umf_dl_triplet_nomap_nox.lo: umf_triplet.c $(INC) ++ $(LTCOMPILE) -DDLONG -c $< -o $@ ++ ++umf_dl_assemble_fixq.lo: umf_assemble.c $(INC) ++ $(LTCOMPILE) -DDLONG -DFIXQ -c $< -o $@ ++ ++umf_dl_store_lu_drop.lo: umf_store_lu.c $(INC) ++ $(LTCOMPILE) -DDLONG -DDROP -c $< -o $@ ++ ++umfpack_dl_wsolve.lo: umfpack_solve.c $(INC) ++ $(LTCOMPILE) -DDLONG -DWSOLVE -c $< -o $@ ++ ++umfpack_dl_%.lo: umfpack_%.c $(INC) ++ $(LTCOMPILE) -DDLONG -c $< -o $@ ++ ++#------------------------------------------------------------------------------- ++# compile each routine in the ZI version ++#------------------------------------------------------------------------------- ++ ++umf_zi_%.lo: umf_%.c $(INC) ++ $(LTCOMPILE) -DZINT -c $< -o $@ ++ ++umf_zi_%hsolve.lo: umf_%tsolve.c $(INC) ++ $(LTCOMPILE) -DZINT -DCONJUGATE_SOLVE -c $< -o $@ ++ ++umf_zi_triplet_map_x.lo: umf_triplet.c $(INC) ++ $(LTCOMPILE) -DZINT -DDO_MAP -DDO_VALUES -c $< -o $@ ++ ++umf_zi_triplet_map_nox.lo: umf_triplet.c $(INC) ++ $(LTCOMPILE) -DZINT -DDO_MAP -c $< -o $@ ++ ++umf_zi_triplet_nomap_x.lo: umf_triplet.c $(INC) ++ $(LTCOMPILE) -DZINT -DDO_VALUES -c $< -o $@ ++ ++umf_zi_triplet_nomap_nox.lo: umf_triplet.c $(INC) ++ $(LTCOMPILE) -DZINT -c $< -o $@ ++ ++umf_zi_assemble_fixq.lo: umf_assemble.c $(INC) ++ $(LTCOMPILE) -DZINT -DFIXQ -c $< -o $@ ++ ++umf_zi_store_lu_drop.lo: umf_store_lu.c $(INC) ++ $(LTCOMPILE) -DZINT -DDROP -c $< -o $@ ++ ++umfpack_zi_wsolve.lo: umfpack_solve.c $(INC) ++ $(LTCOMPILE) -DZINT -DWSOLVE -c $< -o $@ ++ ++umfpack_zi_%.lo: umfpack_%.c $(INC) ++ $(LTCOMPILE) -DZINT -c $< -o $@ ++ ++#------------------------------------------------------------------------------- ++# compile each routine in the ZL version ++#------------------------------------------------------------------------------- ++ ++umf_zl_%.lo: umf_%.c $(INC) ++ $(LTCOMPILE) -DZLONG -c $< -o $@ ++ ++umf_zl_%hsolve.lo: umf_%tsolve.c $(INC) ++ $(LTCOMPILE) -DZLONG -DCONJUGATE_SOLVE -c $< -o $@ ++ ++umf_zl_triplet_map_x.lo: umf_triplet.c $(INC) ++ $(LTCOMPILE) -DZLONG -DDO_MAP -DDO_VALUES -c $< -o $@ ++ ++umf_zl_triplet_map_nox.lo: umf_triplet.c $(INC) ++ $(LTCOMPILE) -DZLONG -DDO_MAP -c $< -o $@ ++ ++umf_zl_triplet_nomap_x.lo: umf_triplet.c $(INC) ++ $(LTCOMPILE) -DZLONG -DDO_VALUES -c $< -o $@ ++ ++umf_zl_triplet_nomap_nox.lo: umf_triplet.c $(INC) ++ $(LTCOMPILE) -DZLONG -c $< -o $@ ++ ++umf_zl_assemble_fixq.lo: umf_assemble.c $(INC) ++ $(LTCOMPILE) -DZLONG -DFIXQ -c $< -o $@ ++ ++umf_zl_store_lu_drop.lo: umf_store_lu.c $(INC) ++ $(LTCOMPILE) -DZLONG -DDROP -c $< -o $@ ++ ++umfpack_zl_wsolve.lo: umfpack_solve.c $(INC) ++ $(LTCOMPILE) -DZLONG -DWSOLVE -c $< -o $@ ++ ++umfpack_zl_%.lo: umfpack_%.c $(INC) ++ $(LTCOMPILE) -DZLONG -c $< -o $@ ++ ++#------------------------------------------------------------------------------- ++# Create the generic routines (GN) using a generic rule ++#------------------------------------------------------------------------------- ++ ++umfpack_gn_%.lo: umfpack_%.c $(INC) ++ $(LTCOMPILE) -c $< -o $@ ++ ++ ++libumfpack_la_SOURCES = ++libumfpack_la_LIBADD = $(BLAS_LIBS) -lm \ ++ $(II) $(LL) $(GN) $(DI) $(DL) $(ZI) $(ZL) diff --git a/sci-libs/umfpack/metadata.xml b/sci-libs/umfpack/metadata.xml index 05599ed9de7d..77a1528629ce 100644 --- a/sci-libs/umfpack/metadata.xml +++ b/sci-libs/umfpack/metadata.xml @@ -8,4 +8,7 @@ Includes a C-callable interface, and a Fortran-callable interface. MATLAB routines are not included in the Gentoo package. </longdescription> +<use> + <flag name='metis'>Use METIS via CHOLMOD(<pkg>sci-libs/cholmod</pkg>) for partitioning</flag> +</use> </pkgmetadata> diff --git a/sci-libs/umfpack/umfpack-5.5.0.ebuild b/sci-libs/umfpack/umfpack-5.5.0.ebuild new file mode 100644 index 000000000000..185627a093c7 --- /dev/null +++ b/sci-libs/umfpack/umfpack-5.5.0.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-libs/umfpack/umfpack-5.5.0.ebuild,v 1.1 2010/05/14 21:46:31 bicatali Exp $ + +EAPI=2 +inherit autotools eutils + +MY_PN=UMFPACK + +DESCRIPTION="Unsymmetric multifrontal sparse LU factorization library" +HOMEPAGE="http://www.cise.ufl.edu/research/sparse/umfpack" +SRC_URI="http://www.cise.ufl.edu/research/sparse/${PN}/${MY_PN}-${PV}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-macos" +IUSE="doc metis" +RDEPEND="virtual/blas + sci-libs/amd + metis? ( sci-libs/cholmod[metis] )" +DEPEND="${RDEPEND} + dev-util/pkgconfig" + +S="${WORKDIR}/${MY_PN}" + +src_prepare() { + cd "${WORKDIR}" + epatch "${FILESDIR}"/${PN}-5.5.0-autotools.patch + cd "${S}" + eautoreconf +} + +src_configure() { + econf \ + --with-blas="$(pkg-config --libs blas)" \ + $(use_with metis cholmod) +} + +src_install() { + emake DESTDIR="${D}" install || die "emake install failed" + dodoc README.txt Doc/ChangeLog || die "dodoc failed" + if use doc; then + insinto /usr/share/doc/${PF} + doins Doc/*.pdf || die "doins failed" + fi +} |