summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--academic/cholmod/cholmod.SlackBuild14
-rw-r--r--academic/cholmod/cholmod.info4
-rw-r--r--academic/cholmod/patches/autoconfiscate.diff (renamed from academic/cholmod/patches/autotoolize.diff)1325
3 files changed, 1027 insertions, 316 deletions
diff --git a/academic/cholmod/cholmod.SlackBuild b/academic/cholmod/cholmod.SlackBuild
index b3f38eb486..0c8f2a834b 100644
--- a/academic/cholmod/cholmod.SlackBuild
+++ b/academic/cholmod/cholmod.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for CHOLMOD
-# Copyright 2013-2016 Kyle Guinn <elyk03@gmail.com>, USA
+# Copyright 2013-2017 Kyle Guinn <elyk03@gmail.com>, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,8 +26,8 @@ PRGNAM=cholmod
SRCNAM=SuiteSparse
SUBDIR=CHOLMOD
VERSION=${VERSION:-3.0.11}
-SRCVER=${SRCVER:-4.5.3}
-BUILD=${BUILD:-1}
+SRCVER=${SRCVER:-4.5.5}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@@ -40,7 +40,7 @@ fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$PRGNAM
+PKG=$TMP/package-$PRGNAM-$VERSION
OUTPUT=${OUTPUT:-/tmp}
DOCS="README.txt Doc/ChangeLog Doc/License.txt Core/lesser.txt Modify/gpl.txt"
@@ -76,8 +76,8 @@ cd $SRCNAM/$SUBDIR
chown -R root:root .
chmod -R u+w,go-w,a+rX-st .
-patch -p1 < $CWD/patches/autotoolize.diff
-patch -p2 < $CWD/patches/atlas-lib-rename.diff
+patch -p1 < $CWD/patches/autoconfiscate.diff
+patch -p1 < $CWD/patches/atlas-lib-rename.diff
autoreconf -vif
# Avoid rebuilding the docs.
@@ -91,8 +91,6 @@ touch Doc/CHOLMOD_UserGuide.pdf
--mandir=/usr/man \
--infodir=/usr/info \
--docdir=/usr/doc/$PRGNAM-$VERSION \
- --enable-shared \
- --disable-static \
--disable-dependency-tracking \
--build=$ARCH-slackware-linux \
CFLAGS="$SLKCFLAGS" \
diff --git a/academic/cholmod/cholmod.info b/academic/cholmod/cholmod.info
index de2d55fc51..1a9c779f7b 100644
--- a/academic/cholmod/cholmod.info
+++ b/academic/cholmod/cholmod.info
@@ -1,8 +1,8 @@
PRGNAM="cholmod"
VERSION="3.0.11"
HOMEPAGE="http://faculty.cse.tamu.edu/davis/suitesparse.html"
-DOWNLOAD="http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.5.3.tar.gz"
-MD5SUM="8ec57324585df3c6483ad7f556afccbd"
+DOWNLOAD="http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-4.5.5.tar.gz"
+MD5SUM="0a5b38af0016f009409a9606d2f1b555"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="blas lapack suitesparseconfig amd camd colamd ccolamd"
diff --git a/academic/cholmod/patches/autotoolize.diff b/academic/cholmod/patches/autoconfiscate.diff
index 4b2828cd27..bded898b4a 100644
--- a/academic/cholmod/patches/autotoolize.diff
+++ b/academic/cholmod/patches/autoconfiscate.diff
@@ -2,7 +2,7 @@ diff --git a/Check/Makefile.am b/Check/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Check/Makefile.am
-@@ -0,0 +1,25 @@
+@@ -0,0 +1,27 @@
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
+
+EXTRA_DIST = \
@@ -19,12 +19,14 @@ new file mode 100644
+ libcheck.la
+
+libchecki_la_SOURCES = $(CHECKSRC)
-+libchecki_la_LIBADD = $(SUITESPARSECONFIG_LIBS)
-+libchecki_la_CPPFLAGS = $(AM_CPPFLAGS)
++libchecki_la_LIBADD = $(SUITESPARSECONFIG_LIBS) $(CODE_COVERAGE_LIBS)
++libchecki_la_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS)
++libchecki_la_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
+
+libcheckl_la_SOURCES = $(CHECKSRC)
-+libcheckl_la_LIBADD = $(SUITESPARSECONFIG_LIBS)
-+libcheckl_la_CPPFLAGS = $(AM_CPPFLAGS) -DDLONG
++libcheckl_la_LIBADD = $(SUITESPARSECONFIG_LIBS) $(CODE_COVERAGE_LIBS)
++libcheckl_la_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS) -DDLONG
++libcheckl_la_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
+
+libcheck_la_SOURCES =
+libcheck_la_LIBADD = libchecki.la libcheckl.la
@@ -32,7 +34,7 @@ diff --git a/Cholesky/Makefile.am b/Cholesky/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Cholesky/Makefile.am
-@@ -0,0 +1,40 @@
+@@ -0,0 +1,42 @@
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(COLAMD_CFLAGS) $(AMD_CFLAGS) $(SUITESPARSECONFIG_CFLAGS)
+
+EXTRA_DIST = \
@@ -64,12 +66,14 @@ new file mode 100644
+ libcholesky.la
+
+libcholeskyi_la_SOURCES = $(CHOLESKYSRC)
-+libcholeskyi_la_LIBADD = $(COLAMD_LIBS) $(AMD_LIBS) $(SUITESPARSECONFIG_LIBS) -lm
-+libcholeskyi_la_CPPFLAGS = $(AM_CPPFLAGS)
++libcholeskyi_la_LIBADD = $(COLAMD_LIBS) $(AMD_LIBS) $(SUITESPARSECONFIG_LIBS) -lm $(CODE_COVERAGE_LIBS)
++libcholeskyi_la_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS)
++libcholeskyi_la_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
+
+libcholeskyl_la_SOURCES = $(CHOLESKYSRC)
-+libcholeskyl_la_LIBADD = $(COLAMD_LIBS) $(AMD_LIBS) $(SUITESPARSECONFIG_LIBS) -lm
-+libcholeskyl_la_CPPFLAGS = $(AM_CPPFLAGS) -DDLONG
++libcholeskyl_la_LIBADD = $(COLAMD_LIBS) $(AMD_LIBS) $(SUITESPARSECONFIG_LIBS) -lm $(CODE_COVERAGE_LIBS)
++libcholeskyl_la_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS) -DDLONG
++libcholeskyl_la_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
+
+libcholesky_la_SOURCES =
+libcholesky_la_LIBADD = libcholeskyi.la libcholeskyl.la
@@ -77,7 +81,7 @@ diff --git a/Core/Makefile.am b/Core/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Core/Makefile.am
-@@ -0,0 +1,43 @@
+@@ -0,0 +1,45 @@
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
+
+EXTRA_DIST = \
@@ -112,12 +116,14 @@ new file mode 100644
+ libcore.la
+
+libcorei_la_SOURCES = $(CORESRC)
-+libcorei_la_LIBADD = $(SUITESPARSECONFIG_LIBS) -lm
-+libcorei_la_CPPFLAGS = $(AM_CPPFLAGS)
++libcorei_la_LIBADD = $(SUITESPARSECONFIG_LIBS) -lm $(CODE_COVERAGE_LIBS)
++libcorei_la_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS)
++libcorei_la_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
+
+libcorel_la_SOURCES = $(CORESRC)
-+libcorel_la_LIBADD = $(SUITESPARSECONFIG_LIBS) -lm
-+libcorel_la_CPPFLAGS = $(AM_CPPFLAGS) -DDLONG
++libcorel_la_LIBADD = $(SUITESPARSECONFIG_LIBS) -lm $(CODE_COVERAGE_LIBS)
++libcorel_la_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS) -DDLONG
++libcorel_la_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
+
+libcore_la_SOURCES =
+libcore_la_LIBADD = libcorei.la libcorel.la
@@ -125,21 +131,34 @@ diff --git a/Demo/Makefile.am b/Demo/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Demo/Makefile.am
-@@ -0,0 +1,60 @@
+@@ -0,0 +1,142 @@
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
+
+EXTRA_DIST = \
+ README.txt \
+ gpl.txt
+
-+dist_noinst_HEADERS = \
-+ cholmod_demo.h
-+
+dist_noinst_DATA = \
++ Matrix/0.tri \
+ Matrix/bcsstk01.tri \
-+ Matrix/lp_afiro.tri \
++ Matrix/bcsstk02.tri \
++ Matrix/c.mtx \
++ Matrix/c.tri \
+ Matrix/can___24.mtx \
-+ Matrix/c.tri
++ Matrix/d.tri \
++ Matrix/empty.tri \
++ Matrix/lp_afiro.tri \
++ Matrix/mangle1.mtx \
++ Matrix/mangle2.mtx \
++ Matrix/mangle3.mtx \
++ Matrix/mangle4.mtx \
++ Matrix/mangle5.tri \
++ Matrix/mangle6.tri \
++ Matrix/mangle7.tri \
++ Matrix/mangle8.tri \
++ Matrix/one.tri \
++ Matrix/pts5ldd03.mtx \
++ Matrix/up.tri
+
+noinst_PROGRAMS = \
+ reade \
@@ -150,42 +169,111 @@ new file mode 100644
+readhb_SOURCES = readhb.f
+readhb2_SOURCES = readhb2.f
+
-+if MOD_CHOLESKY
+if MOD_CHECK
-+if MOD_MATRIXOPS
++if MOD_CHOLESKY
+
+check_PROGRAMS = \
+ cholmod_demo \
+ cholmod_l_demo \
+ cholmod_simple
+
-+cholmod_demo_SOURCES = cholmod_demo.c
++cholmod_demo_SOURCES = cholmod_demo.c cholmod_demo.h
+cholmod_demo_LDADD = $(top_builddir)/libcholmod.la $(SUITESPARSECONFIG_LIBS)
+
-+cholmod_l_demo_SOURCES = cholmod_l_demo.c
++cholmod_l_demo_SOURCES = cholmod_l_demo.c cholmod_demo.h
+cholmod_l_demo_LDADD = $(top_builddir)/libcholmod.la $(SUITESPARSECONFIG_LIBS)
++cholmod_l_demo_CPPFLAGS = $(AM_CPPFLAGS) -DDLONG
+
+cholmod_simple_SOURCES = cholmod_simple.c
+cholmod_simple_LDADD = $(top_builddir)/libcholmod.la
+
-+check-local: $(check_PROGRAMS) $(dist_noinst_DATA)
-+ ./cholmod_demo < $(srcdir)/Matrix/bcsstk01.tri
++if !CODE_COVERAGE_ENABLED
++MATRICES = \
++ $(srcdir)/Matrix/bcsstk01.tri \
++ $(srcdir)/Matrix/c.tri \
++ $(srcdir)/Matrix/can___24.mtx \
++ $(srcdir)/Matrix/lp_afiro.tri
++
++check-local: $(check_PROGRAMS) $(MATRICES)
++ ./cholmod_demo < $(srcdir)/Matrix/bcsstk01.tri
+ ./cholmod_l_demo < $(srcdir)/Matrix/bcsstk01.tri
-+ ./cholmod_demo < $(srcdir)/Matrix/lp_afiro.tri
++ ./cholmod_demo < $(srcdir)/Matrix/lp_afiro.tri
+ ./cholmod_l_demo < $(srcdir)/Matrix/lp_afiro.tri
-+ ./cholmod_demo < $(srcdir)/Matrix/can___24.mtx
++ ./cholmod_demo < $(srcdir)/Matrix/can___24.mtx
+ ./cholmod_l_demo < $(srcdir)/Matrix/can___24.mtx
-+ ./cholmod_demo < $(srcdir)/Matrix/c.tri
++ ./cholmod_demo < $(srcdir)/Matrix/c.tri
+ ./cholmod_l_demo < $(srcdir)/Matrix/c.tri
+ ./cholmod_simple < $(srcdir)/Matrix/c.tri
+ ./cholmod_simple < $(srcdir)/Matrix/can___24.mtx
+ ./cholmod_simple < $(srcdir)/Matrix/bcsstk01.tri
+
++else
++MATRICES = \
++ $(srcdir)/Matrix/0.tri \
++ $(srcdir)/Matrix/bcsstk01.tri \
++ $(srcdir)/Matrix/bcsstk02.tri \
++ $(srcdir)/Matrix/c.mtx \
++ $(srcdir)/Matrix/c.tri \
++ $(srcdir)/Matrix/can___24.mtx \
++ $(srcdir)/Matrix/d.tri \
++ $(srcdir)/Matrix/lp_afiro.tri \
++ $(srcdir)/Matrix/mangle1.mtx \
++ $(srcdir)/Matrix/mangle2.mtx \
++ $(srcdir)/Matrix/mangle3.mtx \
++ $(srcdir)/Matrix/mangle4.mtx \
++ $(srcdir)/Matrix/pts5ldd03.mtx \
++ $(srcdir)/Matrix/up.tri \
++ $(top_srcdir)/Tcov/Matrix/3_2 \
++ $(top_srcdir)/Tcov/Matrix/c10 \
++ $(top_srcdir)/Tcov/Matrix/c5lo
++
++check-local: $(check_PROGRAMS) $(MATRICES)
++ ./cholmod_demo $(srcdir)/Matrix/bcsstk01.tri > demo_k1.out
++ ./cholmod_demo $(srcdir)/Matrix/bcsstk02.tri > demo_k2.out
++ ./cholmod_demo < $(srcdir)/Matrix/lp_afiro.tri > demo_afiro.out
++ ./cholmod_demo < $(srcdir)/Matrix/can___24.mtx > demo_can24.out
++ ./cholmod_demo < $(srcdir)/Matrix/c.tri > demo_c.out
++ ./cholmod_demo < $(srcdir)/Matrix/d.tri > demo_d.out
++ ./cholmod_demo < $(srcdir)/Matrix/up.tri > demo_up.out
++ ./cholmod_demo < $(srcdir)/Matrix/c.mtx > demo_c_mtx.out
++ ./cholmod_demo < $(srcdir)/Matrix/0.tri > demo_0.out
++ ./cholmod_demo < $(top_srcdir)/Tcov/Matrix/3_2 > demo_3_2.out
++ ./cholmod_demo < $(top_srcdir)/Tcov/Matrix/c5lo > demo_c5lo.out
++ ./cholmod_demo < $(top_srcdir)/Tcov/Matrix/c10 > demo_c10.out
++ ./cholmod_demo no_such_file > demo_no_such_file.out
++ ./cholmod_demo $(srcdir)/Matrix/mangle1.mtx > demo_mangle1.out
++ ./cholmod_demo $(srcdir)/Matrix/mangle2.mtx > demo_mangle2.out
++ ./cholmod_demo $(srcdir)/Matrix/mangle3.mtx > demo_mangle3.out
++ ./cholmod_demo $(srcdir)/Matrix/mangle4.mtx > demo_mangle4.out
++ ./cholmod_demo $(srcdir)/Matrix/pts5ldd03.mtx > demo_pts5ldd03.out
++ ./cholmod_l_demo $(srcdir)/Matrix/bcsstk01.tri > ldemo_k1.out
++ ./cholmod_l_demo $(srcdir)/Matrix/bcsstk02.tri > ldemo_k2.out
++ ./cholmod_l_demo < $(srcdir)/Matrix/lp_afiro.tri > ldemo_afiro.out
++ ./cholmod_l_demo < $(srcdir)/Matrix/can___24.mtx > ldemo_can24.out
++ ./cholmod_l_demo < $(srcdir)/Matrix/c.tri > ldemo_c.out
++ ./cholmod_l_demo $(srcdir)/Matrix/c.tri 1 > ldemo_c_zomplex.out
++ ./cholmod_l_demo < $(srcdir)/Matrix/d.tri > ldemo_d.out
++ ./cholmod_l_demo $(srcdir)/Matrix/d.tri 1 > ldemo_d.out
++ ./cholmod_l_demo < $(srcdir)/Matrix/up.tri > ldemo_up.out
++ ./cholmod_l_demo $(srcdir)/Matrix/up.tri 1 > ldemo_up_zomplex.out
++ ./cholmod_l_demo < $(srcdir)/Matrix/c.mtx > ldemo_c_mtx.out
++ ./cholmod_l_demo $(srcdir)/Matrix/c.mtx 1 > ldemo_c_mtx_zomplex.out
++ ./cholmod_l_demo < $(srcdir)/Matrix/0.tri > ldemo_0.out
++ ./cholmod_l_demo < $(top_srcdir)/Tcov/Matrix/3_2 > ldemo_3_2.out
++ ./cholmod_l_demo < $(top_srcdir)/Tcov/Matrix/c5lo > ldemo_c5lo.out
++ ./cholmod_l_demo < $(top_srcdir)/Tcov/Matrix/c10 > ldemo_c10.out
++ ./cholmod_l_demo no_such_file > ldemo_no_such_file.out
++ ./cholmod_l_demo $(srcdir)/Matrix/mangle1.mtx > ldemo_mangle1.out
++ ./cholmod_l_demo $(srcdir)/Matrix/mangle2.mtx > ldemo_mangle2.out
++ ./cholmod_l_demo $(srcdir)/Matrix/mangle3.mtx > ldemo_mangle3.out
++ ./cholmod_l_demo $(srcdir)/Matrix/mangle4.mtx > ldemo_mangle4.out
++ ./cholmod_l_demo $(srcdir)/Matrix/pts5ldd03.mtx > ldemo_pts5ldd03.out
+endif
++
+endif
+endif
+
-+CLEANFILES = timelog.m
++CLEANFILES = timelog.m *.out
diff --git a/Doc/Makefile.am b/Doc/Makefile.am
new file mode 100644
--- /dev/null
@@ -637,7 +725,7 @@ diff --git a/GPU/Makefile.am b/GPU/Makefile.am
new file mode 100644
--- /dev/null
+++ b/GPU/Makefile.am
-@@ -0,0 +1,26 @@
+@@ -0,0 +1,30 @@
+AM_CFLAGS = $(OPENMP_CFLAGS)
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
+
@@ -657,10 +745,14 @@ new file mode 100644
+ libgpu.la
+
+libgpui_la_SOURCES = $(GPUSRC)
-+libgpui_la_CPPFLAGS = $(AM_CPPFLAGS)
++libgpui_la_LIBADD = $(CODE_COVERAGE_LIBS)
++libgpui_la_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS)
++libgpui_la_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
+
+libgpul_la_SOURCES = $(GPUSRC)
-+libgpul_la_CPPFLAGS = $(AM_CPPFLAGS) -DDLONG
++libgpul_la_LIBADD = $(CODE_COVERAGE_LIBS)
++libgpul_la_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS) -DDLONG
++libgpul_la_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
+
+libgpu_la_SOURCES =
+libgpu_la_LIBADD = libgpui.la libgpul.la
@@ -803,7 +895,9 @@ diff --git a/Makefile.am b/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Makefile.am
-@@ -0,0 +1,47 @@
+@@ -0,0 +1,52 @@
++ACLOCAL_AMFLAGS = -I m4
++
+SUBDIRS = Include Core
+EXTRA_DIST = README.txt
+
@@ -850,12 +944,15 @@ new file mode 100644
+libcholmod_la_LIBADD += $(top_builddir)/GPU/libgpu.la
+endif
+
-+SUBDIRS += MATLAB Demo Doc
++SUBDIRS += . MATLAB Demo Tcov Doc
++
++CODE_COVERAGE_BRANCH_COVERAGE = 1
++@CODE_COVERAGE_RULES@
diff --git a/MatrixOps/Makefile.am b/MatrixOps/Makefile.am
new file mode 100644
--- /dev/null
+++ b/MatrixOps/Makefile.am
-@@ -0,0 +1,34 @@
+@@ -0,0 +1,36 @@
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
+
+EXTRA_DIST = \
@@ -881,12 +978,14 @@ new file mode 100644
+ libmatrixops.la
+
+libmatrixopsi_la_SOURCES = $(MATRIXOPSSRC)
-+libmatrixopsi_la_LIBADD = $(SUITESPARSECONFIG_LIBS) -lm
-+libmatrixopsi_la_CPPFLAGS = $(AM_CPPFLAGS)
++libmatrixopsi_la_LIBADD = $(SUITESPARSECONFIG_LIBS) -lm $(CODE_COVERAGE_LIBS)
++libmatrixopsi_la_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS)
++libmatrixopsi_la_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
+
+libmatrixopsl_la_SOURCES = $(MATRIXOPSSRC)
-+libmatrixopsl_la_LIBADD = $(SUITESPARSECONFIG_LIBS) -lm
-+libmatrixopsl_la_CPPFLAGS = $(AM_CPPFLAGS) -DDLONG
++libmatrixopsl_la_LIBADD = $(SUITESPARSECONFIG_LIBS) -lm $(CODE_COVERAGE_LIBS)
++libmatrixopsl_la_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS) -DDLONG
++libmatrixopsl_la_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
+
+libmatrixops_la_SOURCES =
+libmatrixops_la_LIBADD = libmatrixopsi.la libmatrixopsl.la
@@ -894,7 +993,7 @@ diff --git a/Modify/Makefile.am b/Modify/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Modify/Makefile.am
-@@ -0,0 +1,29 @@
+@@ -0,0 +1,31 @@
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
+
+EXTRA_DIST = \
@@ -915,12 +1014,14 @@ new file mode 100644
+ libmodify.la
+
+libmodifyi_la_SOURCES = $(MODIFYSRC)
-+libmodifyi_la_LIBADD = $(SUITESPARSECONFIG_LIBS) -lm
-+libmodifyi_la_CPPFLAGS = $(AM_CPPFLAGS)
++libmodifyi_la_LIBADD = $(SUITESPARSECONFIG_LIBS) -lm $(CODE_COVERAGE_LIBS)
++libmodifyi_la_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS)
++libmodifyi_la_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
+
+libmodifyl_la_SOURCES = $(MODIFYSRC)
-+libmodifyl_la_LIBADD = $(SUITESPARSECONFIG_LIBS) -lm
-+libmodifyl_la_CPPFLAGS = $(AM_CPPFLAGS) -DDLONG
++libmodifyl_la_LIBADD = $(SUITESPARSECONFIG_LIBS) -lm $(CODE_COVERAGE_LIBS)
++libmodifyl_la_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS) -DDLONG
++libmodifyl_la_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
+
+libmodify_la_SOURCES =
+libmodify_la_LIBADD = libmodifyi.la libmodifyl.la
@@ -928,7 +1029,7 @@ diff --git a/Partition/Makefile.am b/Partition/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Partition/Makefile.am
-@@ -0,0 +1,33 @@
+@@ -0,0 +1,35 @@
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(METIS_CFLAGS) $(CCOLAMD_CFLAGS) $(CAMD_CFLAGS) $(SUITESPARSECONFIG_CFLAGS)
+
+EXTRA_DIST = \
@@ -948,12 +1049,14 @@ new file mode 100644
+ libpartition.la
+
+libpartitioni_la_SOURCES = $(PARTITIONSRC)
-+libpartitioni_la_LIBADD = $(METIS_LIBS) $(CCOLAMD_LIBS) $(CAMD_LIBS) $(SUITESPARSECONFIG_LIBS) -lm
-+libpartitioni_la_CPPFLAGS = $(AM_CPPFLAGS)
++libpartitioni_la_LIBADD = $(METIS_LIBS) $(CCOLAMD_LIBS) $(CAMD_LIBS) $(SUITESPARSECONFIG_LIBS) -lm $(CODE_COVERAGE_LIBS)
++libpartitioni_la_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS)
++libpartitioni_la_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
+
+libpartitionl_la_SOURCES = $(PARTITIONSRC)
-+libpartitionl_la_LIBADD = $(METIS_LIBS) $(CCOLAMD_LIBS) $(CAMD_LIBS) $(SUITESPARSECONFIG_LIBS) -lm
-+libpartitionl_la_CPPFLAGS = $(AM_CPPFLAGS) -DDLONG
++libpartitionl_la_LIBADD = $(METIS_LIBS) $(CCOLAMD_LIBS) $(CAMD_LIBS) $(SUITESPARSECONFIG_LIBS) -lm $(CODE_COVERAGE_LIBS)
++libpartitionl_la_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS) -DDLONG
++libpartitionl_la_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
+
+if MOD_PARTITION_METIS
+libpartitioni_la_SOURCES += $(METISSRC)
@@ -966,7 +1069,7 @@ diff --git a/Supernodal/Makefile.am b/Supernodal/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Supernodal/Makefile.am
-@@ -0,0 +1,35 @@
+@@ -0,0 +1,37 @@
+AM_CFLAGS = $(OPENMP_CFLAGS)
+AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
+
@@ -988,12 +1091,14 @@ new file mode 100644
+ libsupernodal.la
+
+libsupernodali_la_SOURCES = $(SUPERNODALSRC)
-+libsupernodali_la_LIBADD = $(LAPACK_LIBS) $(BLAS_LIBS) $(SUITESPARSECONFIG_LIBS)
-+libsupernodali_la_CPPFLAGS = $(AM_CPPFLAGS)
++libsupernodali_la_LIBADD = $(LAPACK_LIBS) $(BLAS_LIBS) $(SUITESPARSECONFIG_LIBS) $(CODE_COVERAGE_LIBS)
++libsupernodali_la_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS)
++libsupernodali_la_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
+
+libsupernodall_la_SOURCES = $(SUPERNODALSRC)
-+libsupernodall_la_LIBADD = $(LAPACK_LIBS) $(BLAS_LIBS) $(SUITESPARSECONFIG_LIBS)
-+libsupernodall_la_CPPFLAGS = $(AM_CPPFLAGS) -DDLONG
++libsupernodall_la_LIBADD = $(LAPACK_LIBS) $(BLAS_LIBS) $(SUITESPARSECONFIG_LIBS) $(CODE_COVERAGE_LIBS)
++libsupernodall_la_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS) -DDLONG
++libsupernodall_la_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
+
+if !TIMING
+libsupernodali_la_CPPFLAGS += -DNTIMER
@@ -1002,13 +1107,592 @@ new file mode 100644
+
+libsupernodal_la_SOURCES =
+libsupernodal_la_LIBADD = libsupernodali.la libsupernodall.la
-diff --git a/ax_blas.m4 b/ax_blas.m4
+diff --git a/Tcov/Makefile.am b/Tcov/Makefile.am
+new file mode 100644
+--- /dev/null
++++ b/Tcov/Makefile.am
+@@ -0,0 +1,330 @@
++AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS)
++
++EXTRA_DIST = \
++ README.txt \
++ gpl.txt
++
++dist_noinst_DATA = \
++ comments.txt \
++ Matrix/0 \
++ Matrix/0_1 \
++ Matrix/1_0 \
++ Matrix/1e99 \
++ Matrix/2.tri \
++ Matrix/20lo \
++ Matrix/2diag.tri \
++ Matrix/2lo.tri \
++ Matrix/2up.tri \
++ Matrix/3_2 \
++ Matrix/3b \
++ Matrix/3by0.mtx \
++ Matrix/3singular \
++ Matrix/5by50 \
++ Matrix/C9840 \
++ Matrix/afiro \
++ Matrix/c10 \
++ Matrix/c30lo \
++ Matrix/c30up \
++ Matrix/c3singular \
++ Matrix/c5lo \
++ Matrix/c5up2 \
++ Matrix/cha.mtx \
++ Matrix/cpi \
++ Matrix/crud1 \
++ Matrix/crud2 \
++ Matrix/cs.mtx \
++ Matrix/csa.mtx \
++ Matrix/cza \
++ Matrix/cza.mtx \
++ Matrix/diag \
++ Matrix/ex5lo \
++ Matrix/fullcha.mtx \
++ Matrix/fullcrud.mtx \
++ Matrix/fullcrud1.mtx \
++ Matrix/fullcrud2.mtx \
++ Matrix/fullcsa.mtx \
++ Matrix/fullcza.mtx \
++ Matrix/fullrsa.mtx \
++ Matrix/fullrza.mtx \
++ Matrix/galenet \
++ Matrix/huge.tri \
++ Matrix/ibm32 \
++ Matrix/k01up \
++ Matrix/one \
++ Matrix/pi \
++ Matrix/plskz362.mtx \
++ Matrix/r5lo \
++ Matrix/r5lo2 \
++ Matrix/r5up \
++ Matrix/r5up2 \
++ Matrix/rza.mtx \
++ Matrix/z10 \
++ Matrix/z30lo \
++ Matrix/z30up \
++ Matrix/z3singular \
++ Matrix/z5lo \
++ Matrix/z5up \
++ Matrix/z5up2 \
++ Matrix/zero
++
++TEST = \
++ amdtest.c \
++ aug.c \
++ camdtest.c \
++ cctest.c \
++ cm.c \
++ cm.h \
++ ctest.c \
++ huge.c \
++ lpdemo.c \
++ memory.c \
++ null.c \
++ null2.c \
++ raw_factor.c \
++ solve.c \
++ test_ops.c \
++ unpack.c
++
++if MOD_CHECK
++if MOD_CHOLESKY
++if MOD_PARTITION
++if MOD_MATRIXOPS
++if MOD_MODIFY
++if MOD_SUPERNODAL
++if CODE_COVERAGE_ENABLED
++
++check_PROGRAMS = \
++ cm \
++ cl \
++ cmread \
++ clread
++
++cm_SOURCES = $(TEST)
++cm_LDADD = $(top_builddir)/libcholmod.la $(COLAMD_LIBS) $(AMD_LIBS) $(CCOLAMD_LIBS) $(CAMD_LIBS) $(BLAS_LIBS) $(SUITESPARSECONFIG_LIBS)
++cm_CPPFLAGS = $(AM_CPPFLAGS) $(COLAMD_CFLAGS) $(AMD_CFLAGS) $(CCOLAMD_CFLAGS) $(CAMD_CFLAGS)
++
++cl_SOURCES = $(TEST)
++cl_LDADD = $(top_builddir)/libcholmod.la $(COLAMD_LIBS) $(AMD_LIBS) $(CCOLAMD_LIBS) $(CAMD_LIBS) $(BLAS_LIBS) $(SUITESPARSECONFIG_LIBS)
++cl_CPPFLAGS = $(AM_CPPFLAGS) $(COLAMD_CFLAGS) $(AMD_CFLAGS) $(CCOLAMD_CFLAGS) $(CAMD_CFLAGS) -DDLONG
++
++cmread_SOURCES = cmread.c
++cmread_LDADD = $(top_builddir)/libcholmod.la
++
++clread_SOURCES = cmread.c
++clread_LDADD = $(top_builddir)/libcholmod.la
++clread_CPPFLAGS = $(AM_CPPFLAGS) -DDLONG
++
++MATRICES = \
++ $(srcdir)/Matrix/0 \
++ $(srcdir)/Matrix/0_1 \
++ $(srcdir)/Matrix/1_0 \
++ $(srcdir)/Matrix/1e99 \
++ $(srcdir)/Matrix/2.tri \
++ $(srcdir)/Matrix/20lo \
++ $(srcdir)/Matrix/2diag.tri \
++ $(srcdir)/Matrix/2lo.tri \
++ $(srcdir)/Matrix/2up.tri \
++ $(srcdir)/Matrix/3b \
++ $(srcdir)/Matrix/3by0.mtx \
++ $(srcdir)/Matrix/3singular \
++ $(srcdir)/Matrix/5by50 \
++ $(srcdir)/Matrix/C9840 \
++ $(srcdir)/Matrix/afiro \
++ $(srcdir)/Matrix/c10 \
++ $(srcdir)/Matrix/c30lo \
++ $(srcdir)/Matrix/c30up \
++ $(srcdir)/Matrix/c3singular \
++ $(srcdir)/Matrix/c5lo \
++ $(srcdir)/Matrix/c5up2 \
++ $(srcdir)/Matrix/cha.mtx \
++ $(srcdir)/Matrix/cpi \
++ $(srcdir)/Matrix/crud1 \
++ $(srcdir)/Matrix/crud2 \
++ $(srcdir)/Matrix/cs.mtx \
++ $(srcdir)/Matrix/csa.mtx \
++ $(srcdir)/Matrix/cza \
++ $(srcdir)/Matrix/cza.mtx \
++ $(srcdir)/Matrix/diag \
++ $(srcdir)/Matrix/ex5lo \
++ $(srcdir)/Matrix/fullcha.mtx \
++ $(srcdir)/Matrix/fullcrud.mtx \
++ $(srcdir)/Matrix/fullcrud1.mtx \
++ $(srcdir)/Matrix/fullcrud2.mtx \
++ $(srcdir)/Matrix/fullcsa.mtx \
++ $(srcdir)/Matrix/fullcza.mtx \
++ $(srcdir)/Matrix/fullrsa.mtx \
++ $(srcdir)/Matrix/fullrza.mtx \
++ $(srcdir)/Matrix/galenet \
++ $(srcdir)/Matrix/huge.tri \
++ $(srcdir)/Matrix/ibm32 \
++ $(srcdir)/Matrix/k01up \
++ $(srcdir)/Matrix/one \
++ $(srcdir)/Matrix/pi \
++ $(srcdir)/Matrix/plskz362.mtx \
++ $(srcdir)/Matrix/r5lo \
++ $(srcdir)/Matrix/r5lo2 \
++ $(srcdir)/Matrix/r5up \
++ $(srcdir)/Matrix/r5up2 \
++ $(srcdir)/Matrix/rza.mtx \
++ $(srcdir)/Matrix/z10 \
++ $(srcdir)/Matrix/z30lo \
++ $(srcdir)/Matrix/z30up \
++ $(srcdir)/Matrix/z3singular \
++ $(srcdir)/Matrix/z5lo \
++ $(srcdir)/Matrix/z5up \
++ $(srcdir)/Matrix/z5up2 \
++ $(srcdir)/Matrix/zero \
++ $(top_srcdir)/Demo/Matrix/empty.tri \
++ $(top_srcdir)/Demo/Matrix/mangle5.tri \
++ $(top_srcdir)/Demo/Matrix/mangle6.tri \
++ $(top_srcdir)/Demo/Matrix/mangle7.tri \
++ $(top_srcdir)/Demo/Matrix/mangle8.tri \
++ $(top_srcdir)/Demo/Matrix/one.tri
++
++check-local: $(check_PROGRAMS) $(MATRICES)
++ ./cmread no_such_file > no_such_file.out
++ ./cmread $(srcdir)/Matrix/crud1 > crud1.out
++ ./cmread $(srcdir)/Matrix/crud2 > crud2.out
++ ./cmread $(srcdir)/Matrix/fullcrud.mtx > fullcrud.out
++ ./cmread $(srcdir)/Matrix/fullcrud1.mtx > fullcrud1.out
++ ./cmread $(srcdir)/Matrix/fullcrud2.mtx > fullcrud2.out
++ ./cmread $(srcdir)/Matrix/3by0.mtx > 3by0.out
++ ./cmread $(srcdir)/Matrix/fullrza.mtx > fullrza.out
++ ./cmread $(srcdir)/Matrix/fullrsa.mtx > fullrsa.out
++ ./cmread $(srcdir)/Matrix/fullcsa.mtx > fullcsa.out
++ ./cmread $(srcdir)/Matrix/fullcza.mtx > fullcza.out
++ ./cmread $(srcdir)/Matrix/fullcha.mtx > fullcha.out
++ ./cmread $(srcdir)/Matrix/cha.mtx > cha.out
++ ./cmread $(srcdir)/Matrix/cza.mtx > cza.out
++ ./cmread $(srcdir)/Matrix/csa.mtx > csa.out
++ ./cmread $(srcdir)/Matrix/one > one.out
++ ./cmread $(srcdir)/Matrix/rza.mtx > rza.out
++ ./cmread $(top_srcdir)/Demo/Matrix/mangle5.tri > mangle5.out
++ ./cmread $(top_srcdir)/Demo/Matrix/mangle6.tri > mangle6.out
++ ./cmread $(top_srcdir)/Demo/Matrix/mangle7.tri > mangle6.out
++ ./cmread $(top_srcdir)/Demo/Matrix/mangle8.tri > mangle8.out
++ ./cmread $(top_srcdir)/Demo/Matrix/empty.tri > empty.out
++ ./cmread $(top_srcdir)/Demo/Matrix/one.tri > one.out
++ ./cmread $(srcdir)/Matrix/plskz362.mtx > plskz363.out
++ ./cmread $(srcdir)/Matrix/2diag.tri > 2diag.out
++ ./cmread $(srcdir)/Matrix/r5lo > r5lo.out
++ ./cmread $(srcdir)/Matrix/r5lo2 > r5lo2.out
++ ./cmread $(srcdir)/Matrix/cs.mtx > cs.out
++ ./cmread $(srcdir)/Matrix/2lo.tri > 2lo.out
++ ./cmread $(srcdir)/Matrix/2.tri > 2.out
++ ./cmread $(srcdir)/Matrix/2up.tri > 2up.out
++ ./cmread $(srcdir)/Matrix/huge.tri > huge.out
++ ./cmread $(srcdir)/Matrix/1e99 > 1e99.out
++ ./clread no_such_file > l_no_such_file.out
++ ./clread $(srcdir)/Matrix/crud1 > l_crud1.out
++ ./clread $(srcdir)/Matrix/crud2 > l_crud2.out
++ ./clread $(srcdir)/Matrix/fullcrud.mtx > l_fullcrud.out
++ ./clread $(srcdir)/Matrix/fullcrud1.mtx > l_fullcrud1.out
++ ./clread $(srcdir)/Matrix/fullcrud2.mtx > l_fullcrud2.out
++ ./clread $(srcdir)/Matrix/3by0.mtx > l_3by0.out
++ ./clread $(srcdir)/Matrix/fullrza.mtx > l_fullrza.out
++ ./clread $(srcdir)/Matrix/fullrsa.mtx > l_fullrsa.out
++ ./clread $(srcdir)/Matrix/fullcsa.mtx > l_fullcsa.out
++ ./clread $(srcdir)/Matrix/fullcza.mtx > l_fullcza.out
++ ./clread $(srcdir)/Matrix/fullcha.mtx > l_fullcha.out
++ ./clread $(srcdir)/Matrix/cha.mtx > l_cha.out
++ ./clread $(srcdir)/Matrix/cza.mtx > l_cza.out
++ ./clread $(srcdir)/Matrix/csa.mtx > l_csa.out
++ ./clread $(srcdir)/Matrix/one > l_one.out
++ ./clread $(srcdir)/Matrix/rza.mtx > l_rza.out
++ ./clread $(top_srcdir)/Demo/Matrix/mangle5.tri > l_mangle5.out
++ ./clread $(top_srcdir)/Demo/Matrix/mangle6.tri > l_mangle6.out
++ ./clread $(top_srcdir)/Demo/Matrix/mangle7.tri > l_mangle6.out
++ ./clread $(top_srcdir)/Demo/Matrix/mangle8.tri > l_mangle8.out
++ ./clread $(top_srcdir)/Demo/Matrix/empty.tri > l_empty.out
++ ./clread $(top_srcdir)/Demo/Matrix/one.tri > l_one.out
++ ./clread $(srcdir)/Matrix/plskz362.mtx > l_plskz363.out
++ ./clread $(srcdir)/Matrix/2diag.tri > l_2diag.out
++ ./clread $(srcdir)/Matrix/r5lo > l_r5lo.out
++ ./clread $(srcdir)/Matrix/r5lo2 > l_r5lo2.out
++ ./clread $(srcdir)/Matrix/cs.mtx > l_cs.out
++ ./clread $(srcdir)/Matrix/2lo.tri > l_l_2lo.out
++ ./clread $(srcdir)/Matrix/2.tri > l_2.out
++ ./clread $(srcdir)/Matrix/2up.tri > l_2up.out
++ ./clread $(srcdir)/Matrix/huge.tri > l_huge.out
++ ./clread $(srcdir)/Matrix/1e99 > l_1e99.out
++ ./cm < $(srcdir)/Matrix/galenet > galenet.out
++ ./cl < $(srcdir)/Matrix/galenet > l_galenet.out
++ ./cm < $(srcdir)/Matrix/5by50 > 5by50.out
++ ./cl < $(srcdir)/Matrix/5by50 > l_5by50.out
++ ./cm < $(srcdir)/Matrix/r5lo > r5lo.out
++ ./cl < $(srcdir)/Matrix/r5lo > l_r5lo.out
++ ./cm < $(srcdir)/Matrix/r5up > r5up.out
++ ./cl < $(srcdir)/Matrix/r5up > l_r5up.out
++ ./cm < $(srcdir)/Matrix/r5up2 > r5up2.out
++ ./cl < $(srcdir)/Matrix/r5up2 > l_r5up2.out
++ ./cm < $(srcdir)/Matrix/c5up2 > c5up2.out
++ ./cl < $(srcdir)/Matrix/c5up2 > l_c5up2.out
++ ./cm < $(srcdir)/Matrix/z5up2 > z5up2.out
++ ./cl < $(srcdir)/Matrix/z5up2 > l_z5up2.out
++ ./cm -m < $(srcdir)/Matrix/z5lo > z5lo.out
++ ./cl -m < $(srcdir)/Matrix/z5lo > l_z5lo.out
++ ./cm < $(srcdir)/Matrix/ibm32 > ibm.out
++ ./cl < $(srcdir)/Matrix/ibm32 > l_ibm.out
++ ./cm -m < $(srcdir)/Matrix/c5lo > c5lo.out
++ ./cl -m < $(srcdir)/Matrix/c5lo > l_c5lo.out
++ ./cm -m < $(srcdir)/Matrix/z10 > z10.out
++ ./cl -m < $(srcdir)/Matrix/z10 > l_z10.out
++ ./cm -m < $(srcdir)/Matrix/z5up > z5up.out
++ ./cl -m < $(srcdir)/Matrix/z5up > l_z5up.out
++ ./cm -s < $(srcdir)/Matrix/3singular > 3singular.out
++ ./cl -s < $(srcdir)/Matrix/3singular > l_3singular.out
++ ./cm -s < $(srcdir)/Matrix/z3singular > z3singular.out
++ ./cl -s < $(srcdir)/Matrix/z3singular > l_z3singular.out
++ ./cm -s < $(srcdir)/Matrix/c3singular > c3singular.out
++ ./cl -s < $(srcdir)/Matrix/c3singular > l_c3singular.out
++ ./cm -m < $(srcdir)/Matrix/0 > 0.out
++ ./cl -m < $(srcdir)/Matrix/0 > l_0.out
++ ./cm -m < $(srcdir)/Matrix/afiro > afiro.out
++ ./cl -m < $(srcdir)/Matrix/afiro > l_afiro.out
++ ./cm -m < $(srcdir)/Matrix/k01up > k01up.out
++ ./cl -m < $(srcdir)/Matrix/k01up > l_k01up.out
++ ./cm < $(srcdir)/Matrix/diag > diag.out
++ ./cl < $(srcdir)/Matrix/diag > l_diag.out
++ ./cm -m < $(srcdir)/Matrix/ex5lo > ex5lo.out
++ ./cl -m < $(srcdir)/Matrix/ex5lo > l_ex5lo.out
++ ./cm < $(srcdir)/Matrix/20lo > 20lo.out
++ ./cl < $(srcdir)/Matrix/20lo > l_20lo.out
++ ./cm < $(srcdir)/Matrix/z30lo > z30lo.out
++ ./cl < $(srcdir)/Matrix/z30lo > l_z30lo.out
++ ./cm -m < $(srcdir)/Matrix/z30up > z30up.out
++ ./cl -m < $(srcdir)/Matrix/z30up > l_z30up.out
++ ./cm < $(srcdir)/Matrix/c10 > c10.out
++ ./cl < $(srcdir)/Matrix/c10 > l_c10.out
++ ./cm < $(srcdir)/Matrix/c30lo > c30lo.out
++ ./cl < $(srcdir)/Matrix/c30lo > l_c30lo.out
++ ./cm < $(srcdir)/Matrix/C9840 > C9840.out
++ ./cl < $(srcdir)/Matrix/C9840 > l_C9840.out
++ ./cm -m < $(srcdir)/Matrix/c30up > c30up.out
++ ./cl -m < $(srcdir)/Matrix/c30up > l_c30up.out
++ ./cm < $(srcdir)/Matrix/pi > pi.out
++ ./cl < $(srcdir)/Matrix/pi > l_pi.out
++ ./cm < $(srcdir)/Matrix/cpi > cpi.out
++ ./cl < $(srcdir)/Matrix/cpi > l_cpi.out
++ ./cm < $(srcdir)/Matrix/1_0 > 1_0.out
++ ./cl < $(srcdir)/Matrix/1_0 > l_1_0.out
++ ./cm -s < $(srcdir)/Matrix/3b > 3b.out
++ ./cl -s < $(srcdir)/Matrix/3b > l_3b.out
++ ./cm -s < $(srcdir)/Matrix/cza > cza2.out
++ ./cl -s < $(srcdir)/Matrix/cza > l_cza2.out
++ ./cm < $(srcdir)/Matrix/0_1 > 0_1.out
++ ./cl < $(srcdir)/Matrix/0_1 > l_0_1.out
++ ./cm -n < $(srcdir)/Matrix/galenet > galenet_nan.out
++ ./cl -n < $(srcdir)/Matrix/galenet > l_galenet_nan.out
++ ./cm < $(srcdir)/Matrix/zero > zero.out
++ ./cl < $(srcdir)/Matrix/zero > zero.out
++
++endif
++endif
++endif
++endif
++endif
++endif
++endif
++
++CLEANFILES = temp*.mtx *.out
+diff --git a/cholmod.pc.in b/cholmod.pc.in
+new file mode 100644
+--- /dev/null
++++ b/cholmod.pc.in
+@@ -0,0 +1,13 @@
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++libdir=@libdir@
++includedir=@includedir@
++
++Name: @PACKAGE_NAME@
++Description: Sparse Cholesky factorization
++Version: @PACKAGE_VERSION@
++URL: @PACKAGE_URL@
++Requires.private: @CHOLMOD_REQUIRES@
++Libs: -L${libdir} -lcholmod
++Libs.private: @LAPACK_LIBS@ @BLAS_LIBS@ -lm
++Cflags: -I${includedir}/cholmod
+diff --git a/configure.ac b/configure.ac
+new file mode 100644
+--- /dev/null
++++ b/configure.ac
+@@ -0,0 +1,221 @@
++# -*- Autoconf -*-
++# Process this file with autoconf to produce a configure script.
++
++AC_PREREQ([2.69])
++AC_INIT([CHOLMOD],[3.0.11],[DrTimothyAldenDavis@gmail.com],[cholmod],[http://www.suitesparse.com/])
++AC_CONFIG_SRCDIR([Core/cholmod_common.c])
++AC_CONFIG_AUX_DIR([build-aux])
++AC_CONFIG_MACRO_DIR([m4])
++AC_CONFIG_HEADERS([config.h Include/cholmod_config.h])
++AM_INIT_AUTOMAKE([foreign])
++AM_SILENT_RULES([yes])
++LT_INIT([disable-static])
++
++# Checks for programs.
++PKG_PROG_PKG_CONFIG
++AC_PROG_INSTALL
++AC_PROG_CC
++AC_PROG_F77
++AC_PROG_AWK
++AC_OPENMP
++AX_CODE_COVERAGE
++
++AC_ARG_ENABLE([mod-check],
++ [AS_HELP_STRING(
++ [--disable-mod-check],
++ [do not build the Check module])],
++ [],
++ [AS_VAR_SET([enable_mod_check], [yes])])
++
++AC_ARG_ENABLE([mod-cholesky],
++ [AS_HELP_STRING(
++ [--disable-mod-cholesky],
++ [do not build the Cholesky module])],
++ [],
++ [AS_VAR_SET([enable_mod_cholesky], [yes])])
++
++AC_ARG_ENABLE([mod-partition],
++ [AS_HELP_STRING(
++ [--disable-mod-partition],
++ [do not build the Partition module])],
++ [],
++ [AS_VAR_SET([enable_mod_partition], [yes])])
++
++AC_ARG_ENABLE([mod-matrixops],
++ [AS_HELP_STRING(
++ [--disable-mod-matrixops],
++ [do not build the MatrixOps module])],
++ [],
++ [AS_VAR_SET([enable_mod_matrixops], [yes])])
++
++AC_ARG_ENABLE([mod-modify],
++ [AS_HELP_STRING(
++ [--disable-mod-modify],
++ [do not build the Modify module])],
++ [],
++ [AS_VAR_SET([enable_mod_modify], [yes])])
++
++AC_ARG_ENABLE([mod-supernodal],
++ [AS_HELP_STRING(
++ [--disable-mod-supernodal],
++ [do not build the Supernodal module])],
++ [],
++ [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_ARG_ENABLE([timing],
++ [AS_HELP_STRING(
++ [--disable-timing],
++ [do not use timing routines])],
++ [],
++ [AS_VAR_SET([enable_timing], [yes])])
++
++AS_VAR_SET([LIBS_SAVED], [$LIBS])
++
++# Checks for libraries.
++AC_CHECK_LIB([m], [sqrt])
++
++PKG_CHECK_MODULES([SUITESPARSECONFIG], [suitesparseconfig])
++AS_VAR_SET([CHOLMOD_REQUIRES], ["suitesparseconfig"])
++
++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])
++])
++
++AS_IF([test "x$enable_mod_check" != "xyes"], [
++ AC_DEFINE([NCHECK], [], [Define to disable the Check module])
++])
++
++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([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])
++])
++
++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])
++], [
++ AX_BLAS(
++ [],
++ [AC_MSG_ERROR([cannot find BLAS (required by mod-supernodal)])])
++
++ 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])
++
++# Checks for typedefs, structures, and compiler characteristics.
++AC_TYPE_SIZE_T
++
++# Checks for library functions.
++AC_FUNC_MALLOC
++AC_CHECK_FUNCS([sqrt])
++
++AS_VAR_SET([LIBS], [$LIBS_SAVED])
++
++AC_MSG_CHECKING([whether to build mod-check])
++AC_MSG_RESULT([$enable_mod_check])
++AM_CONDITIONAL([MOD_CHECK], [test "x$enable_mod_check" = "xyes"])
++
++AC_MSG_CHECKING([whether to build mod-cholesky])
++AC_MSG_RESULT([$enable_mod_cholesky])
++AM_CONDITIONAL([MOD_CHOLESKY], [test "x$enable_mod_cholesky" = "xyes"])
++
++AC_MSG_CHECKING([whether to build mod-partition])
++AC_MSG_RESULT([$enable_mod_partition])
++AM_CONDITIONAL([MOD_PARTITION], [test "x$enable_mod_partition" = "xyes"])
++
++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"])
++
++AC_MSG_CHECKING([whether to build mod-matrixops])
++AC_MSG_RESULT([$enable_mod_matrixops])
++AM_CONDITIONAL([MOD_MATRIXOPS], [test "x$enable_mod_matrixops" = "xyes"])
++
++AC_MSG_CHECKING([whether to build mod-modify])
++AC_MSG_RESULT([$enable_mod_modify])
++AM_CONDITIONAL([MOD_MODIFY], [test "x$enable_mod_modify" = "xyes"])
++
++AC_MSG_CHECKING([whether to build mod-supernodal])
++AC_MSG_RESULT([$enable_mod_supernodal])
++AM_CONDITIONAL([MOD_SUPERNODAL], [test "x$enable_mod_supernodal" = "xyes"])
++
++AC_MSG_CHECKING([whether to build mod-gpu])
++AC_MSG_RESULT([no])
++AM_CONDITIONAL([MOD_GPU], [false])
++
++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
++ Check/Makefile
++ Cholesky/Makefile
++ Core/Makefile
++ Demo/Makefile
++ Doc/Makefile
++ GPU/Makefile
++ Include/Makefile
++ MATLAB/Makefile
++ MatrixOps/Makefile
++ Modify/Makefile
++ Partition/Makefile
++ Supernodal/Makefile
++ Tcov/Makefile
++])
++AC_CONFIG_LINKS([Tcov/comments.txt:Tcov/comments.txt])
++AC_OUTPUT
+diff --git a/m4/ax_blas.m4 b/m4/ax_blas.m4
new file mode 100644
--- /dev/null
-+++ b/ax_blas.m4
++++ b/m4/ax_blas.m4
@@ -0,0 +1,238 @@
+# ===========================================================================
-+# http://www.gnu.org/software/autoconf-archive/ax_blas.html
++# https://www.gnu.org/software/autoconf-archive/ax_blas.html
+# ===========================================================================
+#
+# SYNOPSIS
@@ -1057,7 +1741,7 @@ new file mode 100644
+# 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/>.
++# with this program. If not, see <https://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
@@ -1072,7 +1756,7 @@ new file mode 100644
+# modified version of the Autoconf Macro, you may extend this special
+# exception to the GPL to apply to your modified version as well.
+
-+#serial 14
++#serial 15
+
+AU_ALIAS([ACX_BLAS], [AX_BLAS])
+AC_DEFUN([AX_BLAS], [
@@ -1245,13 +1929,282 @@ new file mode 100644
+ $2
+fi
+])dnl AX_BLAS
-diff --git a/ax_lapack.m4 b/ax_lapack.m4
+diff --git a/m4/ax_code_coverage.m4 b/m4/ax_code_coverage.m4
+new file mode 100644
+--- /dev/null
++++ b/m4/ax_code_coverage.m4
+@@ -0,0 +1,264 @@
++# ===========================================================================
++# https://www.gnu.org/software/autoconf-archive/ax_code_coverage.html
++# ===========================================================================
++#
++# SYNOPSIS
++#
++# AX_CODE_COVERAGE()
++#
++# DESCRIPTION
++#
++# Defines CODE_COVERAGE_CPPFLAGS, CODE_COVERAGE_CFLAGS,
++# CODE_COVERAGE_CXXFLAGS and CODE_COVERAGE_LIBS which should be included
++# in the CPPFLAGS, CFLAGS CXXFLAGS and LIBS/LIBADD variables of every
++# build target (program or library) which should be built with code
++# coverage support. Also defines CODE_COVERAGE_RULES which should be
++# substituted in your Makefile; and $enable_code_coverage which can be
++# used in subsequent configure output. CODE_COVERAGE_ENABLED is defined
++# and substituted, and corresponds to the value of the
++# --enable-code-coverage option, which defaults to being disabled.
++#
++# Test also for gcov program and create GCOV variable that could be
++# substituted.
++#
++# Note that all optimization flags in CFLAGS must be disabled when code
++# coverage is enabled.
++#
++# Usage example:
++#
++# configure.ac:
++#
++# AX_CODE_COVERAGE
++#
++# Makefile.am:
++#
++# @CODE_COVERAGE_RULES@
++# my_program_LIBS = ... $(CODE_COVERAGE_LIBS) ...
++# my_program_CPPFLAGS = ... $(CODE_COVERAGE_CPPFLAGS) ...
++# my_program_CFLAGS = ... $(CODE_COVERAGE_CFLAGS) ...
++# my_program_CXXFLAGS = ... $(CODE_COVERAGE_CXXFLAGS) ...
++#
++# This results in a "check-code-coverage" rule being added to any
++# Makefile.am which includes "@CODE_COVERAGE_RULES@" (assuming the module
++# has been configured with --enable-code-coverage). Running `make
++# check-code-coverage` in that directory will run the module's test suite
++# (`make check`) and build a code coverage report detailing the code which
++# was touched, then print the URI for the report.
++#
++# In earlier versions of this macro, CODE_COVERAGE_LDFLAGS was defined
++# instead of CODE_COVERAGE_LIBS. They are both still defined, but use of
++# CODE_COVERAGE_LIBS is preferred for clarity; CODE_COVERAGE_LDFLAGS is
++# deprecated. They have the same value.
++#
++# This code was derived from Makefile.decl in GLib, originally licenced
++# under LGPLv2.1+.
++#
++# LICENSE
++#
++# Copyright (c) 2012, 2016 Philip Withnall
++# Copyright (c) 2012 Xan Lopez
++# Copyright (c) 2012 Christian Persch
++# Copyright (c) 2012 Paolo Borelli
++# Copyright (c) 2012 Dan Winship
++# Copyright (c) 2015 Bastien ROUCARIES
++#
++# This library is free software; you can redistribute it and/or modify it
++# under the terms of the GNU Lesser General Public License as published by
++# the Free Software Foundation; either version 2.1 of the License, or (at
++# your option) any later version.
++#
++# This library 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 Lesser
++# General Public License for more details.
++#
++# You should have received a copy of the GNU Lesser General Public License
++# along with this program. If not, see <https://www.gnu.org/licenses/>.
++
++#serial 24
++
++AC_DEFUN([AX_CODE_COVERAGE],[
++ dnl Check for --enable-code-coverage
++ AC_REQUIRE([AC_PROG_SED])
++
++ # allow to override gcov location
++ AC_ARG_WITH([gcov],
++ [AS_HELP_STRING([--with-gcov[=GCOV]], [use given GCOV for coverage (GCOV=gcov).])],
++ [_AX_CODE_COVERAGE_GCOV_PROG_WITH=$with_gcov],
++ [_AX_CODE_COVERAGE_GCOV_PROG_WITH=gcov])
++
++ AC_MSG_CHECKING([whether to build with code coverage support])
++ AC_ARG_ENABLE([code-coverage],
++ AS_HELP_STRING([--enable-code-coverage],
++ [Whether to enable code coverage support]),,
++ enable_code_coverage=no)
++
++ AM_CONDITIONAL([CODE_COVERAGE_ENABLED], [test x$enable_code_coverage = xyes])
++ AC_SUBST([CODE_COVERAGE_ENABLED], [$enable_code_coverage])
++ AC_MSG_RESULT($enable_code_coverage)
++
++ AS_IF([ test "$enable_code_coverage" = "yes" ], [
++ # check for gcov
++ AC_CHECK_TOOL([GCOV],
++ [$_AX_CODE_COVERAGE_GCOV_PROG_WITH],
++ [:])
++ AS_IF([test "X$GCOV" = "X:"],
++ [AC_MSG_ERROR([gcov is needed to do coverage])])
++ AC_SUBST([GCOV])
++
++ dnl Check if gcc is being used
++ AS_IF([ test "$GCC" = "no" ], [
++ AC_MSG_ERROR([not compiling with gcc, which is required for gcov code coverage])
++ ])
++
++ AC_CHECK_PROG([LCOV], [lcov], [lcov])
++ AC_CHECK_PROG([GENHTML], [genhtml], [genhtml])
++
++ AS_IF([ test -z "$LCOV" ], [
++ AC_MSG_ERROR([To enable code coverage reporting you must have lcov installed])
++ ])
++
++ AS_IF([ test -z "$GENHTML" ], [
++ AC_MSG_ERROR([Could not find genhtml from the lcov package])
++ ])
++
++ dnl Build the code coverage flags
++ dnl Define CODE_COVERAGE_LDFLAGS for backwards compatibility
++ CODE_COVERAGE_CPPFLAGS="-DNDEBUG"
++ CODE_COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage"
++ CODE_COVERAGE_CXXFLAGS="-O0 -g -fprofile-arcs -ftest-coverage"
++ CODE_COVERAGE_LIBS="-lgcov"
++ CODE_COVERAGE_LDFLAGS="$CODE_COVERAGE_LIBS"
++
++ AC_SUBST([CODE_COVERAGE_CPPFLAGS])
++ AC_SUBST([CODE_COVERAGE_CFLAGS])
++ AC_SUBST([CODE_COVERAGE_CXXFLAGS])
++ AC_SUBST([CODE_COVERAGE_LIBS])
++ AC_SUBST([CODE_COVERAGE_LDFLAGS])
++
++ [CODE_COVERAGE_RULES_CHECK='
++ -$(A''M_V_at)$(MAKE) $(AM_MAKEFLAGS) -k check
++ $(A''M_V_at)$(MAKE) $(AM_MAKEFLAGS) code-coverage-capture
++']
++ [CODE_COVERAGE_RULES_CAPTURE='
++ $(code_coverage_v_lcov_cap)$(LCOV) $(code_coverage_quiet) $(addprefix --directory ,$(CODE_COVERAGE_DIRECTORY)) --capture --output-file "$(CODE_COVERAGE_OUTPUT_FILE).tmp" --test-name "$(call code_coverage_sanitize,$(PACKAGE_NAME)-$(PACKAGE_VERSION))" --no-checksum --compat-libtool $(CODE_COVERAGE_LCOV_SHOPTS) $(CODE_COVERAGE_LCOV_OPTIONS)
++ $(code_coverage_v_lcov_ign)$(LCOV) $(code_coverage_quiet) $(addprefix --directory ,$(CODE_COVERAGE_DIRECTORY)) --remove "$(CODE_COVERAGE_OUTPUT_FILE).tmp" "/tmp/*" $(CODE_COVERAGE_IGNORE_PATTERN) --output-file "$(CODE_COVERAGE_OUTPUT_FILE)" $(CODE_COVERAGE_LCOV_SHOPTS) $(CODE_COVERAGE_LCOV_RMOPTS)
++ -@rm -f $(CODE_COVERAGE_OUTPUT_FILE).tmp
++ $(code_coverage_v_genhtml)LANG=C $(GENHTML) $(code_coverage_quiet) $(addprefix --prefix ,$(CODE_COVERAGE_DIRECTORY)) --output-directory "$(CODE_COVERAGE_OUTPUT_DIRECTORY)" --title "$(PACKAGE_NAME)-$(PACKAGE_VERSION) Code Coverage" --legend --show-details "$(CODE_COVERAGE_OUTPUT_FILE)" $(CODE_COVERAGE_GENHTML_OPTIONS)
++ @echo "file://$(abs_builddir)/$(CODE_COVERAGE_OUTPUT_DIRECTORY)/index.html"
++']
++ [CODE_COVERAGE_RULES_CLEAN='
++clean: code-coverage-clean
++distclean: code-coverage-clean
++code-coverage-clean:
++ -$(LCOV) --directory $(top_builddir) -z
++ -rm -rf $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_FILE).tmp $(CODE_COVERAGE_OUTPUT_DIRECTORY)
++ -find . \( -name "*.gcda" -o -name "*.gcno" -o -name "*.gcov" \) -delete
++']
++ ], [
++ [CODE_COVERAGE_RULES_CHECK='
++ @echo "Need to reconfigure with --enable-code-coverage"
++']
++ CODE_COVERAGE_RULES_CAPTURE="$CODE_COVERAGE_RULES_CHECK"
++ CODE_COVERAGE_RULES_CLEAN=''
++ ])
++
++[CODE_COVERAGE_RULES='
++# Code coverage
++#
++# Optional:
++# - CODE_COVERAGE_DIRECTORY: Top-level directory for code coverage reporting.
++# Multiple directories may be specified, separated by whitespace.
++# (Default: $(top_builddir))
++# - CODE_COVERAGE_OUTPUT_FILE: Filename and path for the .info file generated
++# by lcov for code coverage. (Default:
++# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info)
++# - CODE_COVERAGE_OUTPUT_DIRECTORY: Directory for generated code coverage
++# reports to be created. (Default:
++# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage)
++# - CODE_COVERAGE_BRANCH_COVERAGE: Set to 1 to enforce branch coverage,
++# set to 0 to disable it and leave empty to stay with the default.
++# (Default: empty)
++# - CODE_COVERAGE_LCOV_SHOPTS_DEFAULT: Extra options shared between both lcov
++# instances. (Default: based on $CODE_COVERAGE_BRANCH_COVERAGE)
++# - CODE_COVERAGE_LCOV_SHOPTS: Extra options to shared between both lcov
++# instances. (Default: $CODE_COVERAGE_LCOV_SHOPTS_DEFAULT)
++# - CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH: --gcov-tool pathtogcov
++# - CODE_COVERAGE_LCOV_OPTIONS_DEFAULT: Extra options to pass to the
++# collecting lcov instance. (Default: $CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH)
++# - CODE_COVERAGE_LCOV_OPTIONS: Extra options to pass to the collecting lcov
++# instance. (Default: $CODE_COVERAGE_LCOV_OPTIONS_DEFAULT)
++# - CODE_COVERAGE_LCOV_RMOPTS_DEFAULT: Extra options to pass to the filtering
++# lcov instance. (Default: empty)
++# - CODE_COVERAGE_LCOV_RMOPTS: Extra options to pass to the filtering lcov
++# instance. (Default: $CODE_COVERAGE_LCOV_RMOPTS_DEFAULT)
++# - CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT: Extra options to pass to the
++# genhtml instance. (Default: based on $CODE_COVERAGE_BRANCH_COVERAGE)
++# - CODE_COVERAGE_GENHTML_OPTIONS: Extra options to pass to the genhtml
++# instance. (Default: $CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT)
++# - CODE_COVERAGE_IGNORE_PATTERN: Extra glob pattern of files to ignore
++#
++# The generated report will be titled using the $(PACKAGE_NAME) and
++# $(PACKAGE_VERSION). In order to add the current git hash to the title,
++# use the git-version-gen script, available online.
++
++# Optional variables
++CODE_COVERAGE_DIRECTORY ?= $(top_builddir)
++CODE_COVERAGE_OUTPUT_FILE ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info
++CODE_COVERAGE_OUTPUT_DIRECTORY ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage
++CODE_COVERAGE_BRANCH_COVERAGE ?=
++CODE_COVERAGE_LCOV_SHOPTS_DEFAULT ?= $(if $(CODE_COVERAGE_BRANCH_COVERAGE),\
++--rc lcov_branch_coverage=$(CODE_COVERAGE_BRANCH_COVERAGE))
++CODE_COVERAGE_LCOV_SHOPTS ?= $(CODE_COVERAGE_LCOV_SHOPTS_DEFAULT)
++CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH ?= --gcov-tool "$(GCOV)"
++CODE_COVERAGE_LCOV_OPTIONS_DEFAULT ?= $(CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH)
++CODE_COVERAGE_LCOV_OPTIONS ?= $(CODE_COVERAGE_LCOV_OPTIONS_DEFAULT)
++CODE_COVERAGE_LCOV_RMOPTS_DEFAULT ?=
++CODE_COVERAGE_LCOV_RMOPTS ?= $(CODE_COVERAGE_LCOV_RMOPTS_DEFAULT)
++CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT ?=\
++$(if $(CODE_COVERAGE_BRANCH_COVERAGE),\
++--rc genhtml_branch_coverage=$(CODE_COVERAGE_BRANCH_COVERAGE))
++CODE_COVERAGE_GENHTML_OPTIONS ?= $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT)
++CODE_COVERAGE_IGNORE_PATTERN ?=
++
++code_coverage_v_lcov_cap = $(code_coverage_v_lcov_cap_$(V))
++code_coverage_v_lcov_cap_ = $(code_coverage_v_lcov_cap_$(AM_DEFAULT_VERBOSITY))
++code_coverage_v_lcov_cap_0 = @echo " LCOV --capture"\
++ $(CODE_COVERAGE_OUTPUT_FILE);
++code_coverage_v_lcov_ign = $(code_coverage_v_lcov_ign_$(V))
++code_coverage_v_lcov_ign_ = $(code_coverage_v_lcov_ign_$(AM_DEFAULT_VERBOSITY))
++code_coverage_v_lcov_ign_0 = @echo " LCOV --remove /tmp/*"\
++ $(CODE_COVERAGE_IGNORE_PATTERN);
++code_coverage_v_genhtml = $(code_coverage_v_genhtml_$(V))
++code_coverage_v_genhtml_ = $(code_coverage_v_genhtml_$(AM_DEFAULT_VERBOSITY))
++code_coverage_v_genhtml_0 = @echo " GEN " $(CODE_COVERAGE_OUTPUT_DIRECTORY);
++code_coverage_quiet = $(code_coverage_quiet_$(V))
++code_coverage_quiet_ = $(code_coverage_quiet_$(AM_DEFAULT_VERBOSITY))
++code_coverage_quiet_0 = --quiet
++
++# sanitizes the test-name: replaces with underscores: dashes and dots
++code_coverage_sanitize = $(subst -,_,$(subst .,_,$(1)))
++
++# Use recursive makes in order to ignore errors during check
++check-code-coverage:'"$CODE_COVERAGE_RULES_CHECK"'
++
++# Capture code coverage data
++code-coverage-capture: code-coverage-capture-hook'"$CODE_COVERAGE_RULES_CAPTURE"'
++
++# Hook rule executed before code-coverage-capture, overridable by the user
++code-coverage-capture-hook:
++
++'"$CODE_COVERAGE_RULES_CLEAN"'
++
++GITIGNOREFILES ?=
++GITIGNOREFILES += $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_DIRECTORY)
++
++A''M_DISTCHECK_CONFIGURE_FLAGS ?=
++A''M_DISTCHECK_CONFIGURE_FLAGS += --disable-code-coverage
++
++.PHONY: check-code-coverage code-coverage-capture code-coverage-capture-hook code-coverage-clean
++']
++
++ AC_SUBST([CODE_COVERAGE_RULES])
++ m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([CODE_COVERAGE_RULES])])
++])
+diff --git a/m4/ax_lapack.m4 b/m4/ax_lapack.m4
new file mode 100644
--- /dev/null
-+++ b/ax_lapack.m4
++++ b/m4/ax_lapack.m4
@@ -0,0 +1,131 @@
+# ===========================================================================
-+# http://www.gnu.org/software/autoconf-archive/ax_lapack.html
++# https://www.gnu.org/software/autoconf-archive/ax_lapack.html
+# ===========================================================================
+#
+# SYNOPSIS
@@ -1301,7 +2254,7 @@ new file mode 100644
+# 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/>.
++# with this program. If not, see <https://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
@@ -1316,7 +2269,7 @@ new file mode 100644
+# modified version of the Autoconf Macro, you may extend this special
+# exception to the GPL to apply to your modified version as well.
+
-+#serial 7
++#serial 8
+
+AU_ALIAS([ACX_LAPACK], [AX_LAPACK])
+AC_DEFUN([AX_LAPACK], [
@@ -1381,243 +2334,3 @@ new file mode 100644
+ $2
+fi
+])dnl AX_LAPACK
-diff --git a/cholmod.pc.in b/cholmod.pc.in
-new file mode 100644
---- /dev/null
-+++ b/cholmod.pc.in
-@@ -0,0 +1,13 @@
-+prefix=@prefix@
-+exec_prefix=@exec_prefix@
-+libdir=@libdir@
-+includedir=@includedir@
-+
-+Name: @PACKAGE_NAME@
-+Description: Sparse Cholesky factorization
-+Version: @PACKAGE_VERSION@
-+URL: @PACKAGE_URL@
-+Requires.private: @CHOLMOD_REQUIRES@
-+Libs: -L${libdir} -lcholmod
-+Libs.private: @LAPACK_LIBS@ @BLAS_LIBS@ -lm
-+Cflags: -I${includedir}/cholmod
-diff --git a/configure.ac b/configure.ac
-new file mode 100644
---- /dev/null
-+++ b/configure.ac
-@@ -0,0 +1,217 @@
-+# -*- Autoconf -*-
-+# Process this file with autoconf to produce a configure script.
-+
-+AC_PREREQ([2.69])
-+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_ARG_ENABLE([mod-check],
-+ [AS_HELP_STRING(
-+ [--disable-mod-check],
-+ [do not build the Check module])],
-+ [],
-+ [AS_VAR_SET([enable_mod_check], [yes])])
-+
-+AC_ARG_ENABLE([mod-cholesky],
-+ [AS_HELP_STRING(
-+ [--disable-mod-cholesky],
-+ [do not build the Cholesky module])],
-+ [],
-+ [AS_VAR_SET([enable_mod_cholesky], [yes])])
-+
-+AC_ARG_ENABLE([mod-partition],
-+ [AS_HELP_STRING(
-+ [--disable-mod-partition],
-+ [do not build the Partition module])],
-+ [],
-+ [AS_VAR_SET([enable_mod_partition], [yes])])
-+
-+AC_ARG_ENABLE([mod-matrixops],
-+ [AS_HELP_STRING(
-+ [--disable-mod-matrixops],
-+ [do not build the MatrixOps module])],
-+ [],
-+ [AS_VAR_SET([enable_mod_matrixops], [yes])])
-+
-+AC_ARG_ENABLE([mod-modify],
-+ [AS_HELP_STRING(
-+ [--disable-mod-modify],
-+ [do not build the Modify module])],
-+ [],
-+ [AS_VAR_SET([enable_mod_modify], [yes])])
-+
-+AC_ARG_ENABLE([mod-supernodal],
-+ [AS_HELP_STRING(
-+ [--disable-mod-supernodal],
-+ [do not build the Supernodal module])],
-+ [],
-+ [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_ARG_ENABLE([timing],
-+ [AS_HELP_STRING(
-+ [--disable-timing],
-+ [do not use timing routines])],
-+ [],
-+ [AS_VAR_SET([enable_timing], [yes])])
-+
-+AS_VAR_SET([LIBS_SAVED], [$LIBS])
-+
-+# Checks for libraries.
-+AC_CHECK_LIB([m], [sqrt])
-+
-+PKG_CHECK_MODULES([SUITESPARSECONFIG], [suitesparseconfig])
-+AS_VAR_SET([CHOLMOD_REQUIRES], ["suitesparseconfig"])
-+
-+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])
-+])
-+
-+AS_IF([test "x$enable_mod_check" != "xyes"], [
-+ AC_DEFINE([NCHECK], [], [Define to disable the Check module])
-+])
-+
-+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([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])
-+])
-+
-+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(
-+ [],
-+ [AC_MSG_ERROR([cannot find BLAS (required by mod-supernodal)])])
-+
-+ sinclude([ax_lapack.m4])
-+ 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])
-+
-+# Checks for typedefs, structures, and compiler characteristics.
-+AC_TYPE_SIZE_T
-+
-+# Checks for library functions.
-+AC_FUNC_MALLOC
-+AC_CHECK_FUNCS([sqrt])
-+
-+AS_VAR_SET([LIBS], [$LIBS_SAVED])
-+
-+AC_MSG_CHECKING([whether to build mod-check])
-+AC_MSG_RESULT([$enable_mod_check])
-+AM_CONDITIONAL([MOD_CHECK], [test "x$enable_mod_check" = "xyes"])
-+
-+AC_MSG_CHECKING([whether to build mod-cholesky])
-+AC_MSG_RESULT([$enable_mod_cholesky])
-+AM_CONDITIONAL([MOD_CHOLESKY], [test "x$enable_mod_cholesky" = "xyes"])
-+
-+AC_MSG_CHECKING([whether to build mod-partition])
-+AC_MSG_RESULT([$enable_mod_partition])
-+AM_CONDITIONAL([MOD_PARTITION], [test "x$enable_mod_partition" = "xyes"])
-+
-+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"])
-+
-+AC_MSG_CHECKING([whether to build mod-matrixops])
-+AC_MSG_RESULT([$enable_mod_matrixops])
-+AM_CONDITIONAL([MOD_MATRIXOPS], [test "x$enable_mod_matrixops" = "xyes"])
-+
-+AC_MSG_CHECKING([whether to build mod-modify])
-+AC_MSG_RESULT([$enable_mod_modify])
-+AM_CONDITIONAL([MOD_MODIFY], [test "x$enable_mod_modify" = "xyes"])
-+
-+AC_MSG_CHECKING([whether to build mod-supernodal])
-+AC_MSG_RESULT([$enable_mod_supernodal])
-+AM_CONDITIONAL([MOD_SUPERNODAL], [test "x$enable_mod_supernodal" = "xyes"])
-+
-+AC_MSG_CHECKING([whether to build mod-gpu])
-+AC_MSG_RESULT([no])
-+AM_CONDITIONAL([MOD_GPU], [false])
-+
-+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
-+ Check/Makefile
-+ Cholesky/Makefile
-+ Core/Makefile
-+ Demo/Makefile
-+ Doc/Makefile
-+ GPU/Makefile
-+ Include/Makefile
-+ MATLAB/Makefile
-+ MatrixOps/Makefile
-+ Modify/Makefile
-+ Partition/Makefile
-+ Supernodal/Makefile
-+])
-+AC_OUTPUT