summaryrefslogtreecommitdiff
path: root/academic/umfpack
diff options
context:
space:
mode:
Diffstat (limited to 'academic/umfpack')
-rw-r--r--academic/umfpack/README10
-rw-r--r--academic/umfpack/atlas-threaded-blas.diff26
-rw-r--r--academic/umfpack/patches/atlas-lib-rename.diff21
-rw-r--r--academic/umfpack/patches/autotoolize.diff (renamed from academic/umfpack/autotoolize.diff)83
-rw-r--r--academic/umfpack/umfpack.SlackBuild27
-rw-r--r--academic/umfpack/umfpack.info6
6 files changed, 92 insertions, 81 deletions
diff --git a/academic/umfpack/README b/academic/umfpack/README
index 0a47fa35a3..954cb8b964 100644
--- a/academic/umfpack/README
+++ b/academic/umfpack/README
@@ -2,3 +2,13 @@ UMFPACK is a set of routines for solving unsymmetric sparse linear
systems, Ax=b, using the Unsymmetric MultiFrontal method.
This package is part of SuiteSparse.
+
+This requires a BLAS implementation. Choose one of these package sets:
+ * OpenBLAS
+ * atlas
+ * blas (the Netlib reference implementation)
+If more than one set is installed (assuming there are no packaging conflicts)
+then the auto-detection will use the first implementation from this list that
+it finds. If in doubt, choose the Netlib reference implementations; other
+packages that require a BLAS or LAPACK implementation may not build if they
+are not configured to detect/use alternate implementations.
diff --git a/academic/umfpack/atlas-threaded-blas.diff b/academic/umfpack/atlas-threaded-blas.diff
deleted file mode 100644
index e7f34ef011..0000000000
--- a/academic/umfpack/atlas-threaded-blas.diff
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/ax_blas.m4 b/ax_blas.m4
---- a/ax_blas.m4
-+++ b/ax_blas.m4
-@@ -117,12 +117,16 @@
- # 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])])
-+ [AC_CHECK_LIB(ptf77blas, $sgemm,
-+ [AC_CHECK_LIB(ptcblas, cblas_dgemm,
-+ [ax_blas_ok=yes; BLAS_LIBS="-lptcblas -lptf77blas -latlas"],,
-+ [-lptf77blas -latlas])],
-+ [AC_CHECK_LIB(f77blas, $sgemm,
-+ [AC_CHECK_LIB(cblas, cblas_dgemm,
-+ [ax_blas_ok=yes; BLAS_LIBS="-lcblas -lf77blas -latlas"],,
-+ [-lf77blas -latlas])],,
-+ [-latlas])],
-+ [-latlas])])
- fi
-
- # BLAS in PhiPACK libraries? (requires generic BLAS lib, too)
diff --git a/academic/umfpack/patches/atlas-lib-rename.diff b/academic/umfpack/patches/atlas-lib-rename.diff
new file mode 100644
index 0000000000..4801036f46
--- /dev/null
+++ b/academic/umfpack/patches/atlas-lib-rename.diff
@@ -0,0 +1,21 @@
+diff --git a/m4/ax_blas.m4 b/m4/ax_blas.m4
+--- a/m4/ax_blas.m4
++++ b/m4/ax_blas.m4
+@@ -116,13 +116,10 @@
+
+ # 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])])
++ AC_CHECK_LIB(tatlas, $sgemm,
++ [ax_blas_ok=yes; BLAS_LIBS="-ltatlas"],
++ [AC_CHECK_LIB(satlas, $sgemm,
++ [ax_blas_ok=yes; BLAS_LIBS="-lsatlas"])])
+ fi
+
+ # BLAS in PhiPACK libraries? (requires generic BLAS lib, too)
diff --git a/academic/umfpack/autotoolize.diff b/academic/umfpack/patches/autotoolize.diff
index af8e9ab1ad..12ebc41fc2 100644
--- a/academic/umfpack/autotoolize.diff
+++ b/academic/umfpack/patches/autotoolize.diff
@@ -159,22 +159,22 @@ diff --git a/Doc/Makefile.am b/Doc/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Doc/Makefile.am
-@@ -0,0 +1,97 @@
+@@ -0,0 +1,101 @@
+EXTRA_DIST = \
+ ChangeLog \
-+ License \
++ License.txt \
+ gpl.txt
+
+dist_noinst_DATA = \
-+ QuickStart.tex \
++ UMFPACK_QuickStart.tex \
+ UserGuide.bib \
+ UserGuide.sed1 \
+ UserGuide.sed2 \
-+ UserGuide.stex
++ UMFPACK_UserGuide.stex
+
+dist_pdf_DATA = \
-+ QuickStart.pdf \
-+ UserGuide.pdf
++ UMFPACK_QuickStart.pdf \
++ UMFPACK_UserGuide.pdf
+
+# Unlike UserGuide.sed1, use \input{filename.tex} to insert the source code
+# which we will construct below. Also remove the \begin{verbatim} and
@@ -191,7 +191,7 @@ new file mode 100644
+echo '\end{verbatim}' >> $@
+endef
+
-+UserGuide.tex: $(srcdir)/UserGuide.stex
++UMFPACK_UserGuide.tex: $(srcdir)/UMFPACK_UserGuide.stex
+ $(sed1)
+
+_simple_c.tex: $(top_srcdir)/Demo/umfpack_simple.c
@@ -233,8 +233,12 @@ new file mode 100644
+ _triplet_to_col_h.tex \
+ _wsolve_h.tex
+
-+.INTERMEDIATE: UserGuide.tex $(SRC)
-+UserGuide.tex: $(SRC)
++.INTERMEDIATE: UMFPACK_UserGuide.tex $(SRC)
++UMFPACK_UserGuide.tex: $(SRC)
++
++.INTERMEDIATE: UMFPACK_UserGuide.bib
++UMFPACK_UserGuide.bib: UserGuide.bib
++ $(LN_S) -f $< $@
+
+TEX = TEXINPUTS="$(srcdir):" pdflatex -interaction nonstopmode -file-line-error
+BIB = BIBINPUTS="$(srcdir):" bibtex
@@ -249,13 +253,13 @@ new file mode 100644
+ $(TEX) $*
+
+# QuickStart does not include a bibliography, so the above rule won't work.
-+QuickStart.pdf: %.pdf: %.tex
++UMFPACK_QuickStart.pdf: %.pdf: %.tex
+ $(TEX) $*
+ while grep -q "Rerun to get cross-references right" $*.log; do \
+ $(TEX) $*; \
+ done
+
-+CLEANFILES = *.aux *.bbl *.blg *.log *.toc UserGuide.tex
++CLEANFILES = *.aux *.bbl *.blg *.log *.toc UMFPACK_UserGuide.tex
+MAINTAINERCLEANFILES = $(dist_pdf_DATA)
diff --git a/Include/Makefile.am b/Include/Makefile.am
new file mode 100644
@@ -300,11 +304,10 @@ diff --git a/Makefile.am b/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Makefile.am
-@@ -0,0 +1,5 @@
+@@ -0,0 +1,4 @@
+SUBDIRS = Include Source Demo Doc
+EXTRA_DIST = README.txt
+
-+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = umfpack.pc
diff --git a/Source/Makefile.am b/Source/Makefile.am
new file mode 100644
@@ -463,8 +466,8 @@ new file mode 100644
+libumf_l_la_CPPFLAGS = $(AM_CPPFLAGS) -DDLONG
+
+if CHOLMOD
-+libumf_i_la_LIBADD = $(CHOLMOD_LIBS) -lgfortran
-+libumf_l_la_LIBADD = $(CHOLMOD_LIBS) -lgfortran
++libumf_i_la_LIBADD = $(CHOLMOD_LIBS)
++libumf_l_la_LIBADD = $(CHOLMOD_LIBS)
+else
+libumf_i_la_CPPFLAGS += -DNCHOLMOD
+libumf_l_la_CPPFLAGS += -DNCHOLMOD
@@ -876,56 +879,48 @@ diff --git a/configure.ac b/configure.ac
new file mode 100644
--- /dev/null
+++ b/configure.ac
-@@ -0,0 +1,75 @@
+@@ -0,0 +1,71 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.69])
-+AC_INIT([UMFPACK],[5.7.1],[DrTimothyAldenDavis@gmail.com],[umfpack],[http://www.suitesparse.com/])
++AC_INIT([UMFPACK],[5.7.6],[DrTimothyAldenDavis@gmail.com],[umfpack],[http://www.suitesparse.com/])
+AC_CONFIG_SRCDIR([Source/umfpack_solve.c])
+AC_CONFIG_HEADERS([config.h])
+AM_INIT_AUTOMAKE([foreign])
+LT_INIT
+
+# Checks for programs.
++PKG_PROG_PKG_CONFIG
+AC_PROG_INSTALL
+AC_PROG_CC
+AC_PROG_F77
+
-+AC_MSG_CHECKING([whether to use cholmod])
+AC_ARG_WITH([cholmod],
+ [AS_HELP_STRING(
+ [--without-cholmod],
+ [do not use CHOLMOD for ordering methods])],
-+ [cholmod=$withval],
-+ [cholmod="yes"])
-+AC_MSG_RESULT([$cholmod])
++ [],
++ [AS_VAR_SET([with_cholmod], [yes])])
+
-+LIBS_SAVED=$LIBS
++AS_VAR_SET([LIBS_SAVED], [$LIBS])
+
+# Checks for libraries.
+AC_CHECK_LIB([m], [sqrt])
+
+sinclude(ax_blas.m4)
-+AX_BLAS
-+if test "x$ax_blas_ok" != "xyes"; then
-+ AC_MSG_ERROR([cannot find blas])
-+fi
-+
-+PKG_PROG_PKG_CONFIG
-+PKG_CHECK_MODULES([SUITESPARSECONFIG],[suitesparseconfig],
-+ [],
-+ [AC_MSG_ERROR([cannot find suitesparseconfig])])
-+PKG_CHECK_MODULES([AMD],[amd],
++AX_BLAS(
+ [],
-+ [AC_MSG_ERROR([cannot find amd])])
-+UMFPACK_REQUIRES="suitesparseconfig amd"
++ [AC_MSG_ERROR([cannot find BLAS])])
+
-+if test "x$cholmod" = "xyes"; then
-+ PKG_CHECK_MODULES([CHOLMOD],[cholmod],
-+ [UMFPACK_REQUIRES="$UMFPACK_REQUIRES cholmod"],
-+ [AC_MSG_ERROR([cannot find cholmod])])
-+fi
++PKG_CHECK_MODULES([SUITESPARSECONFIG], [suitesparseconfig])
++PKG_CHECK_MODULES([AMD], [amd])
++AS_VAR_SET([UMFPACK_REQUIRES], ["suitesparseconfig amd"])
++
++AS_IF([test "x$with_cholmod" = "xyes"], [
++ PKG_CHECK_MODULES([CHOLMOD], [cholmod])
++ AS_VAR_APPEND([UMFPACK_REQUIRES], [" cholmod"])
++])
+
+# Checks for header files.
+AC_CHECK_HEADERS([float.h stdlib.h string.h])
@@ -938,19 +933,23 @@ new file mode 100644
+AC_FUNC_MALLOC
+AC_CHECK_FUNCS([pow sqrt])
+
-+LIBS=$LIBS_SAVED
++AS_VAR_SET([LIBS], [$LIBS_SAVED])
+
-+AM_CONDITIONAL([CHOLMOD], [test "x$cholmod" = "xyes"])
++AC_MSG_CHECKING([whether to use CHOLMOD for ordering methods])
++AC_MSG_RESULT([$with_cholmod])
++AM_CONDITIONAL([CHOLMOD], [test "x$with_cholmod" = "xyes"])
+
+AC_SUBST([UMFPACK_REQUIRES])
+
++PKG_INSTALLDIR
+AC_CONFIG_FILES([
+ umfpack.pc
+ Makefile
+ Demo/Makefile
+ Doc/Makefile
+ Include/Makefile
-+ Source/Makefile])
++ Source/Makefile
++])
+AC_OUTPUT
diff --git a/umfpack.pc.in b/umfpack.pc.in
new file mode 100644
diff --git a/academic/umfpack/umfpack.SlackBuild b/academic/umfpack/umfpack.SlackBuild
index e2047a9561..df3c7fddd1 100644
--- a/academic/umfpack/umfpack.SlackBuild
+++ b/academic/umfpack/umfpack.SlackBuild
@@ -25,14 +25,14 @@
PRGNAM=umfpack
SRCNAM=SuiteSparse
SUBDIR=UMFPACK
-VERSION=${VERSION:-5.7.1}
-SRCVER=${SRCVER:-4.4.6}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-5.7.6}
+SRCVER=${SRCVER:-4.5.3}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$(uname -m) ;;
esac
@@ -43,11 +43,14 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-DOCS="README.txt Doc/ChangeLog Doc/License Doc/gpl.txt"
+DOCS="README.txt Doc/ChangeLog Doc/License.txt Doc/gpl.txt"
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
@@ -73,12 +76,14 @@ cd $SRCNAM/$SUBDIR
chown -R root:root .
chmod -R u+w,go-w,a+rX-st .
-patch -p1 < $CWD/autotoolize.diff
-patch -p1 < $CWD/atlas-threaded-blas.diff
+patch -p1 < $CWD/patches/autotoolize.diff
+patch -p2 < $CWD/patches/atlas-lib-rename.diff
autoreconf -vif
-CFLAGS="$SLKCFLAGS" \
-FFLAGS="$SLKCFLAGS" \
+# Avoid rebuilding the docs.
+touch Doc/UMFPACK_QuickStart.pdf
+touch Doc/UMFPACK_UserGuide.pdf
+
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
@@ -90,7 +95,9 @@ FFLAGS="$SLKCFLAGS" \
--enable-shared \
--disable-static \
--disable-dependency-tracking \
- --build=$ARCH-slackware-linux
+ --build=$ARCH-slackware-linux \
+ CFLAGS="$SLKCFLAGS" \
+ FFLAGS="$SLKCFLAGS" \
make
make check
diff --git a/academic/umfpack/umfpack.info b/academic/umfpack/umfpack.info
index af4a1e1e18..13bdea94b9 100644
--- a/academic/umfpack/umfpack.info
+++ b/academic/umfpack/umfpack.info
@@ -1,8 +1,8 @@
PRGNAM="umfpack"
-VERSION="5.7.1"
+VERSION="5.7.6"
HOMEPAGE="http://faculty.cse.tamu.edu/davis/suitesparse.html"
-DOWNLOAD="http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.4.6.tar.gz"
-MD5SUM="131a3a5e2dee784cd946284e44ce9af2"
+DOWNLOAD="http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.5.3.tar.gz"
+MD5SUM="8ec57324585df3c6483ad7f556afccbd"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="blas suitesparseconfig amd cholmod"