diff --git a/Demo/Makefile.am b/Demo/Makefile.am new file mode 100644 --- /dev/null +++ b/Demo/Makefile.am @@ -0,0 +1,131 @@ +AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS) +LDADD = $(top_builddir)/Source/libcxsparse.la + +noinst_HEADERS = \ + cs_demo.h \ + cs_ci_demo.h \ + cs_cl_demo.h \ + cs_di_demo.h \ + cs_dl_demo.h + +check_PROGRAMS = \ + cs_demo1 \ + cs_demo2 \ + cs_demo3 \ + cs_ci_demo1 \ + cs_ci_demo2 \ + cs_ci_demo3 \ + cs_cl_demo1 \ + cs_cl_demo2 \ + cs_cl_demo3 \ + cs_di_demo1 \ + cs_di_demo2 \ + cs_di_demo3 \ + cs_dl_demo1 \ + cs_dl_demo2 \ + cs_dl_demo3 \ + cs_idemo \ + cs_ldemo + +cs_demo1_SOURCES = cs_demo1.c +cs_demo2_SOURCES = cs_demo2.c cs_demo.c +cs_demo3_SOURCES = cs_demo3.c cs_demo.c +cs_ci_demo1_SOURCES = cs_ci_demo1.c +cs_ci_demo2_SOURCES = cs_ci_demo2.c cs_ci_demo.c +cs_ci_demo3_SOURCES = cs_ci_demo3.c cs_ci_demo.c +cs_cl_demo1_SOURCES = cs_cl_demo1.c +cs_cl_demo2_SOURCES = cs_cl_demo2.c cs_cl_demo.c +cs_cl_demo3_SOURCES = cs_cl_demo3.c cs_cl_demo.c +cs_di_demo1_SOURCES = cs_di_demo1.c +cs_di_demo2_SOURCES = cs_di_demo2.c cs_di_demo.c +cs_di_demo3_SOURCES = cs_di_demo3.c cs_di_demo.c +cs_dl_demo1_SOURCES = cs_dl_demo1.c +cs_dl_demo2_SOURCES = cs_dl_demo2.c cs_dl_demo.c +cs_dl_demo3_SOURCES = cs_dl_demo3.c cs_dl_demo.c + +cs_idemo_SOURCES = cs_idemo.c +cs_ldemo_SOURCES = cs_ldemo.c +cs_ldemo_CPPFLAGS = $(AM_CPPFLAGS) -DCS_LONG + +MATRICES = \ + $(top_srcdir)/Matrix/ash219 \ + $(top_srcdir)/Matrix/bcsstk01 \ + $(top_srcdir)/Matrix/bcsstk16 \ + $(top_srcdir)/Matrix/c4 \ + $(top_srcdir)/Matrix/c_mbeacxc \ + $(top_srcdir)/Matrix/c_west0067 \ + $(top_srcdir)/Matrix/fs_183_1 \ + $(top_srcdir)/Matrix/lp_afiro \ + $(top_srcdir)/Matrix/mbeacxc \ + $(top_srcdir)/Matrix/mhd1280b \ + $(top_srcdir)/Matrix/neumann \ + $(top_srcdir)/Matrix/qc324 \ + $(top_srcdir)/Matrix/t1 \ + $(top_srcdir)/Matrix/t2 \ + $(top_srcdir)/Matrix/t3 \ + $(top_srcdir)/Matrix/t4 \ + $(top_srcdir)/Matrix/west0067 \ + $(top_srcdir)/Matrix/young1c + +check-local: $(check_PROGRAMS) $(MATRICES) + -./cs_demo1 < $(top_srcdir)/Matrix/t1 + -./cs_demo2 < $(top_srcdir)/Matrix/t1 + -./cs_demo2 < $(top_srcdir)/Matrix/fs_183_1 + -./cs_demo2 < $(top_srcdir)/Matrix/west0067 + -./cs_demo2 < $(top_srcdir)/Matrix/lp_afiro + -./cs_demo2 < $(top_srcdir)/Matrix/ash219 + -./cs_demo2 < $(top_srcdir)/Matrix/mbeacxc + -./cs_demo2 < $(top_srcdir)/Matrix/bcsstk01 + -./cs_demo3 < $(top_srcdir)/Matrix/bcsstk01 + -./cs_demo2 < $(top_srcdir)/Matrix/bcsstk16 + -./cs_demo3 < $(top_srcdir)/Matrix/bcsstk16 + -./cs_di_demo1 < $(top_srcdir)/Matrix/t1 + -./cs_di_demo2 < $(top_srcdir)/Matrix/t1 + -./cs_di_demo2 < $(top_srcdir)/Matrix/fs_183_1 + -./cs_di_demo2 < $(top_srcdir)/Matrix/west0067 + -./cs_di_demo2 < $(top_srcdir)/Matrix/lp_afiro + -./cs_di_demo2 < $(top_srcdir)/Matrix/ash219 + -./cs_di_demo2 < $(top_srcdir)/Matrix/mbeacxc + -./cs_di_demo2 < $(top_srcdir)/Matrix/bcsstk01 + -./cs_di_demo3 < $(top_srcdir)/Matrix/bcsstk01 + -./cs_di_demo2 < $(top_srcdir)/Matrix/bcsstk16 + -./cs_di_demo3 < $(top_srcdir)/Matrix/bcsstk16 + -./cs_dl_demo1 < $(top_srcdir)/Matrix/t1 + -./cs_dl_demo2 < $(top_srcdir)/Matrix/t1 + -./cs_dl_demo2 < $(top_srcdir)/Matrix/fs_183_1 + -./cs_dl_demo2 < $(top_srcdir)/Matrix/west0067 + -./cs_dl_demo2 < $(top_srcdir)/Matrix/lp_afiro + -./cs_dl_demo2 < $(top_srcdir)/Matrix/ash219 + -./cs_dl_demo2 < $(top_srcdir)/Matrix/mbeacxc + -./cs_dl_demo2 < $(top_srcdir)/Matrix/bcsstk01 + -./cs_dl_demo3 < $(top_srcdir)/Matrix/bcsstk01 + -./cs_dl_demo2 < $(top_srcdir)/Matrix/bcsstk16 + -./cs_dl_demo3 < $(top_srcdir)/Matrix/bcsstk16 + -./cs_ci_demo1 < $(top_srcdir)/Matrix/t2 + -./cs_ci_demo2 < $(top_srcdir)/Matrix/t2 + -./cs_ci_demo2 < $(top_srcdir)/Matrix/t3 + -./cs_ci_demo2 < $(top_srcdir)/Matrix/t4 + -./cs_ci_demo2 < $(top_srcdir)/Matrix/c_west0067 + -./cs_ci_demo2 < $(top_srcdir)/Matrix/c_mbeacxc + -./cs_ci_demo2 < $(top_srcdir)/Matrix/young1c + -./cs_ci_demo2 < $(top_srcdir)/Matrix/qc324 + -./cs_ci_demo2 < $(top_srcdir)/Matrix/neumann + -./cs_ci_demo2 < $(top_srcdir)/Matrix/c4 + -./cs_ci_demo3 < $(top_srcdir)/Matrix/c4 + -./cs_ci_demo2 < $(top_srcdir)/Matrix/mhd1280b + -./cs_ci_demo3 < $(top_srcdir)/Matrix/mhd1280b + -./cs_cl_demo1 < $(top_srcdir)/Matrix/t2 + -./cs_cl_demo2 < $(top_srcdir)/Matrix/t2 + -./cs_cl_demo2 < $(top_srcdir)/Matrix/t3 + -./cs_cl_demo2 < $(top_srcdir)/Matrix/t4 + -./cs_cl_demo2 < $(top_srcdir)/Matrix/c_west0067 + -./cs_cl_demo2 < $(top_srcdir)/Matrix/c_mbeacxc + -./cs_cl_demo2 < $(top_srcdir)/Matrix/young1c + -./cs_cl_demo2 < $(top_srcdir)/Matrix/qc324 + -./cs_cl_demo2 < $(top_srcdir)/Matrix/neumann + -./cs_cl_demo2 < $(top_srcdir)/Matrix/c4 + -./cs_cl_demo3 < $(top_srcdir)/Matrix/c4 + -./cs_cl_demo2 < $(top_srcdir)/Matrix/mhd1280b + -./cs_cl_demo3 < $(top_srcdir)/Matrix/mhd1280b + -./cs_idemo < $(top_srcdir)/Matrix/t2 + -./cs_ldemo < $(top_srcdir)/Matrix/t2 diff --git a/Include/Makefile.am b/Include/Makefile.am new file mode 100644 --- /dev/null +++ b/Include/Makefile.am @@ -0,0 +1 @@ +pkginclude_HEADERS = cs.h diff --git a/Makefile.am b/Makefile.am new file mode 100644 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,5 @@ +SUBDIRS = Include Source Matrix Demo +EXTRA_DIST = README.txt Doc/ChangeLog Doc/License.txt Doc/lesser.txt + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = cxsparse.pc diff --git a/Matrix/Makefile.am b/Matrix/Makefile.am new file mode 100644 --- /dev/null +++ b/Matrix/Makefile.am @@ -0,0 +1,23 @@ +dist_noinst_DATA = \ + ash219 \ + bcsstk01 \ + bcsstk16 \ + c4 \ + c_ibm32a \ + c_ibm32b \ + c_mbeacxc \ + c_west0067 \ + fs_183_1 \ + ibm32a \ + ibm32b \ + lp_afiro \ + mbeacxc \ + mhd1280b \ + neumann \ + qc324 \ + t1 \ + t2 \ + t3 \ + t4 \ + west0067 \ + young1c diff --git a/Source/Makefile.am b/Source/Makefile.am new file mode 100644 --- /dev/null +++ b/Source/Makefile.am @@ -0,0 +1,72 @@ +AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS) + +CS_SOURCE = \ + cs_add.c \ + cs_amd.c \ + cs_chol.c \ + cs_cholsol.c \ + cs_compress.c \ + cs_counts.c \ + cs_cumsum.c \ + cs_dfs.c \ + cs_dmperm.c \ + cs_droptol.c \ + cs_dropzeros.c \ + cs_dupl.c \ + cs_entry.c \ + cs_ereach.c \ + cs_etree.c \ + cs_fkeep.c \ + cs_gaxpy.c \ + cs_happly.c \ + cs_house.c \ + cs_ipvec.c \ + cs_leaf.c \ + cs_load.c \ + cs_lsolve.c \ + cs_ltsolve.c \ + cs_lu.c \ + cs_lusol.c \ + cs_malloc.c \ + cs_maxtrans.c \ + cs_multiply.c \ + cs_norm.c \ + cs_permute.c \ + cs_pinv.c \ + cs_post.c \ + cs_print.c \ + cs_pvec.c \ + cs_qr.c \ + cs_qrsol.c \ + cs_randperm.c \ + cs_reach.c \ + cs_scatter.c \ + cs_scc.c \ + cs_schol.c \ + cs_spsolve.c \ + cs_sqr.c \ + cs_symperm.c \ + cs_tdfs.c \ + cs_transpose.c \ + cs_updown.c \ + cs_usolve.c \ + cs_util.c \ + cs_utsolve.c + +lib_LTLIBRARIES = libcxsparse.la +noinst_LTLIBRARIES = libcxsparse_di.la libcxsparse_dl.la libcxsparse_ci.la libcxsparse_cl.la + +libcxsparse_di_la_SOURCES = $(CS_SOURCE) + +libcxsparse_dl_la_SOURCES = $(CS_SOURCE) +libcxsparse_dl_la_CPPFLAGS = $(AM_CPPFLAGS) -DCS_LONG + +libcxsparse_ci_la_SOURCES = $(CS_SOURCE) +libcxsparse_ci_la_CPPFLAGS = $(AM_CPPFLAGS) -DCS_COMPLEX + +libcxsparse_cl_la_SOURCES = $(CS_SOURCE) +libcxsparse_cl_la_CPPFLAGS = $(AM_CPPFLAGS) -DCS_LONG -DCS_COMPLEX + +libcxsparse_la_SOURCES = cs_convert.c +libcxsparse_la_LIBADD = libcxsparse_di.la libcxsparse_dl.la libcxsparse_ci.la libcxsparse_cl.la -lm +libcxsparse_la_LDFLAGS = -no-undefined -release $(PACKAGE_VERSION) diff --git a/configure.ac b/configure.ac new file mode 100644 --- /dev/null +++ b/configure.ac @@ -0,0 +1,45 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ([2.69]) +AC_INIT([CXSparse],[3.1.4],[DrTimothyAldenDavis@gmail.com],[cxsparse],[http://www.suitesparse.com/]) +AC_CONFIG_SRCDIR([Source/cs_print.c]) +AC_CONFIG_HEADERS([config.h]) +AM_INIT_AUTOMAKE([foreign]) +LT_INIT + +# Checks for programs. +AC_PROG_INSTALL +AC_PROG_CC + +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])]) + +# Checks for header files. +AC_CHECK_HEADERS([limits.h stdlib.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_TYPE_SIZE_T + +# Checks for library functions. +AC_FUNC_MALLOC +AC_FUNC_REALLOC +AC_CHECK_FUNCS([sqrt]) + +LIBS=$LIBS_SAVED + +AC_CONFIG_FILES([ + cxsparse.pc + Makefile + Demo/Makefile + Include/Makefile + Matrix/Makefile + Source/Makefile]) +AC_OUTPUT diff --git a/cxsparse.pc.in b/cxsparse.pc.in new file mode 100644 --- /dev/null +++ b/cxsparse.pc.in @@ -0,0 +1,13 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: @PACKAGE_NAME@ +Description: An extended version of CSparse +Version: @PACKAGE_VERSION@ +URL: @PACKAGE_URL@ +Requires.private: suitesparseconfig +Libs: -L${libdir} -lcxsparse +Libs.private: -lm +Cflags: -I${includedir}/cxsparse