academic/cholmod: Updated for version 3.0.11.

Signed-off-by: Kyle Guinn <elyk03@gmail.com>
This commit is contained in:
Kyle Guinn 2016-11-19 14:27:57 -06:00 committed by David Spencer
parent 0fb73f8315
commit 5d13a1088d
6 changed files with 220 additions and 252 deletions

View file

@ -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.

View file

@ -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)

View file

@ -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

View file

@ -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"

View file

@ -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)

View file

@ -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([COLAMD], [colamd],
+ [AS_VAR_APPEND([CHOLMOD_REQUIRES], [" colamd"])],
+ [AC_MSG_ERROR([$COLAMD_PKG_ERRORS (required by mod-cholesky)])])
+])
+
+ 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
+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)])])
+
+if test "x$mod_supernodal" = "xyes"; then
+ 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])
+])
+
+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