summaryrefslogtreecommitdiff
path: root/academic/cholmod
diff options
context:
space:
mode:
Diffstat (limited to 'academic/cholmod')
-rw-r--r--academic/cholmod/README10
-rw-r--r--academic/cholmod/atlas-threaded-blas.diff26
-rw-r--r--academic/cholmod/cholmod.SlackBuild28
-rw-r--r--academic/cholmod/cholmod.info6
-rw-r--r--academic/cholmod/patches/atlas-lib-rename.diff21
-rw-r--r--academic/cholmod/patches/autotoolize.diff (renamed from academic/cholmod/autotoolize.diff)383
6 files changed, 221 insertions, 253 deletions
diff --git a/academic/cholmod/README b/academic/cholmod/README
index ebbb152bc3..46350dc390 100644
--- a/academic/cholmod/README
+++ b/academic/cholmod/README
@@ -3,4 +3,14 @@ update/downdate.
This package is part of SuiteSparse.
+This requires a BLAS/LAPACK implementation. Choose one of these package sets:
+ * OpenBLAS (includes both a BLAS and a LAPACK implementation)
+ * atlas (includes both a BLAS and a LAPACK implementation)
+ * blas, lapack (the Netlib reference implementations)
+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.
+
metis is an optional dependency and will be used if found.
diff --git a/academic/cholmod/atlas-threaded-blas.diff b/academic/cholmod/atlas-threaded-blas.diff
deleted file mode 100644
index e7f34ef011..0000000000
--- a/academic/cholmod/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/cholmod/cholmod.SlackBuild b/academic/cholmod/cholmod.SlackBuild
index 9b04c77c05..b3f38eb486 100644
--- a/academic/cholmod/cholmod.SlackBuild
+++ b/academic/cholmod/cholmod.SlackBuild
@@ -25,14 +25,14 @@
PRGNAM=cholmod
SRCNAM=SuiteSparse
SUBDIR=CHOLMOD
-VERSION=${VERSION:-3.0.6}
-SRCVER=${SRCVER:-4.4.6}
+VERSION=${VERSION:-3.0.11}
+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,12 +43,14 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-DOCS="README.txt Doc/ChangeLog Core/lesser.txt Modify/gpl.txt"
-MODULE_DOCS="Core/License.txt Check/License.txt Cholesky/License.txt Partition/License.txt MatrixOps/License.txt Modify/License.txt Supernodal/License.txt"
+DOCS="README.txt Doc/ChangeLog Doc/License.txt Core/lesser.txt Modify/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=""
@@ -74,12 +76,13 @@ 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/CHOLMOD_UserGuide.pdf
+
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
@@ -91,7 +94,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
@@ -101,9 +106,6 @@ find $PKG/usr/lib${LIBDIRSUFFIX} -name '*.la' -delete
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION
-for i in $MODULE_DOCS; do
- cp -a $i $PKG/usr/doc/$PRGNAM-$VERSION/$(echo $i | tr / _)
-done
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/academic/cholmod/cholmod.info b/academic/cholmod/cholmod.info
index 6c6c72a93a..de2d55fc51 100644
--- a/academic/cholmod/cholmod.info
+++ b/academic/cholmod/cholmod.info
@@ -1,8 +1,8 @@
PRGNAM="cholmod"
-VERSION="3.0.6"
+VERSION="3.0.11"
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 lapack suitesparseconfig amd camd colamd ccolamd"
diff --git a/academic/cholmod/patches/atlas-lib-rename.diff b/academic/cholmod/patches/atlas-lib-rename.diff
new file mode 100644
index 0000000000..4801036f46
--- /dev/null
+++ b/academic/cholmod/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/cholmod/autotoolize.diff b/academic/cholmod/patches/autotoolize.diff
index 14fd099f88..4b2828cd27 100644
--- a/academic/cholmod/autotoolize.diff
+++ b/academic/cholmod/patches/autotoolize.diff
@@ -2,11 +2,10 @@ diff --git a/Check/Makefile.am b/Check/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Check/Makefile.am
-@@ -0,0 +1,26 @@
+@@ -0,0 +1,25 @@
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
+
+EXTRA_DIST = \
-+ License.txt \
+ lesser.txt
+
+CHECKSRC = \
@@ -21,7 +20,7 @@ new file mode 100644
+
+libchecki_la_SOURCES = $(CHECKSRC)
+libchecki_la_LIBADD = $(SUITESPARSECONFIG_LIBS)
-+libchecki_la_CPPFLAGS= $(AM_CPPFLAGS)
++libchecki_la_CPPFLAGS = $(AM_CPPFLAGS)
+
+libcheckl_la_SOURCES = $(CHECKSRC)
+libcheckl_la_LIBADD = $(SUITESPARSECONFIG_LIBS)
@@ -33,11 +32,10 @@ diff --git a/Cholesky/Makefile.am b/Cholesky/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Cholesky/Makefile.am
-@@ -0,0 +1,41 @@
+@@ -0,0 +1,40 @@
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(COLAMD_CFLAGS) $(AMD_CFLAGS) $(SUITESPARSECONFIG_CFLAGS)
+
+EXTRA_DIST = \
-+ License.txt \
+ lesser.txt
+
+CHOLESKYSRC = \
@@ -79,11 +77,10 @@ diff --git a/Core/Makefile.am b/Core/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Core/Makefile.am
-@@ -0,0 +1,44 @@
+@@ -0,0 +1,43 @@
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
+
+EXTRA_DIST = \
-+ License.txt \
+ lesser.txt
+
+CORESRC = \
@@ -132,7 +129,7 @@ new file mode 100644
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
+
+EXTRA_DIST = \
-+ License.txt \
++ README.txt \
+ gpl.txt
+
+dist_noinst_HEADERS = \
@@ -163,13 +160,13 @@ new file mode 100644
+ cholmod_simple
+
+cholmod_demo_SOURCES = cholmod_demo.c
-+cholmod_demo_LDADD = $(top_builddir)/libcholmod.la $(SUITESPARSECONFIG_LIBS) -lgfortran
++cholmod_demo_LDADD = $(top_builddir)/libcholmod.la $(SUITESPARSECONFIG_LIBS)
+
+cholmod_l_demo_SOURCES = cholmod_l_demo.c
-+cholmod_l_demo_LDADD = $(top_builddir)/libcholmod.la $(SUITESPARSECONFIG_LIBS) -lgfortran
++cholmod_l_demo_LDADD = $(top_builddir)/libcholmod.la $(SUITESPARSECONFIG_LIBS)
+
+cholmod_simple_SOURCES = cholmod_simple.c
-+cholmod_simple_LDADD = $(top_builddir)/libcholmod.la -lgfortran
++cholmod_simple_LDADD = $(top_builddir)/libcholmod.la
+
+check-local: $(check_PROGRAMS) $(dist_noinst_DATA)
+ ./cholmod_demo < $(srcdir)/Matrix/bcsstk01.tri
@@ -193,13 +190,14 @@ diff --git a/Doc/Makefile.am b/Doc/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Doc/Makefile.am
-@@ -0,0 +1,437 @@
+@@ -0,0 +1,442 @@
+EXTRA_DIST = \
-+ ChangeLog
++ ChangeLog \
++ License.txt
+
+dist_noinst_DATA = \
+ UserGuide.bib \
-+ UserGuide.tex \
++ CHOLMOD_UserGuide.tex \
+ header.tex \
+ footer.tex \
+ mheader.tex \
@@ -208,7 +206,7 @@ new file mode 100644
+ rule.awk
+
+dist_pdf_DATA = \
-+ UserGuide.pdf
++ CHOLMOD_UserGuide.pdf
+
+dist_noinst_SCRIPTS = \
+ getmproto \
@@ -614,8 +612,12 @@ new file mode 100644
+ $(PROTO_SUPERNODAL) \
+ $(PROTO_PARTITION)
+
-+UserGuide.pdf UserGuide.aux: $(PROTO)
-+.INTERMEDIATE: UserGuide.aux $(PROTO)
++CHOLMOD_UserGuide.pdf CHOLMOD_UserGuide.aux: $(PROTO)
++.INTERMEDIATE: CHOLMOD_UserGuide.aux $(PROTO)
++
++.INTERMEDIATE: CHOLMOD_UserGuide.bib
++CHOLMOD_UserGuide.bib: UserGuide.bib
++ $(LN_S) -f $< $@
+
+TEX = TEXINPUTS="$(srcdir):" pdflatex -interaction nonstopmode -file-line-error
+BIB = BIBINPUTS="$(srcdir):" bibtex
@@ -635,7 +637,8 @@ diff --git a/GPU/Makefile.am b/GPU/Makefile.am
new file mode 100644
--- /dev/null
+++ b/GPU/Makefile.am
-@@ -0,0 +1,25 @@
+@@ -0,0 +1,26 @@
++AM_CFLAGS = $(OPENMP_CFLAGS)
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
+
+GPUSRC = \
@@ -665,9 +668,8 @@ diff --git a/Include/Makefile.am b/Include/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Include/Makefile.am
-@@ -0,0 +1,45 @@
+@@ -0,0 +1,47 @@
+EXTRA_DIST = \
-+ License.txt \
+ README.txt
+
+# Automatically generated headers
@@ -697,7 +699,10 @@ new file mode 100644
+endif
+
+if MOD_PARTITION
-+pkginclude_HEADERS += cholmod_camd.h cholmod_partition.h
++pkginclude_HEADERS += cholmod_camd.h
++if MOD_PARTITION_METIS
++pkginclude_HEADERS += cholmod_partition.h
++endif
+endif
+
+if MOD_MATRIXOPS
@@ -716,7 +721,7 @@ rename from Include/cholmod_config.h
rename to Include/cholmod_config.h.in
--- a/Include/cholmod_config.h
+++ b/Include/cholmod_config.h.in
-@@ -54,17 +54,31 @@
+@@ -45,16 +45,28 @@
/* Use the compiler flag, or uncomment the definition(s), if you want to use
* one or more non-default installation options: */
@@ -728,7 +733,6 @@ rename to Include/cholmod_config.h.in
+/* Define to disable the Check module */
+#undef NCHECK
--#define NGPL
-#define NMATRIXOPS
-#define NMODIFY
-#define NSUPERNODAL
@@ -738,12 +742,9 @@ rename to Include/cholmod_config.h.in
+/* Define to disable the Partition module */
+#undef NCAMD
+
-+/* Define to disable metis support in the Partition module */
++/* Define to disable METIS support in the Partition module */
+#undef NPARTITION
-+/* Define to disable GPL-licensed modules */
-+#undef NGPL
-+
+/* Define to disable the MatrixOps module */
+#undef NMATRIXOPS
+
@@ -757,6 +758,16 @@ rename to Include/cholmod_config.h.in
#define NPRINT
#define LONGBLAS long
+@@ -62,6 +74,9 @@
+ #define NSUNPERF
+ */
+
++/* Define to disable GPL-licensed modules */
++#undef NGPL
++
+ /* The option disables the MatrixOps, Modify, and Supernodal modules. The
+ existence of this #define here, and its use in these 3 modules, does not
+ affect the license itself; see CHOLMOD/Doc/License.txt for your actual
diff --git a/MATLAB/Makefile.am b/MATLAB/Makefile.am
new file mode 100644
--- /dev/null
@@ -792,11 +803,10 @@ diff --git a/Makefile.am b/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Makefile.am
-@@ -0,0 +1,46 @@
+@@ -0,0 +1,47 @@
+SUBDIRS = Include Core
+EXTRA_DIST = README.txt
+
-+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = cholmod.pc
+
+lib_LTLIBRARIES = libcholmod.la
@@ -835,19 +845,20 @@ new file mode 100644
+libcholmod_la_LIBADD += $(top_builddir)/Supernodal/libsupernodal.la
+endif
+
-+#SUBDIRS += GPU
-+#libcholmod_la_LIBADD += $(top_builddir)/GPU/libgpu.la
++if MOD_GPU
++SUBDIRS += GPU
++libcholmod_la_LIBADD += $(top_builddir)/GPU/libgpu.la
++endif
+
+SUBDIRS += MATLAB Demo Doc
diff --git a/MatrixOps/Makefile.am b/MatrixOps/Makefile.am
new file mode 100644
--- /dev/null
+++ b/MatrixOps/Makefile.am
-@@ -0,0 +1,35 @@
+@@ -0,0 +1,34 @@
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
+
+EXTRA_DIST = \
-+ License.txt \
+ gpl.txt
+
+MATRIXOPSSRC = \
@@ -883,11 +894,10 @@ diff --git a/Modify/Makefile.am b/Modify/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Modify/Makefile.am
-@@ -0,0 +1,30 @@
+@@ -0,0 +1,29 @@
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
+
+EXTRA_DIST = \
-+ License.txt \
+ gpl.txt
+
+MODIFYSRC = \
@@ -918,17 +928,17 @@ diff --git a/Partition/Makefile.am b/Partition/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Partition/Makefile.am
-@@ -0,0 +1,28 @@
+@@ -0,0 +1,33 @@
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(METIS_CFLAGS) $(CCOLAMD_CFLAGS) $(CAMD_CFLAGS) $(SUITESPARSECONFIG_CFLAGS)
+
+EXTRA_DIST = \
-+ License.txt \
+ lesser.txt
+
+PARTITIONSRC = \
+ cholmod_camd.c \
+ cholmod_ccolamd.c \
-+ cholmod_csymamd.c \
++ cholmod_csymamd.c
++METISSRC = \
+ cholmod_metis.c \
+ cholmod_nesdis.c
+
@@ -945,72 +955,22 @@ new file mode 100644
+libpartitionl_la_LIBADD = $(METIS_LIBS) $(CCOLAMD_LIBS) $(CAMD_LIBS) $(SUITESPARSECONFIG_LIBS) -lm
+libpartitionl_la_CPPFLAGS = $(AM_CPPFLAGS) -DDLONG
+
++if MOD_PARTITION_METIS
++libpartitioni_la_SOURCES += $(METISSRC)
++libpartitionl_la_SOURCES += $(METISSRC)
++endif
++
+libpartition_la_SOURCES =
+libpartition_la_LIBADD = libpartitioni.la libpartitionl.la
-diff --git a/Partition/cholmod_camd.c b/Partition/cholmod_camd.c
---- a/Partition/cholmod_camd.c
-+++ b/Partition/cholmod_camd.c
-@@ -32,6 +32,7 @@
- * Supports any xtype (pattern, real, complex, or zomplex)
- */
-
-+#include "cholmod_config.h"
- #ifndef NCAMD
-
- #include "cholmod_internal.h"
-diff --git a/Partition/cholmod_ccolamd.c b/Partition/cholmod_ccolamd.c
---- a/Partition/cholmod_ccolamd.c
-+++ b/Partition/cholmod_ccolamd.c
-@@ -22,6 +22,7 @@
- * Supports any xtype (pattern, real, complex, or zomplex).
- */
-
-+#include "cholmod_config.h"
- #ifndef NCAMD
-
- #include "cholmod_internal.h"
-diff --git a/Partition/cholmod_csymamd.c b/Partition/cholmod_csymamd.c
---- a/Partition/cholmod_csymamd.c
-+++ b/Partition/cholmod_csymamd.c
-@@ -21,6 +21,7 @@
- * Supports any xtype (pattern, real, complex, or zomplex).
- */
-
-+#include "cholmod_config.h"
- #ifndef NCAMD
-
- #include "cholmod_internal.h"
-diff --git a/Partition/cholmod_metis.c b/Partition/cholmod_metis.c
---- a/Partition/cholmod_metis.c
-+++ b/Partition/cholmod_metis.c
-@@ -43,6 +43,7 @@
- * Supports any xtype (pattern, real, complex, or zomplex).
- */
-
-+#include "cholmod_config.h"
- #ifndef NPARTITION
-
- #include "cholmod_internal.h"
-diff --git a/Partition/cholmod_nesdis.c b/Partition/cholmod_nesdis.c
---- a/Partition/cholmod_nesdis.c
-+++ b/Partition/cholmod_nesdis.c
-@@ -38,6 +38,7 @@
- * Supports any xtype (pattern, real, complex, or zomplex).
- */
-
-+#include "cholmod_config.h"
- #ifndef NPARTITION
-
- #include "cholmod_internal.h"
diff --git a/Supernodal/Makefile.am b/Supernodal/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Supernodal/Makefile.am
@@ -0,0 +1,35 @@
++AM_CFLAGS = $(OPENMP_CFLAGS)
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
+
+EXTRA_DIST = \
-+ License.txt \
+ gpl.txt
+
+SUPERNODALSRC = \
@@ -1443,152 +1403,155 @@ diff --git a/configure.ac b/configure.ac
new file mode 100644
--- /dev/null
+++ b/configure.ac
-@@ -0,0 +1,216 @@
+@@ -0,0 +1,217 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.69])
-+AC_INIT([CHOLMOD],[3.0.6],[DrTimothyAldenDavis@gmail.com],[cholmod],[http://www.suitesparse.com/])
++AC_INIT([CHOLMOD],[3.0.11],[DrTimothyAldenDavis@gmail.com],[cholmod],[http://www.suitesparse.com/])
+AC_CONFIG_SRCDIR([Core/cholmod_common.c])
+AC_CONFIG_HEADERS([config.h Include/cholmod_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_PROG_AWK
++AC_OPENMP
+
-+AC_MSG_CHECKING([whether to build GPL-licensed modules])
-+AC_ARG_ENABLE([gpl-modules],
-+ [AS_HELP_STRING(
-+ [--disable-gpl-modules],
-+ [do not build GPL-licensed modules])],
-+ [mod_gpl=$enableval],
-+ [mod_gpl="yes"])
-+AC_MSG_RESULT([$mod_gpl])
-+
-+AC_MSG_CHECKING([whether to build mod-check])
+AC_ARG_ENABLE([mod-check],
+ [AS_HELP_STRING(
+ [--disable-mod-check],
+ [do not build the Check module])],
-+ [mod_check=$enableval],
-+ [mod_check="yes"])
-+AC_MSG_RESULT([$mod_check])
++ [],
++ [AS_VAR_SET([enable_mod_check], [yes])])
+
-+AC_MSG_CHECKING([whether to build mod-cholesky])
+AC_ARG_ENABLE([mod-cholesky],
+ [AS_HELP_STRING(
+ [--disable-mod-cholesky],
+ [do not build the Cholesky module])],
-+ [mod_cholesky=$enableval],
-+ [mod_cholesky="yes"])
-+AC_MSG_RESULT([$mod_cholesky])
++ [],
++ [AS_VAR_SET([enable_mod_cholesky], [yes])])
+
-+AC_MSG_CHECKING([whether to build mod-partition])
+AC_ARG_ENABLE([mod-partition],
+ [AS_HELP_STRING(
+ [--disable-mod-partition],
+ [do not build the Partition module])],
-+ [mod_partition=$enableval],
-+ [mod_partition="yes"])
-+AC_MSG_RESULT([$mod_partition])
++ [],
++ [AS_VAR_SET([enable_mod_partition], [yes])])
+
-+AC_MSG_CHECKING([whether to build mod-matrixops])
+AC_ARG_ENABLE([mod-matrixops],
+ [AS_HELP_STRING(
+ [--disable-mod-matrixops],
+ [do not build the MatrixOps module])],
-+ [mod_matrixops=$enableval],
-+ [mod_matrixops=$mod_gpl])
-+AC_MSG_RESULT([$mod_matrixops])
++ [],
++ [AS_VAR_SET([enable_mod_matrixops], [yes])])
+
-+AC_MSG_CHECKING([whether to build mod-modify])
+AC_ARG_ENABLE([mod-modify],
+ [AS_HELP_STRING(
+ [--disable-mod-modify],
+ [do not build the Modify module])],
-+ [mod_modify=$enableval],
-+ [mod_modify=$mod_gpl])
-+AC_MSG_RESULT([$mod_modify])
++ [],
++ [AS_VAR_SET([enable_mod_modify], [yes])])
+
-+AC_MSG_CHECKING([whether to build mod-supernodal])
+AC_ARG_ENABLE([mod-supernodal],
+ [AS_HELP_STRING(
+ [--disable-mod-supernodal],
+ [do not build the Supernodal module])],
-+ [mod_supernodal=$enableval],
-+ [mod_supernodal=$mod_gpl])
-+AC_MSG_RESULT([$mod_supernodal])
++ [],
++ [AS_VAR_SET([enable_mod_supernodal], [yes])])
++
++AC_ARG_ENABLE([gpl-modules],
++ [AS_HELP_STRING(
++ [--disable-gpl-modules],
++ [do not build GPL-licensed modules])],
++ [],
++ [AS_VAR_SET([enable_gpl_modules], [yes])])
+
-+AC_MSG_CHECKING([whether to use timing routines])
+AC_ARG_ENABLE([timing],
+ [AS_HELP_STRING(
+ [--disable-timing],
+ [do not use timing routines])],
-+ [timing=$enableval],
-+ [timing="yes"])
-+AC_MSG_RESULT([$timing])
++ [],
++ [AS_VAR_SET([enable_timing], [yes])])
+
-+LIBS_SAVED=$LIBS
++AS_VAR_SET([LIBS_SAVED], [$LIBS])
+
+# Checks for libraries.
+AC_CHECK_LIB([m], [sqrt])
+
-+PKG_PROG_PKG_CONFIG
-+PKG_CHECK_MODULES([SUITESPARSECONFIG],[suitesparseconfig],
-+ [],
-+ [AC_MSG_ERROR([cannot find suitesparseconfig])])
-+CHOLMOD_REQUIRES="suitesparseconfig"
++PKG_CHECK_MODULES([SUITESPARSECONFIG], [suitesparseconfig])
++AS_VAR_SET([CHOLMOD_REQUIRES], ["suitesparseconfig"])
+
-+if test "x$mod_cholesky" = "xyes"; then
-+ PKG_CHECK_MODULES([AMD],[amd],
-+ [],
-+ [AC_MSG_ERROR([cannot find amd (required by mod-cholesky)])])
-+ CHOLMOD_REQUIRES="$CHOLMOD_REQUIRES amd"
++AS_IF([test "x$enable_gpl_modules" != "xyes"], [
++ AC_DEFINE([NGPL], [], [Define to disable GPL-licensed modules])
++ AS_VAR_SET([enable_mod_matrixops], [no])
++ AS_VAR_SET([enable_mod_modify], [no])
++ AS_VAR_SET([enable_mod_supernodal], [no])
++])
+
-+ PKG_CHECK_MODULES([COLAMD],[colamd],
-+ [],
-+ [AC_MSG_ERROR([cannot find colamd (required by mod-cholesky)])])
-+ CHOLMOD_REQUIRES="$CHOLMOD_REQUIRES colamd"
-+fi
++AS_IF([test "x$enable_mod_check" != "xyes"], [
++ AC_DEFINE([NCHECK], [], [Define to disable the Check module])
++])
+
-+if test "x$mod_partition" = "xyes"; then
-+ PKG_CHECK_MODULES([CAMD],[camd],
-+ [],
-+ [AC_MSG_ERROR([cannot find camd (required by mod-partition)])])
-+ CHOLMOD_REQUIRES="$CHOLMOD_REQUIRES camd"
++AS_IF([test "x$enable_mod_cholesky" != "xyes"], [
++ AC_DEFINE([NCHOLESKY], [], [Define to disable the Cholesky module])
++], [
++ PKG_CHECK_MODULES([AMD], [amd],
++ [AS_VAR_APPEND([CHOLMOD_REQUIRES], [" amd"])],
++ [AC_MSG_ERROR([$AMD_PKG_ERRORS (required by mod-cholesky)])])
+
-+ PKG_CHECK_MODULES([CCOLAMD],[ccolamd],
-+ [],
-+ [AC_MSG_ERROR([cannot find ccolamd (required by mod-partition)])])
-+ CHOLMOD_REQUIRES="$CHOLMOD_REQUIRES ccolamd"
-+
-+ PKG_CHECK_MODULES([METIS],[metis],
-+ [metis="yes"],
-+ [metis="no"])
-+ if test "x$metis" = "xyes"; then
-+ CHOLMOD_REQUIRES="$CHOLMOD_REQUIRES metis"
-+ else
-+ AC_MSG_WARN([cannot find metis (used by mod-partition), disabling some functionality])
-+ fi
-+fi
++ PKG_CHECK_MODULES([COLAMD], [colamd],
++ [AS_VAR_APPEND([CHOLMOD_REQUIRES], [" colamd"])],
++ [AC_MSG_ERROR([$COLAMD_PKG_ERRORS (required by mod-cholesky)])])
++])
++
++AS_IF([test "x$enable_mod_partition" != "xyes"], [
++ AC_DEFINE([NCAMD], [], [Define to disable the Partition module])
++], [
++ PKG_CHECK_MODULES([CAMD], [camd],
++ [AS_VAR_APPEND([CHOLMOD_REQUIRES], [" camd"])],
++ [AC_MSG_ERROR([$CAMD_PKG_ERRORS (required by mod-partition)])])
++
++ PKG_CHECK_MODULES([CCOLAMD], [ccolamd],
++ [AS_VAR_APPEND([CHOLMOD_REQUIRES], [" ccolamd"])],
++ [AC_MSG_ERROR([$CCOLAMD_PKG_ERRORS (required by mod-partition)])])
++
++ PKG_CHECK_MODULES([METIS], [metis >= 5.1.0],
++ [AS_VAR_SET([have_metis], [yes])
++ AS_VAR_APPEND([CHOLMOD_REQUIRES], [" metis >= 5.1.0"])],
++ [AS_VAR_SET([have_metis], [no])
++ AC_MSG_WARN([$METIS_PKG_ERRORS (used by mod-partition), disabling some functionality])])
++])
++
++AS_IF([test "x$have_metis" != "xyes"], [
++ AC_DEFINE([NPARTITION], [], [Define to disable METIS support in the Partition module])
++])
++
++AS_IF([test "x$enable_mod_matrixops" != "xyes"], [
++ AC_DEFINE([NMATRIXOPS], [], [Define to disable the MatrixOps module])
++])
+
-+if test "x$mod_supernodal" = "xyes"; then
++AS_IF([test "x$enable_mod_modify" != "xyes"], [
++ AC_DEFINE([NMODIFY], [], [Define to disable the Modify module])
++])
++
++AS_IF([test "x$enable_mod_supernodal" != "xyes"], [
++ AC_DEFINE([NSUPERNODAL], [], [Define to disable the Supernodal module])
++], [
+ sinclude([ax_blas.m4])
-+ AX_BLAS
-+ if test "x$ax_blas_ok" != "xyes"; then
-+ AC_MSG_ERROR([cannot find blas (required by mod-supernodal)])
-+ fi
++ AX_BLAS(
++ [],
++ [AC_MSG_ERROR([cannot find BLAS (required by mod-supernodal)])])
+
+ sinclude([ax_lapack.m4])
-+ AX_LAPACK
-+ if test "x$ax_lapack_ok" != "xyes"; then
-+ AC_MSG_ERROR([cannot find lapack (required by mod-supernodal)])
-+ fi
-+fi
++ AX_LAPACK(
++ [],
++ [AC_MSG_ERROR([cannot find LAPACK (required by mod-supernodal)])])
++])
+
+# Checks for header files.
+AC_CHECK_HEADERS([float.h limits.h stddef.h stdlib.h string.h])
@@ -1600,50 +1563,47 @@ new file mode 100644
+AC_FUNC_MALLOC
+AC_CHECK_FUNCS([sqrt])
+
-+LIBS=$LIBS_SAVED
++AS_VAR_SET([LIBS], [$LIBS_SAVED])
+
-+if test "x$mod_check" != "xyes"; then
-+ AC_DEFINE([NCHECK], [], [Define to disable the Check module])
-+fi
++AC_MSG_CHECKING([whether to build mod-check])
++AC_MSG_RESULT([$enable_mod_check])
++AM_CONDITIONAL([MOD_CHECK], [test "x$enable_mod_check" = "xyes"])
+
-+if test "x$mod_cholesky" != "xyes"; then
-+ AC_DEFINE([NCHOLESKY], [], [Define to disable the Cholesky module])
-+fi
++AC_MSG_CHECKING([whether to build mod-cholesky])
++AC_MSG_RESULT([$enable_mod_cholesky])
++AM_CONDITIONAL([MOD_CHOLESKY], [test "x$enable_mod_cholesky" = "xyes"])
+
-+if test "x$mod_partition" != "xyes"; then
-+ AC_DEFINE([NCAMD], [], [Define to disable the Partition module])
-+fi
++AC_MSG_CHECKING([whether to build mod-partition])
++AC_MSG_RESULT([$enable_mod_partition])
++AM_CONDITIONAL([MOD_PARTITION], [test "x$enable_mod_partition" = "xyes"])
+
-+if test "x$metis" != "xyes"; then
-+ AC_DEFINE([NPARTITION], [], [Define to disable metis support in the Partition module])
-+fi
++AC_MSG_CHECKING([whether to build mod-partition with METIS])
++AC_MSG_RESULT([$have_metis])
++AM_CONDITIONAL([MOD_PARTITION_METIS], [test "x$have_metis" = "xyes"])
+
-+if test "x$mod_gpl" != "xyes"; then
-+ AC_DEFINE([NGPL], [], [Define to disable GPL-licensed modules])
-+fi
++AC_MSG_CHECKING([whether to build mod-matrixops])
++AC_MSG_RESULT([$enable_mod_matrixops])
++AM_CONDITIONAL([MOD_MATRIXOPS], [test "x$enable_mod_matrixops" = "xyes"])
+
-+if test "x$mod_matrixops" != "xyes"; then
-+ AC_DEFINE([NMATRIXOPS], [], [Define to disable the MatrixOps module])
-+fi
++AC_MSG_CHECKING([whether to build mod-modify])
++AC_MSG_RESULT([$enable_mod_modify])
++AM_CONDITIONAL([MOD_MODIFY], [test "x$enable_mod_modify" = "xyes"])
+
-+if test "x$mod_modify" != "xyes"; then
-+ AC_DEFINE([NMODIFY], [], [Define to disable the Modify module])
-+fi
++AC_MSG_CHECKING([whether to build mod-supernodal])
++AC_MSG_RESULT([$enable_mod_supernodal])
++AM_CONDITIONAL([MOD_SUPERNODAL], [test "x$enable_mod_supernodal" = "xyes"])
+
-+if test "x$mod_supernodal" != "xyes"; then
-+ AC_DEFINE([NSUPERNODAL], [], [Define to disable the Supernodal module])
-+fi
++AC_MSG_CHECKING([whether to build mod-gpu])
++AC_MSG_RESULT([no])
++AM_CONDITIONAL([MOD_GPU], [false])
+
-+AM_CONDITIONAL([MOD_CHECK], [test "x$mod_check" = "xyes"])
-+AM_CONDITIONAL([MOD_CHOLESKY], [test "x$mod_cholesky" = "xyes"])
-+AM_CONDITIONAL([MOD_PARTITION], [test "x$mod_partition" = "xyes"])
-+AM_CONDITIONAL([MOD_MATRIXOPS], [test "x$mod_matrixops" = "xyes"])
-+AM_CONDITIONAL([MOD_MODIFY], [test "x$mod_modify" = "xyes"])
-+AM_CONDITIONAL([MOD_SUPERNODAL], [test "x$mod_supernodal" = "xyes"])
-+AM_CONDITIONAL([TIMING], [test "x$timing" = "xyes"])
++AC_MSG_CHECKING([whether to use timing routines])
++AC_MSG_RESULT([$enable_timing])
++AM_CONDITIONAL([TIMING], [test "x$enable_timing" = "xyes"])
+
+AC_SUBST([CHOLMOD_REQUIRES])
+
++PKG_INSTALLDIR
+AC_CONFIG_FILES([
+ cholmod.pc
+ Makefile
@@ -1658,5 +1618,6 @@ new file mode 100644
+ MatrixOps/Makefile
+ Modify/Makefile
+ Partition/Makefile
-+ Supernodal/Makefile])
++ Supernodal/Makefile
++])
+AC_OUTPUT