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 { \ else { \
if (!gswig_list_p) { \ if (!gswig_list_p) { \
gswig_list_p = 1; \ gswig_list_p = 1; \
gswig_result = scm_listify(gswig_result, object, SCM_UNDEFINED); \ gswig_result = scm_list_n(gswig_result, object, SCM_UNDEFINED); \
} \ } \
else \ 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" { extern "C" {
#endif #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 static void
inner_main(void *closure, int argc, char **argv) inner_main(void *closure, int argc, char **argv)
{ {

View file

@ -69,13 +69,13 @@
%typemap(throws) SWIGTYPE { %typemap(throws) SWIGTYPE {
$&ltype temp = new $ltype($1); $&ltype temp = new $ltype($1);
scm_throw(scm_from_locale_symbol((char *) "swig-exception"), 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)); SCM_UNDEFINED));
} }
%typemap(throws) SWIGTYPE & { %typemap(throws) SWIGTYPE & {
scm_throw(scm_from_locale_symbol((char *) "swig-exception"), 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)); SCM_UNDEFINED));
} }
@ -87,13 +87,13 @@
%typemap(throws) SWIGTYPE * { %typemap(throws) SWIGTYPE * {
scm_throw(scm_from_locale_symbol((char *) "swig-exception"), 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)); SCM_UNDEFINED));
} }
%typemap(throws) SWIGTYPE [] { %typemap(throws) SWIGTYPE [] {
scm_throw(scm_from_locale_symbol((char *) "swig-exception"), 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)); SCM_UNDEFINED));
} }
@ -176,7 +176,7 @@
%typemap(varout) enum SWIGTYPE { $result = scm_from_long((int)$1); } %typemap(varout) enum SWIGTYPE { $result = scm_from_long((int)$1); }
%typemap(throws) enum SWIGTYPE { %typemap(throws) enum SWIGTYPE {
scm_throw(scm_from_locale_symbol((char *) "swig-exception"), 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 /* The SIMPLE_MAP_WITH_EXPR macro below defines the whole set of
@ -225,7 +225,7 @@
%typemap(throws) C_NAME { %typemap(throws) C_NAME {
C_NAME swig_c_value = $1; C_NAME swig_c_value = $1;
scm_throw(scm_from_locale_symbol((char *) "swig-exception"), 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 %enddef
@ -269,7 +269,7 @@
/* Throw typemap */ /* Throw typemap */
%typemap(throws) C_NAME { %typemap(throws) C_NAME {
scm_throw(scm_from_locale_symbol((char *) "swig-exception"), 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 %enddef
@ -344,7 +344,7 @@ SIMPLE_MAP(unsigned long long, scm_to_ulong_long, scm_from_ulong_long, integer);
%typemap(throws) char * { %typemap(throws) char * {
scm_throw(scm_from_locale_symbol((char *) "swig-exception"), 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 */ /* Void */

View file

@ -1704,17 +1704,28 @@ else
fi fi
if test -n "$GUILE_CONFIG" ; then if test -n "$GUILE_CONFIG" ; then
if test x"$GUILE" = xyes; then if test x"$GUILE" = xyes; then
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]) AC_MSG_CHECKING([for guile bindir])
guile_bindir="`$GUILE_CONFIG info bindir`" guile_bindir="`$GUILE_CONFIG info bindir`"
AC_MSG_RESULT([$guile_bindir]) AC_MSG_RESULT([$guile_bindir])
GUILE=$guile_bindir/guile GUILE="$guile_bindir/guile"
fi
if ! test -f "$GUILE" ; then if ! test -f "$GUILE" ; then
GUILE= GUILE=
AC_PATH_PROG(GUILE, guile) AC_PATH_PROG(GUILE, guile)
fi fi
if test -z "$GUILE" ; then
AC_MSG_WARN([no suitable guile executable found. Disabling Guile])
fi
fi fi
if test -f "$GUILE" ; then if test -n "$GUILE" ; then
AC_MSG_CHECKING([for guile version]) AC_MSG_CHECKING([for guile version])
guile_version=`$GUILE -c '(display (effective-version))'` guile_version=`$GUILE -c '(display (effective-version))'`
AC_MSG_RESULT([$guile_version]) AC_MSG_RESULT([$guile_version])
@ -1722,10 +1733,22 @@ else
guile_good_version=`$GUILE -c '(if (>= (string->number (effective-version)) 1.8) (display "yes") (display "no"))'` guile_good_version=`$GUILE -c '(if (>= (string->number (effective-version)) 1.8) (display "yes") (display "no"))'`
AC_MSG_RESULT([$guile_good_version]) AC_MSG_RESULT([$guile_good_version])
if test x"$guile_good_version" != xyes ; then if test x"$guile_good_version" != xyes ; then
AC_MSG_WARN([at least guile version 1.8 is required. Disabling Guile])
GUILE= GUILE=
fi fi
fi fi
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 -n "$GUILE" ; then
if test -z "$GUILE_CFLAGS" ; then if test -z "$GUILE_CFLAGS" ; then
AC_MSG_CHECKING([for guile compile flags]) AC_MSG_CHECKING([for guile compile flags])
GUILE_CFLAGS="`$GUILE_CONFIG compile`" # Note that this can sometimes be empty GUILE_CFLAGS="`$GUILE_CONFIG compile`" # Note that this can sometimes be empty
@ -1738,6 +1761,7 @@ else
AC_MSG_RESULT([$GUILE_LIBS]) AC_MSG_RESULT([$GUILE_LIBS])
fi fi
fi fi
fi
fi fi
AC_SUBST(GUILE) AC_SUBST(GUILE)