Merge pull request #1232 from gjanssens/master

Fix guile 2.2 support
This commit is contained in:
Olly Betts 2018-04-21 14:59:11 +12:00 committed by GitHub
commit 6fc2df3b8c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 48 additions and 29 deletions

View file

@ -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)); \
}
%}

View file

@ -12,11 +12,6 @@
extern "C" {
#endif
/* Debugger interface (don't change the order of the following lines) */
#define GDB_TYPE SCM
#include <libguile/gdb_interface.h>
GDB_INTERFACE;
static void
inner_main(void *closure, int argc, char **argv)
{

View file

@ -69,13 +69,13 @@
%typemap(throws) SWIGTYPE {
$&ltype 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 */

View file

@ -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