1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-08 13:10:19 +02:00

2003-05-29 Stefan Jahn <stefan@lkcc.org>

* configure.in: Removed -lm check and added a cached check for
        __libc_stack_end to get it building for mingw32 hosts.

2003-05-29  Stefan Jahn  <stefan@lkcc.org>

        * win32-dirent.c: Use malloc() instead of scm_malloc().

        * stime.c (s_scm_strftime): Add a type cast to avoid compiler
        warning.

        * posix.c (s_scm_putenv): Disable use of unsetenv() for the
        mingw32 build.

        * modules.c (s_scm_module_import_interface): Renamed local
        variable interface to _interface.  Seems like 'interface'
        is a special compiler directive for the mingw32 compiler.

        * mkstemp.c: Provide prototype to avoid compiler warning.

        * load.c (s_scm_search_path): Fixed absolute and relative
        path detections for native Windows platforms.

        * gc.h, threads.h: Export some more symbols using SCM_API
	(necessary to build on mingw32).

        * gc-freelist.c ("s_scm_map_free_list",
        "s_scm_gc_set_debug_check_freelist_x"): Fixed use of FUNC_NAME.

        * fports.c (fport_fill_input): Disable use of
        fport_wait_for_input() on Win32 platforms.

        * filesys.c (s_scm_basename): Fixed __MINGW32__ code.

        * Makefile.am: Modified some rules for cross compiling.

2003-05-29  Stefan Jahn  <stefan@lkcc.org>

        * raw-ltdl.c: Some more modifications for mingw32 platforms.

2003-05-29  Stefan Jahn  <stefan@lkcc.org>

        * Makefile.am (libguile_srfi_srfi_1_la_LDFLAGS,
        libguile_srfi_srfi_4_la_LDFLAGS,
        libguile_srfi_srfi_13_14__la_LDFLAGS): Added the -no-undefined
        option for the mingw32 build.

2003-05-29  Stefan Jahn  <stefan@lkcc.org>

        * standalone/Makefile.am: Setup to build on mingw32.
This commit is contained in:
Stefan Jahn 2003-05-29 14:39:13 +00:00
parent 42ad901d04
commit 2e945bccca
21 changed files with 150 additions and 45 deletions

View file

@ -1,3 +1,8 @@
2003-05-29 Stefan Jahn <stefan@lkcc.org>
* configure.in: Removed -lm check and added a cached check for
__libc_stack_end to get it building for mingw32 hosts.
2003-05-19 Kevin Ryde <user42@zip.com.au>
* README (Cross building Guile): Remove --with-cc-for-build in favour

View file

@ -483,7 +483,9 @@ AC_TYPE_GETGROUPS
AC_TYPE_SIGNAL
AC_TYPE_MODE_T
if test $MINGW32 = no; then
AC_CHECK_LIB(m, main)
fi
AC_CHECK_FUNCS(gethostbyname)
if test $ac_cv_func_gethostbyname = no; then
AC_CHECK_LIB(nsl, gethostbyname)
@ -594,13 +596,14 @@ AC_CHECK_FUNCS(sethostent gethostent endhostent dnl
inet_pton inet_ntop)
AC_MSG_CHECKING(for __libc_stack_end)
AC_TRY_LINK([extern char *__libc_stack_end;],
AC_CACHE_VAL(guile_cv_have_libc_stack_end,
[AC_TRY_LINK([extern char *__libc_stack_end;],
[char *p = __libc_stack_end;],
have_libc_stack_end=yes,
have_libc_stack_end=no)
AC_MSG_RESULT($have_libc_stack_end)
guile_cv_have_libc_stack_end=yes,
guile_cv_have_libc_stack_end=no)])
AC_MSG_RESULT($guile_cv_have_libc_stack_end)
if test $have_libc_stack_end = yes; then
if test $guile_cv_have_libc_stack_end = yes; then
AC_DEFINE(HAVE_LIBC_STACK_END, 1,
[Define if you have the __libc_stack_end variable.])
fi

View file

@ -1,3 +1,7 @@
2003-05-29 Stefan Jahn <stefan@lkcc.org>
* raw-ltdl.c: Some more modifications for mingw32 platforms.
2003-03-24 Marius Vollmer <marius.vollmer@uni-dortmund.de>
* raw-ltdl.c: Include <config.h> instead of

