diff --git a/Lib/guile/guile_scm.swg b/Lib/guile/guile_scm.swg index dfd5da271..37eef6f33 100644 --- a/Lib/guile/guile_scm.swg +++ b/Lib/guile/guile_scm.swg @@ -26,10 +26,10 @@ else { \ if (!gswig_list_p) { \ gswig_list_p = 1; \ - gswig_result = scm_listify(gswig_result, object, SCM_UNDEFINED); \ + gswig_result = scm_list_n(gswig_result, object, SCM_UNDEFINED); \ } \ else \ - gswig_result = scm_append(scm_listify(gswig_result, scm_listify(object, SCM_UNDEFINED), SCM_UNDEFINED)); \ + gswig_result = scm_append(scm_list_n(gswig_result, scm_list_n(object, SCM_UNDEFINED), SCM_UNDEFINED)); \ } %} diff --git a/Lib/guile/guilemain.i b/Lib/guile/guilemain.i index 925b81fee..809154e99 100644 --- a/Lib/guile/guilemain.i +++ b/Lib/guile/guilemain.i @@ -12,11 +12,6 @@ extern "C" { #endif -/* Debugger interface (don't change the order of the following lines) */ -#define GDB_TYPE SCM -#include -GDB_INTERFACE; - static void inner_main(void *closure, int argc, char **argv) { diff --git a/Lib/guile/typemaps.i b/Lib/guile/typemaps.i index 0d130f523..f2926c163 100644 --- a/Lib/guile/typemaps.i +++ b/Lib/guile/typemaps.i @@ -69,13 +69,13 @@ %typemap(throws) SWIGTYPE { $<ype temp = new $ltype($1); scm_throw(scm_from_locale_symbol((char *) "swig-exception"), - scm_listify(SWIG_NewPointerObj(temp, $&descriptor, 1), + scm_list_n(SWIG_NewPointerObj(temp, $&descriptor, 1), SCM_UNDEFINED)); } %typemap(throws) SWIGTYPE & { scm_throw(scm_from_locale_symbol((char *) "swig-exception"), - scm_listify(SWIG_NewPointerObj(&$1, $descriptor, 1), + scm_list_n(SWIG_NewPointerObj(&$1, $descriptor, 1), SCM_UNDEFINED)); } @@ -87,13 +87,13 @@ %typemap(throws) SWIGTYPE * { scm_throw(scm_from_locale_symbol((char *) "swig-exception"), - scm_listify(SWIG_NewPointerObj($1, $descriptor, 1), + scm_list_n(SWIG_NewPointerObj($1, $descriptor, 1), SCM_UNDEFINED)); } %typemap(throws) SWIGTYPE [] { scm_throw(scm_from_locale_symbol((char *) "swig-exception"), - scm_listify(SWIG_NewPointerObj($1, $descriptor, 1), + scm_list_n(SWIG_NewPointerObj($1, $descriptor, 1), SCM_UNDEFINED)); } @@ -176,7 +176,7 @@ %typemap(varout) enum SWIGTYPE { $result = scm_from_long((int)$1); } %typemap(throws) enum SWIGTYPE { scm_throw(scm_from_locale_symbol((char *) "swig-exception"), - scm_listify(scm_from_long((int)$1), SCM_UNDEFINED)); + scm_list_n(scm_from_long((int)$1), SCM_UNDEFINED)); } /* The SIMPLE_MAP_WITH_EXPR macro below defines the whole set of @@ -225,7 +225,7 @@ %typemap(throws) C_NAME { C_NAME swig_c_value = $1; scm_throw(scm_from_locale_symbol((char *) "swig-exception"), - scm_listify(C_TO_SCM_EXPR, SCM_UNDEFINED)); + scm_list_n(C_TO_SCM_EXPR, SCM_UNDEFINED)); } %enddef @@ -269,7 +269,7 @@ /* Throw typemap */ %typemap(throws) C_NAME { scm_throw(scm_from_locale_symbol((char *) "swig-exception"), - scm_listify(C_TO_SCM($1), SCM_UNDEFINED)); + scm_list_n(C_TO_SCM($1), SCM_UNDEFINED)); } %enddef @@ -344,7 +344,7 @@ SIMPLE_MAP(unsigned long long, scm_to_ulong_long, scm_from_ulong_long, integer); %typemap(throws) char * { scm_throw(scm_from_locale_symbol((char *) "swig-exception"), - scm_listify(SWIG_str02scm($1), SCM_UNDEFINED)); + scm_list_n(SWIG_str02scm($1), SCM_UNDEFINED)); } /* Void */ diff --git a/configure.ac b/configure.ac index 833cb37bf..5ee050c64 100644 --- a/configure.ac +++ b/configure.ac @@ -1704,17 +1704,28 @@ else fi if test -n "$GUILE_CONFIG" ; then if test x"$GUILE" = xyes; then - AC_MSG_CHECKING([for guile bindir]) - guile_bindir="`$GUILE_CONFIG info bindir`" - AC_MSG_RESULT([$guile_bindir]) - GUILE=$guile_bindir/guile + AC_MSG_CHECKING([for guile executable]) + # Try extracting it via guile-config first. If it's defined there it's the most reliable result + GUILE="`$GUILE_CONFIG info guile 2>/dev/null`" + if test -n "$GUILE"; then + AC_MSG_RESULT([$GUILE]) + else + AC_MSG_RESULT([not found via guile-config - constructing path]) + AC_MSG_CHECKING([for guile bindir]) + guile_bindir="`$GUILE_CONFIG info bindir`" + AC_MSG_RESULT([$guile_bindir]) + GUILE="$guile_bindir/guile" + fi if ! test -f "$GUILE" ; then - GUILE= + GUILE= AC_PATH_PROG(GUILE, guile) fi + if test -z "$GUILE" ; then + AC_MSG_WARN([no suitable guile executable found. Disabling Guile]) + fi fi - if test -f "$GUILE" ; then + if test -n "$GUILE" ; then AC_MSG_CHECKING([for guile version]) guile_version=`$GUILE -c '(display (effective-version))'` AC_MSG_RESULT([$guile_version]) @@ -1722,20 +1733,33 @@ else guile_good_version=`$GUILE -c '(if (>= (string->number (effective-version)) 1.8) (display "yes") (display "no"))'` AC_MSG_RESULT([$guile_good_version]) if test x"$guile_good_version" != xyes ; then + AC_MSG_WARN([at least guile version 1.8 is required. Disabling Guile]) GUILE= fi fi - if test -z "$GUILE_CFLAGS" ; then - AC_MSG_CHECKING([for guile compile flags]) - GUILE_CFLAGS="`$GUILE_CONFIG compile`" # Note that this can sometimes be empty - AC_MSG_RESULT([$GUILE_CFLAGS]) + if test -n "$GUILE" ; then + # Test if guile-config and guile versions match. They should. + gc_version="`$GUILE_CONFIG --version 2>&1 | sed '1 s/.* //;q'`" + g_version="`$GUILE --version | sed '1 s/.* //;q'`" + if test "$gc_version" != "$g_version"; then + AC_MSG_WARN([different versions reported by $GUILE_CONFIG ($gc_version) and $GUILE ($g_version). Disabling Guile]) + GUILE= + fi fi - if test -z "$GUILE_LIBS" ; then - AC_MSG_CHECKING([for guile link flags]) - GUILE_LIBS="`$GUILE_CONFIG link`" - AC_MSG_RESULT([$GUILE_LIBS]) + if test -n "$GUILE" ; then + if test -z "$GUILE_CFLAGS" ; then + AC_MSG_CHECKING([for guile compile flags]) + GUILE_CFLAGS="`$GUILE_CONFIG compile`" # Note that this can sometimes be empty + AC_MSG_RESULT([$GUILE_CFLAGS]) + fi + + if test -z "$GUILE_LIBS" ; then + AC_MSG_CHECKING([for guile link flags]) + GUILE_LIBS="`$GUILE_CONFIG link`" + AC_MSG_RESULT([$GUILE_LIBS]) + fi fi fi fi