From d384cf9803a8672e0c2b7ff4b771e01ed0e6fe98 Mon Sep 17 00:00:00 2001 From: Francesco Lannutti Date: Sat, 3 May 2014 12:59:24 +0200 Subject: [PATCH] Fixed KLU package to support libngspice.so compilation --- src/Makefile.am | 4 ++ src/maths/KLU/Makefile.am | 59 +++++++++--------------- src/maths/KLU/klu_version.h | 88 ++++++++++++++++++++++++++++-------- src/maths/sparse/Makefile.am | 3 +- 4 files changed, 95 insertions(+), 59 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index 1df309e4a..36554143f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -544,6 +544,10 @@ libngspice_la_LIBADD += \ ciderlib/support/libcidersuprt.la endif +if KLU_WANTED +libngspice_la_LIBADD += maths/KLU/libKLU.la +endif + libngspice_la_LIBADD += \ maths/deriv/libderiv.la \ maths/cmaths/libcmaths.la \ diff --git a/src/maths/KLU/Makefile.am b/src/maths/KLU/Makefile.am index b972ae12c..daaacf1fe 100644 --- a/src/maths/KLU/Makefile.am +++ b/src/maths/KLU/Makefile.am @@ -3,27 +3,9 @@ noinst_LTLIBRARIES = libKLU_real.la libKLU_complex.la libKLU.la libKLU_real_la_SOURCES = \ - amd_1.c \ - amd_2.c \ - amd_aat.c \ - amd_control.c \ - amd_defaults.c \ - amd_dump.c \ - amd_global.c \ - amd_info.c \ - amd_order.c \ - amd_postorder.c \ - amd_post_tree.c \ - amd_preprocess.c \ - amd_valid.c \ - btf_maxtrans.c \ - btf_order.c \ - btf_strongcomp.c \ - colamd.c \ - colamd_global.c \ - klu.c \ klu_analyze.c \ klu_analyze_given.c \ + klu.c \ klu_defaults.c \ klu_diagnostics.c \ klu_dump.c \ @@ -44,27 +26,9 @@ libKLU_real_la_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include libKLU_complex_la_SOURCES = \ - amd_1.c \ - amd_2.c \ - amd_aat.c \ - amd_control.c \ - amd_defaults.c \ - amd_dump.c \ - amd_global.c \ - amd_info.c \ - amd_order.c \ - amd_postorder.c \ - amd_post_tree.c \ - amd_preprocess.c \ - amd_valid.c \ - btf_maxtrans.c \ - btf_order.c \ - btf_strongcomp.c \ - colamd.c \ - colamd_global.c \ - klu.c \ klu_analyze.c \ klu_analyze_given.c \ + klu.c \ klu_defaults.c \ klu_diagnostics.c \ klu_dump.c \ @@ -85,6 +49,24 @@ libKLU_complex_la_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include -DCOMPLEX libKLU_la_SOURCES = \ + amd_1.c \ + amd_2.c \ + amd_aat.c \ + amd_control.c \ + amd_defaults.c \ + amd_dump.c \ + amd_global.c \ + amd_info.c \ + amd_order.c \ + amd_postorder.c \ + amd_post_tree.c \ + amd_preprocess.c \ + amd_valid.c \ + btf_maxtrans.c \ + btf_order.c \ + btf_strongcomp.c \ + colamd.c \ + colamd_global.c \ klusmp.c libKLU_la_LIBADD = \ @@ -93,5 +75,6 @@ libKLU_la_LIBADD = \ libKLU_la_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include +AM_CFLAGS = $(STATIC) MAINTAINERCLEANFILES = Makefile.in diff --git a/src/maths/KLU/klu_version.h b/src/maths/KLU/klu_version.h index 9e8812107..8a4f694a2 100644 --- a/src/maths/KLU/klu_version.h +++ b/src/maths/KLU/klu_version.h @@ -62,6 +62,18 @@ #define KLU_condest klu_zl_condest #define KLU_flops klu_zl_flops +// Francesco +#define KLU_analyze klu_zl_analyze +#define KLU_analyze_given klu_zl_analyze_given +#define KLU_alloc_symbolic klu_zl_alloc_symbolic +#define KLU_free_symbolic klu_zl_free_symbolic +#define KLU_defaults klu_zl_defaults +#define KLU_free klu_zl_free +#define KLU_malloc klu_zl_malloc +#define KLU_realloc klu_zl_realloc +#define KLU_add_size_t klu_zl_add_size_t +#define KLU_mult_size_t klu_zl_mult_size_t + #else #define KLU_scale klu_z_scale @@ -85,6 +97,18 @@ #define KLU_condest klu_z_condest #define KLU_flops klu_z_flops +// Francesco +#define KLU_analyze klu_z_analyze +#define KLU_analyze_given klu_z_analyze_given +#define KLU_alloc_symbolic klu_z_alloc_symbolic +#define KLU_free_symbolic klu_z_free_symbolic +#define KLU_defaults klu_z_defaults +#define KLU_free klu_z_free +#define KLU_malloc klu_z_malloc +#define KLU_realloc klu_z_realloc +#define KLU_add_size_t klu_z_add_size_t +#define KLU_mult_size_t klu_z_mult_size_t + #endif #else @@ -112,6 +136,18 @@ #define KLU_condest klu_l_condest #define KLU_flops klu_l_flops +// Francesco +#define KLU_analyze klu_l_analyze +#define KLU_analyze_given klu_l_analyze_given +#define KLU_alloc_symbolic klu_l_alloc_symbolic +#define KLU_free_symbolic klu_l_free_symbolic +#define KLU_defaults klu_l_defaults +#define KLU_free klu_l_free +#define KLU_malloc klu_l_malloc +#define KLU_realloc klu_l_realloc +#define KLU_add_size_t klu_l_add_size_t +#define KLU_mult_size_t klu_l_mult_size_t + #else #define KLU_scale klu_scale @@ -135,6 +171,18 @@ #define KLU_condest klu_condest #define KLU_flops klu_flops +// Francesco +#define KLU_analyze klu_analyze +#define KLU_analyze_given klu_analyze_given +#define KLU_alloc_symbolic klu_alloc_symbolic +#define KLU_free_symbolic klu_free_symbolic +#define KLU_defaults klu_defaults +#define KLU_free klu_free +#define KLU_malloc klu_malloc +#define KLU_realloc klu_realloc +#define KLU_add_size_t klu_add_size_t +#define KLU_mult_size_t klu_mult_size_t + #endif #endif @@ -142,16 +190,16 @@ #ifdef DLONG -#define KLU_analyze klu_l_analyze -#define KLU_analyze_given klu_l_analyze_given -#define KLU_alloc_symbolic klu_l_alloc_symbolic -#define KLU_free_symbolic klu_l_free_symbolic -#define KLU_defaults klu_l_defaults -#define KLU_free klu_l_free -#define KLU_malloc klu_l_malloc -#define KLU_realloc klu_l_realloc -#define KLU_add_size_t klu_l_add_size_t -#define KLU_mult_size_t klu_l_mult_size_t +//#define KLU_analyze klu_l_analyze +//#define KLU_analyze_given klu_l_analyze_given +//#define KLU_alloc_symbolic klu_l_alloc_symbolic +//#define KLU_free_symbolic klu_l_free_symbolic +//#define KLU_defaults klu_l_defaults +//#define KLU_free klu_l_free +//#define KLU_malloc klu_l_malloc +//#define KLU_realloc klu_l_realloc +//#define KLU_add_size_t klu_l_add_size_t +//#define KLU_mult_size_t klu_l_mult_size_t #define KLU_symbolic klu_l_symbolic #define KLU_numeric klu_l_numeric @@ -166,16 +214,16 @@ #else -#define KLU_analyze klu_analyze -#define KLU_analyze_given klu_analyze_given -#define KLU_alloc_symbolic klu_alloc_symbolic -#define KLU_free_symbolic klu_free_symbolic -#define KLU_defaults klu_defaults -#define KLU_free klu_free -#define KLU_malloc klu_malloc -#define KLU_realloc klu_realloc -#define KLU_add_size_t klu_add_size_t -#define KLU_mult_size_t klu_mult_size_t +//#define KLU_analyze klu_analyze +//#define KLU_analyze_given klu_analyze_given +//#define KLU_alloc_symbolic klu_alloc_symbolic +//#define KLU_free_symbolic klu_free_symbolic +//#define KLU_defaults klu_defaults +//#define KLU_free klu_free +//#define KLU_malloc klu_malloc +//#define KLU_realloc klu_realloc +//#define KLU_add_size_t klu_add_size_t +//#define KLU_mult_size_t klu_mult_size_t #define KLU_symbolic klu_symbolic #define KLU_numeric klu_numeric diff --git a/src/maths/sparse/Makefile.am b/src/maths/sparse/Makefile.am index 3ab29a6a4..b4e75e995 100644 --- a/src/maths/sparse/Makefile.am +++ b/src/maths/sparse/Makefile.am @@ -10,13 +10,14 @@ libsparse_la_SOURCES = \ spextra.c \ spfactor.c \ spoutput.c \ - spsmp.c \ spsolve.c \ sputils.c if KLU_WANTED libsparse_la_SOURCES += spCSC.c +else +libsparse_la_SOURCES += spsmp.c endif AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include