View file

@ -163,11 +163,11 @@ static lt_ptr lt_erealloc LT_PARAMS((lt_ptr addr, size_t size));
#define rpl_realloc realloc
/* These are the pointers that can be changed by the caller: */
SCMLTSTATIC LT_GLOBAL_DATA lt_ptr (*lt_dlmalloc) LT_PARAMS((size_t size))
SCMLTSTATIC lt_ptr (*lt_dlmalloc) LT_PARAMS((size_t size))
= (lt_ptr (*) LT_PARAMS((size_t))) malloc;
SCMLTSTATIC LT_GLOBAL_DATA lt_ptr (*lt_dlrealloc) LT_PARAMS((lt_ptr ptr, size_t size))
SCMLTSTATIC lt_ptr (*lt_dlrealloc) LT_PARAMS((lt_ptr ptr, size_t size))
= (lt_ptr (*) LT_PARAMS((lt_ptr, size_t))) rpl_realloc;
SCMLTSTATIC LT_GLOBAL_DATA void (*lt_dlfree) LT_PARAMS((lt_ptr ptr))
SCMLTSTATIC void (*lt_dlfree) LT_PARAMS((lt_ptr ptr))
= (void (*) LT_PARAMS((lt_ptr))) free;
/* The following macros reduce the amount of typing needed to cast
@ -1185,7 +1185,6 @@ sys_wll_open (loader_data, filename)
{
lt_dlhandle cur;
lt_module module = NULL;
const char *errormsg = NULL;
char *searchname = NULL;
char *ext;
char self_name_buf[MAX_PATH];

View file

@ -1,3 +1,35 @@
2003-05-29 Stefan Jahn <stefan@lkcc.org>
* win32-dirent.c: Use malloc() instead of scm_malloc().
* stime.c (s_scm_strftime): Add a type cast to avoid compiler
warning.
* posix.c (s_scm_putenv): Disable use of unsetenv() for the
mingw32 build.
* modules.c (s_scm_module_import_interface): Renamed local
variable interface to _interface. Seems like 'interface'
is a special compiler directive for the mingw32 compiler.
* mkstemp.c: Provide prototype to avoid compiler warning.
* load.c (s_scm_search_path): Fixed absolute and relative
path detections for native Windows platforms.
* gc.h, threads.h: Export some more symbols using SCM_API (necessary
to build on mingw32).
* gc-freelist.c ("s_scm_map_free_list",
"s_scm_gc_set_debug_check_freelist_x"): Fixed use of FUNC_NAME.
* fports.c (fport_fill_input): Disable use of
fport_wait_for_input() on Win32 platforms.
* filesys.c (s_scm_basename): Fixed __MINGW32__ code.
* Makefile.am: Modified some rules for cross compiling.
2003-05-25 Dirk Herrmann <D.Herrmann@tu-bs.de>
* eval.c (SCM_CEVAL): In case of an application, all checks for a

View file

@ -42,15 +42,24 @@ gen_scmconfig_SOURCES = gen-scmconfig.c
## For some reason, OBJEXT does not include the dot
gen-scmconfig.$(OBJEXT): gen-scmconfig.c
if [ "$(cross_compiling)" = "yes" ]; then \
$(CC_FOR_BUILD) -c -o $@ $<; \
$(CC_FOR_BUILD) $(DEFS) $(INCLUDES) -c -o $@ $<; \
else \
$(COMPILE) -c -o $@ $<; \
fi
scmconfig.h: ${top_builddir}/config.h gen-scmconfig
## Override default rule; this should run on BUILD host.
gen-scmconfig$(EXEEXT): $(gen_scmconfig_OBJECTS) $(gen_scmconfig_DEPENDENCIES)
@rm -f gen-scmconfig$(EXEEXT)
if [ "$(cross_compiling)" = "yes" ]; then \
$(CCLD_FOR_BUILD) -o $@ $(gen_scmconfig_OBJECTS); \
else \
$(LINK) $(gen_scmconfig_OBJECTS) $(LDADD) $(LIBS); \
fi
scmconfig.h: ${top_builddir}/config.h gen-scmconfig$(EXEEXT)
rm -f scmconfig.h.tmp
cat $(srcdir)/scmconfig.h.top > scmconfig.h.tmp
./gen-scmconfig >> scmconfig.h.tmp
./gen-scmconfig$(EXEEXT) >> scmconfig.h.tmp
chmod 444 scmconfig.h.tmp
rm -f scmconfig.h
mv scmconfig.h.tmp scmconfig.h
@ -61,7 +70,7 @@ guile_filter_doc_snarfage_SOURCES = c-tokenize.c
## For some reason, OBJEXT does not include the dot
c-tokenize.$(OBJEXT): c-tokenize.c
if [ "$(cross_compiling)" = "yes" ]; then \
$(CC_FOR_BUILD) -c -o $@ $<; \
$(CC_FOR_BUILD) $(DEFS) $(INCLUDES) -c -o $@ $<; \
else \
$(COMPILE) -c -o $@ $<; \
fi
@ -271,10 +280,10 @@ alldotdocfiles = $(DOT_DOC_FILES) $(EXTRA_DOT_DOC_FILES)
snarf2checkedtexi = GUILE="$(GUILE_FOR_BUILD)" $(top_srcdir)/scripts/snarf-check-and-output-texi
dotdoc2texi = cat $(alldotdocfiles) | $(snarf2checkedtexi)
guile.texi: $(alldotdocfiles) guile
guile.texi: $(alldotdocfiles) guile$(EXEEXT)
$(dotdoc2texi) --manual > $@ || { rm $@; false; }
guile-procedures.texi: $(alldotdocfiles) guile
guile-procedures.texi: $(alldotdocfiles) guile$(EXEEXT)
$(dotdoc2texi) > $@ || { rm $@; false; }
if HAVE_MAKEINFO

View file

@ -1503,14 +1503,14 @@ SCM_DEFINE (scm_basename, "basename", 1, 1, 0,
if (j == -1)
end = i;
#ifdef __MINGW32__
while (i >= 0 && (f[i] != '/' || f[i] != '\\')) --i;
while (i >= 0 && f[i] != '/' && f[i] != '\\') --i;
#else
while (i >= 0 && f[i] != '/') --i;
#endif /* ndef __MINGW32__ */
if (i == end)
{
#ifdef __MINGW32__
if (len > 0 && (f[0] == '/' || f[i] == '\\'))
if (len > 0 && (f[0] == '/' || f[0] == '\\'))
#else
if (len > 0 && f[0] == '/')
#endif /* ndef __MINGW32__ */

View file

@ -513,6 +513,7 @@ fport_print (SCM exp, SCM port, scm_print_state *pstate SCM_UNUSED)
return 1;
}
#ifndef __MINGW32__
/* thread-local block for input on fport's fdes. */
static void
fport_wait_for_input (SCM port)
@ -537,6 +538,7 @@ fport_wait_for_input (SCM port)
while (n == -1 && errno == EINTR);
}
}
#endif /* !__MINGW32__ */
static void fport_flush (SCM port);
@ -549,7 +551,9 @@ fport_fill_input (SCM port)
scm_t_port *pt = SCM_PTAB_ENTRY (port);
scm_t_fport *fp = SCM_FSTREAM (port);
#ifndef __MINGW32__
fport_wait_for_input (port);
#endif /* !__MINGW32__ */
SCM_SYSCALL (count = read (fp->fdes, pt->read_buf, pt->read_buf_size));
if (count == -1)
scm_syserror ("fport_fill_input");

