diff --git a/Demo/Makefile.am b/Demo/Makefile.am new file mode 100644 --- /dev/null +++ b/Demo/Makefile.am @@ -0,0 +1,57 @@ +AM_CPPFLAGS = -I$(top_srcdir)/Include $(AMD_CFLAGS) $(SUITESPARSECONFIG_CFLAGS) +LDADD = $(top_builddir)/Source/libldl.la + +EXTRA_DIST = \ + ldlamd.out \ + ldllamd.out \ + ldlmain.out \ + ldllmain.out \ + ldlsimple.out \ + ldllsimple.out + +# Disable the .out implicit pattern rule. Prevents GNU make from +# adding bogus dependencies for the .out files listed above. +%.out: % + +check_PROGRAMS = \ + ldlmain \ + ldllmain \ + ldlsimple \ + ldllsimple + +if AMD +check_PROGRAMS += \ + ldlamd \ + ldllamd + +ldlamd_SOURCES = ldlmain.c +ldlamd_CPPFLAGS = $(AM_CPPFLAGS) -DUSE_AMD +ldlamd_LDADD = $(LDADD) $(AMD_LIBS) + +ldllamd_SOURCES = ldlmain.c +ldllamd_CPPFLAGS = $(AM_CPPFLAGS) -DUSE_AMD -DLDL_LONG +ldllamd_LDADD = $(LDADD) $(AMD_LIBS) +endif + +ldlmain_SOURCES = ldlmain.c + +ldllmain_SOURCES = ldlmain.c +ldllmain_CPPFLAGS = $(AM_CPPFLAGS) -DLDL_LONG + +ldlsimple_SOURCES = ldlsimple.c + +ldllsimple_SOURCES = ldlsimple.c +ldllsimple_CPPFLAGS = $(AM_CPPFLAGS) -DLDL_LONG + +check-local: $(check_PROGRAMS) $(check_PROGRAMS:=.out) + @for i in $(check_PROGRAMS); do \ + echo "Testing $$i"; \ + (cd $(srcdir) && $(abs_builddir)/$$i$(EXEEXT)) > my_$$i.out; \ + if diff -u $(srcdir)/$$i.out my_$$i.out; then \ + echo "Test $$i PASSED."; \ + else \ + echo "Test $$i FAILED."; \ + fi; \ + done + +CLEANFILES = my_*.out diff --git a/Doc/Makefile.am b/Doc/Makefile.am new file mode 100644 --- /dev/null +++ b/Doc/Makefile.am @@ -0,0 +1,23 @@ +EXTRA_DIST = ChangeLog lesser.txt + +dist_noinst_DATA = ldl_userguide.tex ldl.bib +dist_pdf_DATA = ldl_userguide.pdf + +.INTERMEDIATE: ldl_userguide.bib +ldl_userguide.bib: ldl.bib + $(LN_S) -f $< $@ + +TEX = TEXINPUTS="$(srcdir):" pdflatex -interaction nonstopmode -file-line-error +BIB = BIBINPUTS="$(srcdir):" bibtex +%.pdf: %.tex %.bbl + $(TEX) $* + while grep -q "Rerun to get cross-references right" $*.log; do \ + $(TEX) $*; \ + done +%.bbl: %.aux %.bib + $(BIB) $* +%.aux: %.tex + $(TEX) $* + +CLEANFILES = *.aux *.bbl *.blg *.log *.toc +MAINTAINERCLEANFILES = $(dist_pdf_DATA) 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 = ldl.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 Doc +EXTRA_DIST = README.txt + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = ldl.pc diff --git a/Matrix/Makefile.am b/Matrix/Makefile.am new file mode 100644 --- /dev/null +++ b/Matrix/Makefile.am @@ -0,0 +1,4 @@ +dist_noinst_DATA = \ + A01 A02 A03 A04 A05 A06 A07 A08 A09 A10 \ + A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 \ + A21 A22 A23 A24 A25 A26 A27 A28 A29 A30 diff --git a/Source/Makefile.am b/Source/Makefile.am new file mode 100644 --- /dev/null +++ b/Source/Makefile.am @@ -0,0 +1,16 @@ +AM_CPPFLAGS = -I$(top_srcdir)/Include $(SUITESPARSECONFIG_CFLAGS) + +LDLSRC = \ + ldl.c + +lib_LTLIBRARIES = libldl.la +noinst_LTLIBRARIES = libldli.la libldll.la + +libldli_la_SOURCES = $(LDLSRC) + +libldll_la_SOURCES = $(LDLSRC) +libldll_la_CPPFLAGS = $(AM_CPPFLAGS) -DLDL_LONG + +libldl_la_SOURCES = +libldl_la_LIBADD = libldli.la libldll.la +libldl_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,50 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ([2.69]) +AC_INIT([LDL],[2.2.1],[DrTimothyAldenDavis@gmail.com],[ldl],[http://www.suitesparse.com/]) +AC_CONFIG_SRCDIR([Source/ldl.c]) +AC_CONFIG_HEADERS([config.h]) +AM_INIT_AUTOMAKE([foreign]) +LT_INIT + +# Checks for programs. +AC_PROG_INSTALL +AC_PROG_CC +AC_PROG_LN_S + +LIBS_SAVED=$LIBS + +# Checks for libraries. +PKG_PROG_PKG_CONFIG +PKG_CHECK_MODULES([SUITESPARSECONFIG],[suitesparseconfig], + [], + [AC_MSG_ERROR([cannot find suitesparseconfig])]) +PKG_CHECK_MODULES([AMD],[amd], + [amd="yes"], + [amd="no"]) +if test "x$amd" != "xyes"; then + AC_MSG_WARN([cannot find amd, disabling some functionality]) +fi + +# Checks for header files. +AC_CHECK_HEADERS([stdlib.h]) + +# Checks for typedefs, structures, and compiler characteristics. + +# Checks for library functions. +AC_FUNC_MALLOC + +LIBS=$LIBS_SAVED + +AM_CONDITIONAL([AMD], [test "x$amd" = "xyes"]) + +AC_CONFIG_FILES([ + ldl.pc + Makefile + Demo/Makefile + Doc/Makefile + Include/Makefile + Matrix/Makefile + Source/Makefile]) +AC_OUTPUT diff --git a/ldl.pc.in b/ldl.pc.in new file mode 100644 --- /dev/null +++ b/ldl.pc.in @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: @PACKAGE_NAME@ +Description: A simple LDL^T factorization +Version: @PACKAGE_VERSION@ +URL: @PACKAGE_URL@ +Requires.private: suitesparseconfig +Libs: -L${libdir} -lldl +Cflags: -I${includedir}/ldl