# HG changeset patch # User Francesco Faccio # Date 1471911208 -7200 # Node ID 31bd8a50d44c4d1c8ad51b4d16a9485fadc98549 # Parent 9baa19102908e9abb4dd107c8cd3dce139a7e188 Add Sundials library support * build-aux/subst-config-vals.in.sh: Add configuration variables for sundials_ida, sundials_nvecserial and klu libraries. * build-aux/subst-cross-config-vals.in.sh: Add configuration variables for sundials_ida, sundials_nvecserial and klu libraries. * configure.ac: Check for sundials_ida, sundials_nvecserial and klu headers and functions. Check whether sundials_ida has been configured with double precision. Set configuration variables and flags. * libinterp/build-env.h: Add variables to build_env namespace. * libinterp/build-env.in.cc: Add variables to build_env namespace. * m4/acinclude.m4: Add macro to test whether sundials_ida has been configured with double precision. * src/mkoctfile.in.cc: Get variables in order to generate oct-file. diff -r 9baa19102908 -r 31bd8a50d44c build-aux/subst-config-vals.in.sh --- a/build-aux/subst-config-vals.in.sh Fri Dec 16 00:10:27 2016 -0500 +++ b/build-aux/subst-config-vals.in.sh Tue Aug 23 02:13:28 2016 +0200 @@ -95,6 +95,9 @@ HDF5_LDFLAGS="@HDF5_LDFLAGS@" HDF5_LIBS="@HDF5_LIBS@" includedir="@includedir@" +KLU_CPPFLAGS="@KLU_CPPFLAGS@" +KLU_LDFLAGS="@KLU_LDFLAGS@" +KLU_LIBS="@KLU_LIBS@" LAPACK_LIBS="@LAPACK_LIBS@" LD_CXX="@LD_CXX@" LDFLAGS="@LDFLAGS@" @@ -249,6 +252,9 @@ $SED -e "s|%OCTAVE_CONF_HDF5_LDFLAGS%|\"${HDF5_LDFLAGS}\"|" \ -e "s|%OCTAVE_CONF_HDF5_LIBS%|\"${HDF5_LIBS}\"|" \ -e "s|%OCTAVE_CONF_INCLUDEDIR%|\"${includedir}\"|" \ + -e "s|%OCTAVE_CONF_KLU_CPPFLAGS%|\"${KLU_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_KLU_LDFLAGS%|\"${KLU_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_KLU_LIBS%|\"${KLU_LIBS}\"|" \ -e "s|%OCTAVE_CONF_LAPACK_LIBS%|\"${LAPACK_LIBS}\"|" \ -e "s|%OCTAVE_CONF_LD_CXX%|\"${LD_CXX}\"|" \ -e "s|%OCTAVE_CONF_LDFLAGS%|\"${LDFLAGS}\"|" \ diff -r 9baa19102908 -r 31bd8a50d44c build-aux/subst-cross-config-vals.in.sh --- a/build-aux/subst-cross-config-vals.in.sh Fri Dec 16 00:10:27 2016 -0500 +++ b/build-aux/subst-cross-config-vals.in.sh Tue Aug 23 02:13:28 2016 +0200 @@ -107,6 +107,9 @@ HDF5_LDFLAGS="@HDF5_LDFLAGS@" HDF5_LIBS="@HDF5_LIBS@" includedir="@includedir@" +KLU_CPPFLAGS="@KLU_CPPFLAGS@" +KLU_LDFLAGS="@KLU_LDFLAGS@" +KLU_LIBS="@KLU_LIBS@" LAPACK_LIBS="@LAPACK_LIBS@" LD_CXX="@LD_CXX@" LDFLAGS="@LDFLAGS@" @@ -158,6 +161,12 @@ SH_LDFLAGS="@SH_LDFLAGS@" STATIC_LIBS="@STATIC_LIBS@" SUITESPARSE_CONFIG_LIBS="@SUITESPARSE_CONFIG_LIBS@" +SUNDIALS_IDA_CPPFLAGS="@SUNDIALS_IDA_CPPFLAGS@" +SUNDIALS_IDA_LDFLAGS="@SUNDIALS_IDA_LDFLAGS@" +SUNDIALS_IDA_LIBS="@SUNDIALS_IDA_LIBS@" +SUNDIALS_NVECSERIAL_CPPFLAGS="@SUNDIALS_NVECSERIAL_CPPFLAGS@" +SUNDIALS_NVECSERIAL_LDFLAGS="@SUNDIALS_NVECSERIAL_LDFLAGS@" +SUNDIALS_NVECSERIAL_LIBS="@SUNDIALS_NVECSERIAL_LIBS@" TERM_LIBS="@TERM_LIBS@" UMFPACK_CPPFLAGS="@UMFPACK_CPPFLAGS@" UMFPACK_LDFLAGS="@UMFPACK_LDFLAGS@" @@ -253,6 +262,9 @@ $SED -e "s|%OCTAVE_CONF_HDF5_LDFLAGS%|\"${HDF5_LDFLAGS}\"|" \ -e "s|%OCTAVE_CONF_HDF5_LIBS%|\"${HDF5_LIBS}\"|" \ -e "s|%OCTAVE_CONF_INCLUDEDIR%|\"${includedir}\"|" \ + -e "s|%OCTAVE_CONF_KLU_CPPFLAGS%|\"${KLU_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_KLU_LDFLAGS%|\"${KLU_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_KLU_LIBS%|\"${KLU_LIBS}\"|" \ -e "s|%OCTAVE_CONF_LAPACK_LIBS%|\"${LAPACK_LIBS}\"|" \ -e "s|%OCTAVE_CONF_LD_CXX%|\"${LD_CXX}\"|" \ -e "s|%OCTAVE_CONF_LDFLAGS%|\"${LDFLAGS}\"|" \ @@ -312,6 +324,12 @@ -e "s|%OCTAVE_CONF_SH_LDFLAGS%|\"${SH_LDFLAGS}\"|" \ -e "s|%OCTAVE_CONF_STATIC_LIBS%|\"${STATIC_LIBS}\"|" \ -e "s|%OCTAVE_CONF_SUITESPARSE_CONFIG_LIBS%|\"${SUITESPARSE_CONFIG_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_SUNDIALS_IDA_CPPFLAGS%|\"${SUNDIALS_IDA_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_SUNDIALS_IDA_LDFLAGS%|\"${SUNDIALS_IDA_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_SUNDIALS_IDA_LIBS%|\"${SUNDIALS_IDA_LIBS}\"|" \ + -e "s|%OCTAVE_CONF_SUNDIALS_NVECSERIAL_CPPFLAGS%|\"${SUNDIALS_NVECSERIAL_CPPFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_SUNDIALS_NVECSERIAL_LDFLAGS%|\"${SUNDIALS_NVECSERIAL_LDFLAGS}\"|" \ + -e "s|%OCTAVE_CONF_SUNDIALS_NVECSERIAL_LIBS%|\"${SUNDIALS_NVECSERIAL_LIBS}\"|" \ -e "s|%OCTAVE_CONF_TERM_LIBS%|\"${TERM_LIBS}\"|" \ -e "s|%OCTAVE_CONF_UMFPACK_CPPFLAGS%|\"${UMFPACK_CPPFLAGS}\"|" \ -e "s|%OCTAVE_CONF_UMFPACK_LDFLAGS%|\"${UMFPACK_LDFLAGS}\"|" \ diff -r 9baa19102908 -r 31bd8a50d44c configure.ac --- a/configure.ac Fri Dec 16 00:10:27 2016 -0500 +++ b/configure.ac Tue Aug 23 02:13:28 2016 +0200 @@ -1478,6 +1478,34 @@ FFT_DIR="fftpack" AC_SUBST(FFT_DIR) +### Check for KLU library and header. +OCTAVE_CHECK_LIB(klu, KLU, + [KLU library not found. This will result in some lack of functionality for sparse matrices], + [suitesparse/klu.h ufsparse/klu.h klu/klu.h klu.h], [klu_solve], + [], [don't use KLU library, disable some sparse matrix functionality]) + +### Check for SUNDIALS_IDA library and header. +save_CPPFLAGS="$CPPFLAGS" +save_LIBS="$LIBS" +CPPFLAGS="$KLU_CPPFLAGS $CPPFLAGS" +LIBS="$KLU_LDFLAGS $KLU_LIBS $LIBS" +OCTAVE_CHECK_LIB(sundials_ida, SUNDIALS_IDA, + [SUNDIALS_IDA library configured with klu not found. Solvers ode15i and ode15s will be disabled.], + [ida/ida.h ida.h], [IDAKLU], [], [], + [warn_sundials_ida= + OCTAVE_CHECK_SIZEOF_SUNDIALS_IDA_REALTYPE]) +LIBS="$save_LIBS" +CPPFLAGS="$save_CPPFLAGS" + +## Additional check for sundials_nvecserial library +OCTAVE_CHECK_LIB(sundials_nvecserial, SUNDIALS_NVECSERIAL, + [SUNDIALS_NVECSERIAL library not found. Solvers ode15i and ode15s will be disabled.], + [nvector/nvector_serial.h nvector_serial.h ], [N_VNew_Serial],[],[],[]) + +if test -n "$SUNDIALS_IDA_LIBS" && test -n "$SUNDIALS_NVECSERIAL_LIBS" && test $octave_cv_sizeof_ida_double = yes; then + AC_DEFINE(HAVE_SUNDIALS, 1, [Define if you have both sundials_ida and sundials_nvecserial libraries.]) +fi + ### Check for GLPK library and header. save_CPPFLAGS="$CPPFLAGS" @@ -2951,6 +2979,12 @@ FFTW_XLIBS="$FFTW3_LIBS $FFTW3F_LIBS" +SUNDIALS_XCPPFLAGS="$SUNDIALS_IDA_CPPFLAGS $SUNDIALS_NVECSERIAL_CPPFLAGS $KLU_CPPFLAGS" + +SUNDIALS_XLDFLAGS="$SUNDIALS_IDA_LDFLAGS $SUNDIALS_NVECSERIAL_LDFLAGS $KLU_LDFLAGS" + +SUNDIALS_XLIBS="$SUNDIALS_IDA_LIBS $SUNDIALS_NVECSERIAL_LIBS $KLU_LIBS" + SPARSE_XCPPFLAGS="$CHOLMOD_CPPFLAGS $UMFPACK_CPPFLAGS $AMD_CPPFLAGS $CAMD_CPPFLAGS $COLAMD_CPPFLAGS $CCOLAMD_CPPFLAGS $CXSPARSE_CPPFLAGS" SPARSE_XLDFLAGS="$CHOLMOD_LDFLAGS $UMFPACK_LDFLAGS $AMD_LDFLAGS $CAMD_LDFLAGS $COLAMD_LDFLAGS $CCOLAMD_LDFLAGS $CXSPARSE_LDFLAGS" @@ -2961,6 +2995,10 @@ AC_SUBST(FFTW_XLDFLAGS) AC_SUBST(FFTW_XLIBS) +AC_SUBST(SUNDIALS_XCPPFLAGS) +AC_SUBST(SUNDIALS_XLDFLAGS) +AC_SUBST(SUNDIALS_XLIBS) + AC_SUBST(SPARSE_XCPPFLAGS) AC_SUBST(SPARSE_XLDFLAGS) AC_SUBST(SPARSE_XLIBS) @@ -2969,9 +3007,9 @@ AC_SUBST(GNULIB_LINK_DEPS) -LIBOCTAVE_LINK_DEPS="$GNULIB_LINK_DEPS $CURL_LIBS $SPARSE_XLIBS $ARPACK_LIBS $QRUPDATE_LIBS $FFTW_XLIBS $LAPACK_LIBS $BLAS_LIBS $READLINE_LIBS $TERM_LIBS $LIBGLOB $PCRE_LIBS $DL_LIBS $PTHREAD_LIBS $FLIBS $LIBS" - -LIBOCTAVE_LINK_OPTS="$CURL_LDFLAGS $SPARSE_XLDFLAGS $ARPACK_LDFLAGS $QRUPDATE_LDFLAGS $FFTW_XLDFLAGS" +LIBOCTAVE_LINK_DEPS="$GNULIB_LINK_DEPS $CURL_LIBS $SPARSE_XLIBS $ARPACK_LIBS $QRUPDATE_LIBS $FFTW_XLIBS $SUNDIALS_XLIBS $LAPACK_LIBS $BLAS_LIBS $READLINE_LIBS $TERM_LIBS $LIBGLOB $PCRE_LIBS $DL_LIBS $PTHREAD_LIBS $FLIBS $LIBS" + +LIBOCTAVE_LINK_OPTS="$CURL_LDFLAGS $SPARSE_XLDFLAGS $ARPACK_LDFLAGS $QRUPDATE_LDFLAGS $FFTW_XLDFLAGS $SUNDIALS_XLDFLAGS" AC_SUBST(LIBOCTAVE_LINK_DEPS) AC_SUBST(LIBOCTAVE_LINK_OPTS) @@ -2982,9 +3020,9 @@ LIBOCTINTERP_LINK_DEPS="$DLDFCN_LIBS" fi -LIBOCTINTERP_LINK_DEPS="$LIBOCTINTERP_LINK_DEPS $FT2_LIBS $HDF5_LIBS $MAGICK_LIBS $Z_LIBS $FFTW_XLIBS $OPENGL_LIBS $FONTCONFIG_LIBS $FREETYPE_LIBS $X11_LIBS $CARBON_LIBS $GL2PS_LIBS $LLVM_LIBS $JAVA_LIBS $LAPACK_LIBS" - -LIBOCTINTERP_LINK_OPTS="$FT2_LDFLAGS $HDF5_LDFLAGS $MAGICK_LDFLAGS $Z_LDFLAGS $FFTW_XLDFLAGS $LLVM_LDFLAGS" +LIBOCTINTERP_LINK_DEPS="$LIBOCTINTERP_LINK_DEPS $FT2_LIBS $HDF5_LIBS $MAGICK_LIBS $Z_LIBS $FFTW_XLIBS $SUNDIALS_XLIBS $OPENGL_LIBS $FONTCONFIG_LIBS $FREETYPE_LIBS $X11_LIBS $CARBON_LIBS $GL2PS_LIBS $LLVM_LIBS $JAVA_LIBS $LAPACK_LIBS" + +LIBOCTINTERP_LINK_OPTS="$FT2_LDFLAGS $HDF5_LDFLAGS $MAGICK_LDFLAGS $Z_LDFLAGS $FFTW_XLDFLAGS $SUNDIALS_XLDFLAGS $LLVM_LDFLAGS" OCTAVE_LINK_DEPS="" OCTAVE_LINK_OPTS="" @@ -3255,6 +3293,9 @@ Java JVM path: $JAVA_LDPATH Java CPPFLAGS: $JAVA_CPPFLAGS Java libraries: $JAVA_LIBS + KLU CPPFLAGS: $KLU_CPPFLAGS + KLU LDFLAGS: $KLU_LDFLAGS + KLU libraries: $KLU_LIBS LAPACK libraries: $LAPACK_LIBS LLVM CPPFLAGS: $LLVM_CPPFLAGS LLVM LDFLAGS: $LLVM_LDFLAGS @@ -3291,6 +3332,12 @@ Sndfile LDFLAGS: $SNDFILE_LDFLAGS Sndfile libraries: $SNDFILE_LIBS SuiteSparse config libraries: $SUITESPARSE_CONFIG_LIBS + SUNDIALS_IDA CPPFLAGS: $SUNDIALS_IDA_CPPFLAGS + SUNDIALS_IDA LDFLAGS: $SUNDIALS_IDA_LDFLAGS + SUNDIALS_IDA libraries: $SUNDIALS_IDA_LIBS + SUNDIALS_NVECSERIAL CPPFLAGS: $SUNDIALS_NVECSERIAL_CPPFLAGS + SUNDIALS_NVECSERIAL LDFLAGS: $SUNDIALS_NVECSERIAL_LDFLAGS + SUNDIALS_NVECSERIAL libraries: $SUNDIALS_NVECSERIAL_LIBS TERM libraries: $TERM_LIBS UMFPACK CPPFLAGS: $UMFPACK_CPPFLAGS UMFPACK LDFLAGS: $UMFPACK_LDFLAGS diff -r 9baa19102908 -r 31bd8a50d44c libinterp/build-env.h --- a/libinterp/build-env.h Fri Dec 16 00:10:27 2016 -0500 +++ b/libinterp/build-env.h Tue Aug 23 02:13:28 2016 +0200 @@ -104,6 +104,9 @@ extern const char *HDF5_LDFLAGS; extern const char *HDF5_LIBS; extern const char *INCLUDEDIR; + extern const char *KLU_CPPFLAGS; + extern const char *KLU_LDFLAGS; + extern const char *KLU_LIBS; extern const char *LAPACK_LIBS; extern const char *LDFLAGS; extern const char *LD_CXX; @@ -155,6 +158,12 @@ extern const char *SH_LDFLAGS; extern const char *STATIC_LIBS; extern const char *SUITESPARSE_CONFIG_LIBS; + extern const char *SUNDIALS_IDA_CPPFLAGS; + extern const char *SUNDIALS_IDA_LDFLAGS; + extern const char *SUNDIALS_IDA_LIBS; + extern const char *SUNDIALS_NVECSERIAL_CPPFLAGS; + extern const char *SUNDIALS_NVECSERIAL_LDFLAGS; + extern const char *SUNDIALS_NVECSERIAL_LIBS; extern const char *TERM_LIBS; extern const char *UMFPACK_CPPFLAGS; extern const char *UMFPACK_LDFLAGS; diff -r 9baa19102908 -r 31bd8a50d44c libinterp/build-env.in.cc --- a/libinterp/build-env.in.cc Fri Dec 16 00:10:27 2016 -0500 +++ b/libinterp/build-env.in.cc Tue Aug 23 02:13:28 2016 +0200 @@ -173,6 +173,12 @@ const char *INCLUDEDIR = %OCTAVE_CONF_INCLUDEDIR%; + const char *KLU_CPPFLAGS = %OCTAVE_CONF_KLU_CPPFLAGS%; + + const char *KLU_LDFLAGS = %OCTAVE_CONF_KLU_LDFLAGS%; + + const char *KLU_LIBS = %OCTAVE_CONF_KLU_LIBS%; + const char *LAPACK_LIBS = %OCTAVE_CONF_LAPACK_LIBS%; const char *LDFLAGS = %OCTAVE_CONF_LDFLAGS%; @@ -275,6 +281,18 @@ const char *SUITESPARSE_CONFIG_LIBS = %OCTAVE_CONF_SUITESPARSE_CONFIG_LIBS%; + const char *SUNDIALS_IDA_CPPFLAGS = %OCTAVE_CONF_SUNDIALS_IDA_CPPFLAGS%; + + const char *SUNDIALS_IDA_LDFLAGS = %OCTAVE_CONF_SUNDIALS_IDA_LDFLAGS%; + + const char *SUNDIALS_IDA_LIBS = %OCTAVE_CONF_SUNDIALS_IDA_LIBS%; + + const char *SUNDIALS_NVECSERIAL_CPPFLAGS = %OCTAVE_CONF_SUNDIALS_NVECSERIAL_CPPFLAGS%; + + const char *SUNDIALS_NVECSERIAL_LDFLAGS = %OCTAVE_CONF_SUNDIALS_NVECSERIAL_LDFLAGS%; + + const char *SUNDIALS_NVECSERIAL_LIBS = %OCTAVE_CONF_SUNDIALS_NVECSERIAL_LIBS%; + const char *TERM_LIBS = %OCTAVE_CONF_TERM_LIBS%; const char *UMFPACK_CPPFLAGS = %OCTAVE_CONF_UMFPACK_CPPFLAGS%; diff -r 9baa19102908 -r 31bd8a50d44c m4/acinclude.m4 --- a/m4/acinclude.m4 Fri Dec 16 00:10:27 2016 -0500 +++ b/m4/acinclude.m4 Tue Aug 23 02:13:28 2016 +0200 @@ -1698,6 +1698,32 @@ ]) ]) dnl +dnl Check whether sundials_ida library is configured with double precision realtype +dnl +AC_DEFUN([OCTAVE_CHECK_SIZEOF_SUNDIALS_IDA_REALTYPE], [ + AC_CACHE_CHECK([whether sundials_ida is configured with double precision realtype], + [octave_cv_sizeof_ida_double], + [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ + #if defined (HAVE_IDA_IDA_H) + #include + #else + #include + #endif + #include + ]], [[ + assert (sizeof (double) == sizeof (realtype)); + ]])], + octave_cv_sizeof_ida_double=yes, + octave_cv_sizeof_ida_double=no) + ]) + if test $octave_cv_sizeof_ida_double = yes; then + AC_DEFINE(HAVE_SUNDIALS_IDA_DOUBLE, 1, + [Define to 1 if sundials_ida is configured with realtype as double.]) + else + warn_sundials_ida="sundials_ida library found, but it's not configured with double precision realtype; function ode15i and ode15s will be disabled" + fi +]) +dnl dnl Add warning to final summary. dnl AC_DEFUN([OCTAVE_CONFIGURE_WARNING], [ diff -r 9baa19102908 -r 31bd8a50d44c src/mkoctfile.in.cc --- a/src/mkoctfile.in.cc Fri Dec 16 00:10:27 2016 -0500 +++ b/src/mkoctfile.in.cc Tue Aug 23 02:13:28 2016 +0200 @@ -33,6 +33,7 @@ #include #include #include +#include #include #if defined (CROSS) @@ -222,7 +223,9 @@ %OCTAVE_CONF_FFTW3F_LDFLAGS%); vars["FFTW3F_LIBS"] = get_variable ("FFTW3F_LIBS", %OCTAVE_CONF_FFTW3F_LIBS%); - + vars["KLU_LDFLAGS"] = get_variable ("KLU_LDFLAGS", + %OCTAVE_CONF_KLU_LDFLAGS%); + vars["KLU_LIBS"] = get_variable ("KLU_LIBS", %OCTAVE_CONF_KLU_LIBS%); vars["LIBS"] = get_variable ("LIBS", %OCTAVE_CONF_LIBS%); vars["FLIBS"] = get_variable ("FLIBS", %OCTAVE_CONF_FLIBS%); @@ -250,6 +253,12 @@ vars["F77_INTEGER8_FLAG"] = get_variable ("F77_INTEGER8_FLAG", %OCTAVE_CONF_F77_INTEGER_8_FLAG%); + vars["SUNDIALS_IDA_LDFLAGS"] = get_variable ("SUNDIALS_IDA_LDFLAGS", + %OCTAVE_CONF_SUNDIALS_IDA_LDFLAGS%); + vars["SUNDIALS_IDA_LIBS"] = get_variable ("SUNDIALS_IDA_LIBS", %OCTAVE_CONF_SUNDIALS_IDA_LIBS%); + vars["SUNDIALS_NVECSERIAL_LDFLAGS"] = get_variable ("SUNDIALS_NVECSERIAL_LDFLAGS", + %OCTAVE_CONF_SUNDIALS_NVECSERIAL_LDFLAGS%); + vars["SUNDIALS_NVECSERIAL_LIBS"] = get_variable ("SUNDIALS_NVECSERIAL_LIBS", %OCTAVE_CONF_SUNDIALS_NVECSERIAL_LIBS%); vars["ALL_FFLAGS"] = vars["FFLAGS"] + " " + vars["F77_INTEGER8_FLAG"]; @@ -266,9 +275,12 @@ = (vars["LIBOCTINTERP"] + " " + vars["LIBOCTAVE"] + " " + vars["SPECIAL_MATH_LIB"]); - vars["FFTW_LIBS"] - = (vars["FFTW3_LDFLAGS"] + " " + vars["FFTW3_LIBS"] + " " - + vars["FFTW3F_LDFLAGS"] + " " + vars["FFTW3F_LIBS"]); + vars["FFTW_LIBS"] = vars["FFTW3_LDFLAGS"] + " " + vars["FFTW3_LIBS"] + " " + + vars["FFTW3F_LDFLAGS"] + " " + vars["FFTW3F_LIBS"]; + + vars["SUNDIALS_LIBS"] = vars["SUNDIALS_IDA_LDFLAGS"] + " " + vars["SUNDIALS_IDA_LIBS"] + " " + + vars["KLU_LDFLAGS"] + " " + vars["KLU_LIBS"] + " " + + vars["SUNDIALS_NVECSERIAL_LDFLAGS"] + " " + vars["SUNDIALS_NVECSERIAL_LIBS"]; } static std::string usage_msg = "usage: mkoctfile [options] file ...";