View file

@ -48,16 +48,17 @@ is unset before allocation. --hwn
SCM_DEFINE (scm_map_free_list, "map-free-list", 0, 0, 0,
(),
"DEPRECATED\n")
#define FUNC_NAME s_scm_map_free_list
#define FUNC_NAME "s_scm_map_free_list"
{
scm_c_issue_deprecation_warning ("map-free-list has been removed from GUILE. Doing nothing\n");
return SCM_UNSPECIFIED;
}
#undef FUNC_NAME
SCM_DEFINE (scm_gc_set_debug_check_freelist_x, "gc-set-debug-check-freelist!", 1, 0, 0,
(SCM flag),
"DEPRECATED.\n")
#define FUNC_NAME s_scm_gc_set_debug_check_freelist_x
#define FUNC_NAME "s_scm_gc_set_debug_check_freelist_x"
{
scm_c_issue_deprecation_warning ("gc-set-debug-check-freelist! has been removed from GUILE. Doing nothing\n");
return SCM_UNSPECIFIED;

View file

@ -235,7 +235,7 @@ void scm_i_expensive_validation_check (SCM cell);
SCM_API int scm_block_gc;
SCM_API int scm_gc_heap_lock;
SCM_API unsigned int scm_gc_running_p;
extern scm_t_rec_mutex scm_i_sweep_mutex;
SCM_API scm_t_rec_mutex scm_i_sweep_mutex;
#if (SCM_ENABLE_DEPRECATED == 1)
@ -260,10 +260,10 @@ SCM_API size_t scm_max_segment_size;
*ls = SCM_EOL; \
scm_setspecific ((key), ls); } while (0)
#define SCM_FREELIST_LOC(key) ((SCM *) scm_getspecific (key))
extern scm_t_key scm_i_freelist;
extern scm_t_key scm_i_freelist2;
extern struct scm_t_cell_type_statistics scm_i_master_freelist;
extern struct scm_t_cell_type_statistics scm_i_master_freelist2;
SCM_API scm_t_key scm_i_freelist;
SCM_API scm_t_key scm_i_freelist2;
SCM_API struct scm_t_cell_type_statistics scm_i_master_freelist;
SCM_API struct scm_t_cell_type_statistics scm_i_master_freelist2;
SCM_API unsigned long scm_gc_cells_swept;
@ -288,9 +288,13 @@ SCM_API scm_t_c_hook scm_after_sweep_c_hook;
SCM_API scm_t_c_hook scm_after_gc_c_hook;
#if defined (GUILE_DEBUG) || defined (GUILE_DEBUG_FREELIST)
#if (SCM_ENABLE_DEPRECATED == 1)
SCM scm_map_free_list (void);
#else
#define scm_map_free_list deprecated
#define scm_free_list_length deprecated
#endif
#endif
#if (SCM_ENABLE_DEPRECATED == 1) && defined (GUILE_DEBUG_FREELIST)
SCM_API SCM scm_gc_set_debug_check_freelist_x (SCM flag);

View file

@ -188,7 +188,11 @@ scm_internal_parse_path (char *path, SCM tail)
do {
/* Scan back to the beginning of the current element. */
do scan--;
#ifdef __MINGW32__
while (scan >= path && *scan != ';');
#else
while (scan >= path && *scan != ':');
#endif
tail = scm_cons (scm_mem2string (scan + 1, elt_end - (scan + 1)),
tail);
elt_end = scan;
@ -273,7 +277,16 @@ SCM_DEFINE (scm_search_path, "search-path", 2, 1, 0,
filename_len = SCM_STRING_LENGTH (filename);
/* If FILENAME is absolute, return it unchanged. */
#ifdef __MINGW32__
if (((filename_len >= 1) &&
(filename_chars[0] == '/' || filename_chars[0] == '\\')) ||
((filename_len >= 3) && filename_chars[1] == ':' &&
((filename_chars[0] >= 'a' && filename_chars[0] <= 'z') ||
(filename_chars[0] >= 'A' && filename_chars[0] <= 'Z')) &&
(filename_chars[2] == '/' || filename_chars[2] == '\\')))
#else
if (filename_len >= 1 && filename_chars[0] == '/')
#endif
return filename;
/* Find the length of the longest element of path. */
@ -306,7 +319,11 @@ SCM_DEFINE (scm_search_path, "search-path", 2, 1, 0,
extensions = SCM_EOL;
break;
}
#ifdef __MINGW32__
else if (*endp == '/' || *endp == '\\')
#else
else if (*endp == '/')
#endif
/* This filename has no extension, so keep the current list
of extensions. */
break;
@ -351,7 +368,11 @@ SCM_DEFINE (scm_search_path, "search-path", 2, 1, 0,
/* Concatenate the path name and the filename. */
len = SCM_STRING_LENGTH (dir);
memcpy (buf, SCM_STRING_CHARS (dir), len);
#ifdef __MINGW32__
if (len >= 1 && buf[len - 1] != '/' && buf[len - 1] != '\\')
#else
if (len >= 1 && buf[len - 1] != '/')
#endif
buf[len++] = '/';
memcpy (buf + len, filename_chars, filename_len);
len += filename_len;
@ -433,7 +454,12 @@ SCM_DEFINE (scm_primitive_load_path, "primitive-load-path", 1, 0, 0,
if (SCM_FALSEP (full_filename))
{
int absolute = (SCM_STRING_LENGTH (filename) >= 1
#ifdef __MINGW32__
&& (SCM_STRING_CHARS (filename)[0] == '/' ||
SCM_STRING_CHARS (filename)[0] == '\\'));
#else
&& SCM_STRING_CHARS (filename)[0] == '/');
#endif
SCM_MISC_ERROR ((absolute
? "Unable to load file ~S"
: "Unable to find file ~S in load path"),

View file

@ -47,6 +47,11 @@
#define TMP_MAX 16384
#endif
/* We provide this prototype to avoid compiler warnings. If this ever
conflicts with a declaration in a system header file, we'll find
out, because we should include that header file here. */
int mkstemp (char *);
/* Generate a unique temporary file name from TEMPLATE.
TEMPLATE has the form:

View file

@ -401,25 +401,25 @@ SCM_DEFINE (scm_module_import_interface, "module-import-interface", 2, 0, 0,
uses = SCM_MODULE_USES (module);
while (SCM_CONSP (uses))
{
SCM interface = SCM_CAR (uses);
SCM _interface = SCM_CAR (uses);
/* 1. Check module obarray */
SCM b = scm_hashq_ref (SCM_MODULE_OBARRAY (interface), sym, SCM_BOOL_F);
SCM b = scm_hashq_ref (SCM_MODULE_OBARRAY (_interface), sym, SCM_BOOL_F);
if (SCM_BOUND_THING_P (b))
return interface;
return _interface;
{
SCM binder = SCM_MODULE_BINDER (interface);
SCM binder = SCM_MODULE_BINDER (_interface);
if (!SCM_FALSEP (binder))
/* 2. Custom binder */
{
b = scm_call_3 (binder, interface, sym, SCM_BOOL_F);
b = scm_call_3 (binder, _interface, sym, SCM_BOOL_F);
if (SCM_BOUND_THING_P (b))
return interface;
return _interface;
}
}
/* 3. Search use list recursively. */
interface = scm_module_import_interface (interface, sym);
if (!SCM_FALSEP (interface))
return interface;
_interface = scm_module_import_interface (_interface, sym);
if (!SCM_FALSEP (_interface))
return _interface;
uses = SCM_CDR (uses);
}
return SCM_BOOL_F;

View file

@ -1162,6 +1162,7 @@ SCM_DEFINE (scm_putenv, "putenv", 1, 0, 0,
SCM_VALIDATE_STRING (1, str);
#ifndef __MINGW32__
if (strchr (SCM_STRING_CHARS (str), '=') == NULL)
{
/* No '=' in argument means we should remove the variable from
@ -1170,6 +1171,7 @@ SCM_DEFINE (scm_putenv, "putenv", 1, 0, 0,
unsetenv (SCM_STRING_CHARS (str));
}
else
#endif
{
/* must make a new copy to be left in the environment, safe from gc. */
ptr = scm_malloc (SCM_STRING_LENGTH (str) + 1);

View file

@ -561,7 +561,7 @@ SCM_DEFINE (scm_strftime, "strftime", 2, 0, 0,
environment. interrupts and thread switching must be deferred
until TZ is restored. */
char **oldenv = NULL;
SCM *velts = SCM_VELTS (stime);
SCM *velts = (SCM *) SCM_VELTS (stime);
int have_zone = 0;
if (!SCM_FALSEP (velts[10]) && *SCM_STRING_CHARS (velts[10]) != 0)

View file

@ -238,7 +238,7 @@ extern scm_t_key scm_i_thread_key;
They really refer to the root state of the running thread. */
#define SCM_THREAD_LOCAL_DATA (scm_i_plugin_getspecific (scm_i_root_state_key))
#define SCM_SET_THREAD_LOCAL_DATA(x) scm_i_set_thread_data(x)
extern scm_t_key scm_i_root_state_key;
SCM_API scm_t_key scm_i_root_state_key;
SCM_API void scm_i_set_thread_data (void *);
#endif /* SCM_THREADS_H */

View file

@ -33,7 +33,7 @@ opendir (const char * name)
if (!name || !*name)
return NULL;
file = scm_malloc (strlen (name) + 3);
file = malloc (strlen (name) + 3);
strcpy (file, name);
if (file[strlen (name) - 1] != '/' && file[strlen (name) - 1] != '\\')
strcat (file, "/*");
@ -46,10 +46,10 @@ opendir (const char * name)
return NULL;
}
dir = scm_malloc (sizeof (DIR));
dir = malloc (sizeof (DIR));
dir->mask = file;
dir->fd = (int) hnd;
dir->data = scm_malloc (sizeof (WIN32_FIND_DATA));
dir->data = malloc (sizeof (WIN32_FIND_DATA));
dir->allocation = sizeof (WIN32_FIND_DATA);
dir->size = dir->allocation;
dir->filepos = 0;

View file

@ -1,3 +1,10 @@
2003-05-29 Stefan Jahn <stefan@lkcc.org>
* Makefile.am (libguile_srfi_srfi_1_la_LDFLAGS,
libguile_srfi_srfi_4_la_LDFLAGS,
libguile_srfi_srfi_13_14__la_LDFLAGS): Added the -no-undefined
option for the mingw32 build.
2003-05-13 Kevin Ryde <user42@zip.com.au>
* srfi-1.scm (delete): Fix predicate arg order to match srfi-1 spec.

View file

@ -41,17 +41,17 @@ BUILT_SOURCES = srfi-1.x srfi-4.x srfi-13.x srfi-14.x
libguile_srfi_srfi_1_la_SOURCES = srfi-1.x srfi-1.c
libguile_srfi_srfi_1_la_LIBADD = ../libguile/libguile.la
libguile_srfi_srfi_1_la_LDFLAGS = -export-dynamic \
libguile_srfi_srfi_1_la_LDFLAGS = -no-undefined -export-dynamic \
-version-info @LIBGUILE_SRFI_SRFI_1_INTERFACE@
libguile_srfi_srfi_4_la_SOURCES = srfi-4.x srfi-4.c
libguile_srfi_srfi_4_la_LIBADD = ../libguile/libguile.la
libguile_srfi_srfi_4_la_LDFLAGS = -export-dynamic \
libguile_srfi_srfi_4_la_LDFLAGS = -no-undefined -export-dynamic \
-version-info @LIBGUILE_SRFI_SRFI_4_INTERFACE@
libguile_srfi_srfi_13_14_la_SOURCES = srfi-13.x srfi-13.c srfi-14.x srfi-14.c
libguile_srfi_srfi_13_14_la_LIBADD = ../libguile/libguile.la
libguile_srfi_srfi_13_14_la_LDFLAGS = -export-dynamic \
libguile_srfi_srfi_13_14_la_LDFLAGS = -no-undefined -export-dynamic \
-version-info @LIBGUILE_SRFI_SRFI_13_14_INTERFACE@
srfidir = $(datadir)/guile/$(GUILE_EFFECTIVE_VERSION)/srfi

View file

@ -1,3 +1,7 @@
2003-05-29 Stefan Jahn <stefan@lkcc.org>
* standalone/Makefile.am: Setup to build on mingw32.
2003-05-27 Dirk Herrmann <D.Herrmann@tu-bs.de>
* tests/elisp.test: Added missing quote around vector constants.

View file

@ -11,7 +11,7 @@ TESTS_ENVIRONMENT = "${top_builddir}/pre-inst-guile-env"
test_cflags := \
-I$(top_srcdir)/test-suite/standalone \
-I$(top_srcdir) \
-I$(top_srcdir)/libguile-ltdl
-I$(top_srcdir)/libguile-ltdl $(EXTRA_DEFS)
snarfcppopts = $(DEFS) $(DEFAULT_INCLUDES) $(CPPFLAGS) $(CFLAGS)
%.x: %.c
@ -39,7 +39,7 @@ TESTS += test-gh
noinst_LTLIBRARIES += libtest-asmobs.la
libtest_asmobs_la_SOURCES = test-asmobs-lib.c test-asmobs-lib.x
libtest_asmobs_la_CFLAGS = ${test_cflags}
libtest_asmobs_la_LDFLAGS = -rpath `pwd` # so libtool will really build an .so
libtest_asmobs_la_LDFLAGS = -no-undefined -rpath `pwd` # so libtool will really build an .so
libtest_asmobs_la_LIBADD = ${top_builddir}/libguile/libguile.la
BUILT_SOURCES += test-asmobs-lib.x
check_SCRIPTS += test-asmobs