rename libguile to libguile-@EFFECTIVE_VERSION@, currently libguile-2.0
authorAndy Wingo <wingo@pobox.com>
Tue, 16 Mar 2010 20:18:12 +0000 (21:18 +0100)
committerAndy Wingo <wingo@pobox.com>
Tue, 16 Mar 2010 20:20:34 +0000 (21:20 +0100)
* libguile/Makefile.am (lib_LTLIBRARIES): Instead of just "libguile.la",
  make "libguile-@EFFECTIVE_VERSION@.la". This allows multiple versions
  of Guile to be installed at once. See
  http://www106.pair.com/rhp/parallel.html for a rationale.

  (libguile_@GUILE_EFFECTIVE_VERSION@_la_CFLAGS):
  (libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES):
  (EXTRA_libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES):
  (libguile_@GUILE_EFFECTIVE_VERSION@_la_DEPENDENCIES):
  (libguile_@GUILE_EFFECTIVE_VERSION@_la_LIBADD):
  (libguile_@GUILE_EFFECTIVE_VERSION@_la_LDFLAGS): Fixup automake vars
  to include the effective version.
  (guile_LDADD): Fix up the spelling of libguile.

* libguile/bytevectors.c (scm_bootstrap_bytevectors):
* libguile/foreign.c (scm_register_foreign):
* libguile/i18n.c (scm_bootstrap_i18n):
* libguile/instructions.c (scm_bootstrap_instructions):
* libguile/objcodes.c (scm_bootstrap_objcodes):
* libguile/programs.c (scm_bootstrap_programs):
* libguile/vm.c (scm_bootstrap_vm): Register extensions using e.g.
  "libguile-2.0" as the libname -- i.e., including the effective version
  in the libname.

* module/ice-9/i18n.scm:
* module/rnrs/bytevector.scm:
* module/rnrs/io/ports.scm:
* module/system/foreign.scm:
* module/system/vm/instruction.scm:
* module/system/vm/objcode.scm:
* module/system/vm/program.scm:
* module/system/vm/vm.scm: When doing a load-extension for something in
  Guile, use the effective version also.

* meta/guile-2.0-uninstalled.pc.in (Libs):
* meta/guile-2.0.pc.in (Libs): Use -lguile-@EFFECTIVE_VERSION@. This
  change should mean that code built against Guile should not be
  affected by the libguile rename.

* guile-readline/Makefile.am (libguilereadline_v_@LIBGUILEREADLINE_MAJOR@_la_LIBADD):
* srfi/Makefile.am
  (libguile_srfi_srfi_1_v_@LIBGUILE_SRFI_SRFI_1_MAJOR@_la_LIBADD):
  (libguile_srfi_srfi_4_v_@LIBGUILE_SRFI_SRFI_4_MAJOR@_la_LIBADD):
  (libguile_srfi_srfi_13_14_v_@LIBGUILE_SRFI_SRFI_13_14_MAJOR@_la_LIBADD):
  (libguile_srfi_srfi_60_v_@LIBGUILE_SRFI_SRFI_60_MAJOR@_la_LIBADD):
* test-suite/standalone/Makefile.am (test_num2integral_LDADD):
  (test_round_LDADD):
  (libtest_asmobs_la_LIBADD):
  (libtest_ffi_la_LIBADD):
  (test_list_LDADD):
  (test_unwind_LDADD):
  (test_conversion_LDADD):
  (test_loose_ends_LDADD):
  (test_scm_c_read_LDADD):
  (test_scm_take_locale_symbol_LDADD):
  (test_scm_take_u8vector_LDADD):
  (libtest_extensions_la_LIBADD):
  (test_with_guile_module_LDADD):
  (test_scm_with_guile_LDADD): Fix up the spelling of libguile.la.

21 files changed:
guile-readline/Makefile.am
libguile/Makefile.am
libguile/bytevectors.c
libguile/foreign.c
libguile/i18n.c
libguile/instructions.c
libguile/objcodes.c
libguile/programs.c
libguile/vm.c
meta/guile-2.0-uninstalled.pc.in
meta/guile-2.0.pc.in
module/ice-9/i18n.scm
module/rnrs/bytevector.scm
module/rnrs/io/ports.scm
module/system/foreign.scm
module/system/vm/instruction.scm
module/system/vm/objcode.scm
module/system/vm/program.scm
module/system/vm/vm.scm
srfi/Makefile.am
test-suite/standalone/Makefile.am

index efdcd75230ccf4f931161c54cafd5efc8765ec6a..24a3fd44d90833d541c83bcf4f41e7fc811c57e0 100644 (file)
@@ -1,6 +1,6 @@
 ## Process this file with Automake to create Makefile.in
 ##
-##     Copyright (C) 1998, 1999, 2000, 2001, 2004, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+##     Copyright (C) 1998, 1999, 2000, 2001, 2004, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 ##
 ##   This file is part of guile-readline.
 ##
@@ -45,7 +45,7 @@ lib_LTLIBRARIES = libguilereadline-v-@LIBGUILEREADLINE_MAJOR@.la
 libguilereadline_v_@LIBGUILEREADLINE_MAJOR@_la_SOURCES = readline.c
 libguilereadline_v_@LIBGUILEREADLINE_MAJOR@_la_LIBADD =        \
   $(READLINE_LIBS)                                     \
-  ../libguile/libguile.la ../lib/libgnu.la
+  ../libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la ../lib/libgnu.la
 
 libguilereadline_v_@LIBGUILEREADLINE_MAJOR@_la_LDFLAGS =       \
   -version-info @LIBGUILEREADLINE_INTERFACE@ -export-dynamic   \
index f130dfcc471d0ab06f106992f3dbc0223488cc0e..2dc68ae227e7a56eaca917a4f68036a8537b232f 100644 (file)
@@ -43,7 +43,7 @@ gnulib_library = $(top_builddir)/lib/libgnu.la
 ETAGS_ARGS = --regex='/SCM_\(GLOBAL_\)?\(G?PROC\|G?PROC1\|SYMBOL\|VCELL\|CONST_LONG\).*\"\([^\"]\)*\"/\3/' \
    --regex='/[ \t]*SCM_[G]?DEFINE1?[ \t]*(\([^,]*\),[^,]*/\1/'
 
-lib_LTLIBRARIES = libguile.la
+lib_LTLIBRARIES = libguile-@GUILE_EFFECTIVE_VERSION@.la
 bin_PROGRAMS = guile
 
 noinst_PROGRAMS = guile_filter_doc_snarfage gen-scmconfig
@@ -99,12 +99,12 @@ guile_filter_doc_snarfage$(EXEEXT): $(guile_filter_doc_snarfage_OBJECTS) $(guile
 
 guile_SOURCES = guile.c
 guile_CFLAGS = $(GUILE_CFLAGS) $(AM_CFLAGS)
-guile_LDADD = libguile.la
+guile_LDADD = libguile-@GUILE_EFFECTIVE_VERSION@.la
 guile_LDFLAGS = $(GUILE_CFLAGS)
 
-libguile_la_CFLAGS = $(GUILE_CFLAGS) $(AM_CFLAGS)
+libguile_@GUILE_EFFECTIVE_VERSION@_la_CFLAGS = $(GUILE_CFLAGS) $(AM_CFLAGS)
 
-libguile_la_SOURCES =                          \
+libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES =                                \
        alist.c                                 \
        arbiters.c                              \
        array-handle.c                          \
@@ -412,7 +412,7 @@ BUILT_SOURCES = cpp_err_symbols.c cpp_sig_symbols.c libpath.h \
     version.h scmconfig.h \
     $(DOT_I_FILES) $(DOT_X_FILES) $(EXTRA_DOT_X_FILES)
 
-EXTRA_libguile_la_SOURCES = _scm.h             \
+EXTRA_libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES = _scm.h           \
     memmove.c strerror.c                       \
     dynl.c regex-posix.c                       \
     filesys.c posix.c net_db.c socket.c                \
@@ -440,11 +440,11 @@ noinst_HEADERS = conv-integer.i.c conv-uinteger.i.c               \
 # vm instructions
 noinst_HEADERS += vm-engine.c vm-i-system.c vm-i-scheme.c vm-i-loader.c
 
-libguile_la_DEPENDENCIES = @LIBLOBJS@
-libguile_la_LIBADD =                           \
+libguile_@GUILE_EFFECTIVE_VERSION@_la_DEPENDENCIES = @LIBLOBJS@
+libguile_@GUILE_EFFECTIVE_VERSION@_la_LIBADD =                         \
   @LIBLOBJS@ $(gnulib_library) $(LTLIBGMP)     \
   $(LTLIBUNISTRING) $(LTLIBICONV) $(LTLIBINTL)
-libguile_la_LDFLAGS =                                                                                  \
+libguile_@GUILE_EFFECTIVE_VERSION@_la_LDFLAGS =                                                                                        \
   @LTLIBINTL@ $(LIBFFI_LIBS) $(INET_NTOP_LIB) $(INET_PTON_LIB)                                         \
   $(GETADDRINFO_LIB) $(HOSTENT_LIB) $(SERVENT_LIB)                                                     \
   -version-info @LIBGUILE_INTERFACE_CURRENT@:@LIBGUILE_INTERFACE_REVISION@:@LIBGUILE_INTERFACE_AGE@    \
@@ -453,7 +453,7 @@ libguile_la_LDFLAGS =                                                                                       \
 
 if HAVE_LD_VERSION_SCRIPT
 
-libguile_la_LDFLAGS += -Wl,--version-script="$(srcdir)/libguile.map"
+libguile_@GUILE_EFFECTIVE_VERSION@_la_LDFLAGS += -Wl,--version-script="$(srcdir)/libguile.map"
 
 endif HAVE_LD_VERSION_SCRIPT
 
index 45dae1cc8e266074a8d347a20156e8ee79c81ac6..f3a61c1d087f7e9db3395bcd95134222b66af98e 100644 (file)
@@ -2223,7 +2223,8 @@ scm_bootstrap_bytevectors (void)
   scm_i_native_endianness = scm_from_locale_symbol ("little");
 #endif
 
-  scm_c_register_extension ("libguile", "scm_init_bytevectors",
+  scm_c_register_extension ("libguile-" SCM_EFFECTIVE_VERSION,
+                            "scm_init_bytevectors",
                            (scm_t_extension_init_func) scm_init_bytevectors,
                            NULL);
 
index b754fadebc91807ded334cd57b88b1cf92e40460..00de06f03f93c04d862e806ca4a9f4a9aeab238c 100644 (file)
@@ -987,7 +987,8 @@ scm_init_foreign (void)
 void
 scm_register_foreign (void)
 {
-  scm_c_register_extension ("libguile", "scm_init_foreign",
+  scm_c_register_extension ("libguile-" SCM_EFFECTIVE_VERSION,
+                            "scm_init_foreign",
                             (scm_t_extension_init_func)scm_init_foreign,
                             NULL);
   foreign_weak_refs = scm_make_weak_key_hash_table (SCM_UNDEFINED);
index d8e2c3c8f6230c993e0011ea2f7e0bceff27eb53..9c78bfc2d499363a63bb3382f7e1cd951291a9c7 100644 (file)
@@ -1866,7 +1866,8 @@ scm_init_i18n ()
 void
 scm_bootstrap_i18n ()
 {
-  scm_c_register_extension ("libguile", "scm_init_i18n",
+  scm_c_register_extension ("libguile-" SCM_EFFECTIVE_VERSION,
+                            "scm_init_i18n",
                            (scm_t_extension_init_func) scm_init_i18n,
                            NULL);
 
index 4c1f9f16f287c4cfe50263a4f093f11303acab06..49816352a8aa5ae274b149c7f500c6125424349e 100644 (file)
@@ -196,7 +196,8 @@ SCM_DEFINE (scm_opcode_to_instruction, "opcode->instruction", 1, 0, 0,
 void
 scm_bootstrap_instructions (void)
 {
-  scm_c_register_extension ("libguile", "scm_init_instructions",
+  scm_c_register_extension ("libguile-" SCM_EFFECTIVE_VERSION,
+                            "scm_init_instructions",
                             (scm_t_extension_init_func)scm_init_instructions,
                             NULL);
 }
index f30d815afc41e9bf9c9122de5585da2c98509fa2..29314681c3a409014c88c441e05ec654f2da4c11 100644 (file)
@@ -258,7 +258,8 @@ scm_i_objcode_print (SCM objcode, SCM port, scm_print_state *pstate)
 void
 scm_bootstrap_objcodes (void)
 {
-  scm_c_register_extension ("libguile", "scm_init_objcodes",
+  scm_c_register_extension ("libguile-" SCM_EFFECTIVE_VERSION,
+                            "scm_init_objcodes",
                             (scm_t_extension_init_func)scm_init_objcodes, NULL);
 }
 
index e777e56f2c01ba4fc4ea71a52f0856e25f980760..79b1c320b8e0505a8a5db5f44a4d26159c3536c4 100644 (file)
@@ -390,7 +390,8 @@ scm_bootstrap_programs (void)
   /* arglist can't be snarfed, because snarfage is only loaded when (system vm
      program) is loaded. perhaps static-alloc will fix this. */
   sym_arglist = scm_from_locale_symbol ("arglist");
-  scm_c_register_extension ("libguile", "scm_init_programs",
+  scm_c_register_extension ("libguile-" SCM_EFFECTIVE_VERSION,
+                            "scm_init_programs",
                             (scm_t_extension_init_func)scm_init_programs, NULL);
 }
 
index 98df0571b1df48d8097f1fcf6ec291b94ccc0c5e..f5e66aef6d769af6534756444459aa9684c6fb40 100644 (file)
@@ -759,7 +759,8 @@ SCM scm_load_compiled_with_vm (SCM file)
 void
 scm_bootstrap_vm (void)
 {
-  scm_c_register_extension ("libguile", "scm_init_vm",
+  scm_c_register_extension ("libguile-" SCM_EFFECTIVE_VERSION,
+                            "scm_init_vm",
                             (scm_t_extension_init_func)scm_init_vm, NULL);
 
   sym_vm_run = scm_from_locale_symbol ("vm-run");
index 6e687eabdb62004d2559ca1d18c69007ab00e54f..4bf6058c71acacbf94e340e88703cbec3a59885e 100644 (file)
@@ -4,5 +4,5 @@ srcdir=@abs_top_srcdir@
 Name: GNU Guile (uninstalled)
 Description: GNU's Ubiquitous Intelligent Language for Extension (uninstalled)
 Version: @GUILE_VERSION@
-Libs: -L${builddir}/libguile -lguile @GUILE_LIBS@
+Libs: -L${builddir}/libguile -lguile-@GUILE_EFFECTIVE_VERSION@ @GUILE_LIBS@
 Cflags: -I${srcdir} -I${builddir} @GUILE_CFLAGS@ @BDW_GC_CFLAGS@
index c73a171f455b60c634fed20cbbdc68b271ab7c9d..1da67731288f3d96fea487a4493cec7719075d21 100644 (file)
@@ -13,5 +13,5 @@ libguileinterface=@LIBGUILE_INTERFACE@
 Name: GNU Guile
 Description: GNU's Ubiquitous Intelligent Language for Extension
 Version: @GUILE_VERSION@
-Libs: -L${libdir} -lguile @GUILE_LIBS@
+Libs: -L${libdir} -lguile-@GUILE_EFFECTIVE_VERSION@ @GUILE_LIBS@
 Cflags: -I${includedir} @GUILE_CFLAGS@ @BDW_GC_CFLAGS@
index 6fa31e409544189c8ef4113a910a42e20cc4dabd..ce04aa304eac56e0f0e0c270f80b104ce6f63bc1 100644 (file)
@@ -84,7 +84,8 @@
 
 
 (eval-when (eval load compile)
-  (load-extension "libguile" "scm_init_i18n"))
+  (load-extension (string-append "libguile-" (effective-version))
+                  "scm_init_i18n"))
 
 \f
 ;;;
index 56b8a6403751cedcb173773762df36dcc6580c03..9b8ac450bc84eb3b79f7a52db54b4ad1a0fb4d73 100644 (file)
@@ -71,7 +71,8 @@
            utf8->string utf16->string utf32->string))
 
 
-(load-extension "libguile" "scm_init_bytevectors")
+(load-extension (string-append "libguile-" (effective-version))
+                "scm_init_bytevectors")
 
 (define-macro (endianness sym)
   (if (memq sym '(big little))
index 308a36cc8ab0ab3e79d3f199ead91dd155e56bfd..17d49079641dabec354dd43ceb1ca88705c86012 100644 (file)
@@ -52,7 +52,8 @@
            ;; binary output
            put-u8 put-bytevector))
 
-(load-extension "libguile" "scm_init_r6rs_ports")
+(load-extension (string-append "libguile-" (effective-version))
+                "scm_init_r6rs_ports")
 
 
 \f
index 2a7433230d47820fb0b53259974c36d29b7b0ebf..73c11feaa183eef41ff4a8c3bae056bb68b09026 100644 (file)
@@ -33,7 +33,8 @@
             make-foreign-function
             make-c-struct parse-c-struct))
 
-(load-extension "libguile" "scm_init_foreign")
+(load-extension (string-append "libguile-" (effective-version))
+                "scm_init_foreign")
 
 (define *writers*
   `((,float . ,bytevector-ieee-single-native-set!)
index 403e9cdc7b4a3f642f1652f0da0faaf47e7ac12d..287e472937c22fc2ef0bcf8422b418559db05fda 100644 (file)
@@ -1,6 +1,6 @@
 ;;; Guile VM instructions
 
-;; Copyright (C) 2001 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2010 Free Software Foundation, Inc.
 
 ;;; This library is free software; you can redistribute it and/or
 ;;; modify it under the terms of the GNU Lesser General Public
@@ -24,4 +24,5 @@
            instruction-pops instruction-pushes
            instruction->opcode opcode->instruction))
 
-(load-extension "libguile" "scm_init_instructions")
+(load-extension (string-append "libguile-" (effective-version))
+                "scm_init_instructions")
index 7c0490da60ef21c8b0cbb245a432bcb6cc8da693..966f34585bb4f4e54d13dca18378b85382bc09cf 100644 (file)
@@ -1,6 +1,6 @@
 ;;; Guile VM object code
 
-;; Copyright (C) 2001 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2010 Free Software Foundation, Inc.
 
 ;;; This library is free software; you can redistribute it and/or
 ;;; modify it under the terms of the GNU Lesser General Public
@@ -24,4 +24,5 @@
             load-objcode write-objcode
             word-size byte-order))
 
-(load-extension "libguile" "scm_init_objcodes")
+(load-extension (string-append "libguile-" (effective-version))
+                "scm_init_objcodes")
index 1afc3e0f43500eb9bf33314bfd6c5aeaaf1f211b..6c5956620e162a1515291e858433d466c9c0493b 100644 (file)
@@ -44,7 +44,8 @@
             program-num-free-variables
             program-free-variable-ref program-free-variable-set!))
 
-(load-extension "libguile" "scm_init_programs")
+(load-extension (string-append "libguile-" (effective-version))
+                "scm_init_programs")
 
 (define (make-binding name boxed? index start end)
   (list name boxed? index start end))
index c6e550b054dcb1f6f09ece617bd09144320c8893..c50959bcc882f58ef868a529366a3deaf267406f 100644 (file)
@@ -31,7 +31,8 @@
             vm-next-hook vm-apply-hook vm-boot-hook vm-return-hook
             vm-break-hook vm-exit-hook vm-halt-hook vm-enter-hook))
 
-(load-extension "libguile" "scm_init_vm")
+(load-extension (string-append "libguile-" (effective-version))
+                "scm_init_vm")
 
 (define (vms:time stat) (vector-ref stat 0))
 (define (vms:clock stat) (vector-ref stat 1))
index 459d60633ee834c7f07e7729db25e8ffa8a2ef44..1ecd94111afb84752af3eeffc2c4cb8bbee7ccee 100644 (file)
@@ -1,6 +1,6 @@
 ## Process this file with Automake to create Makefile.in
 ##
-##   Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+##   Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 ##
 ##   This file is part of GUILE.
 ##
@@ -47,22 +47,22 @@ BUILT_SOURCES = srfi-1.x srfi-4.x srfi-13.x srfi-14.x srfi-60.x
 
 libguile_srfi_srfi_1_v_@LIBGUILE_SRFI_SRFI_1_MAJOR@_la_SOURCES = srfi-1.x srfi-1.c
 libguile_srfi_srfi_1_v_@LIBGUILE_SRFI_SRFI_1_MAJOR@_la_LIBADD =                \
-   $(top_builddir)/libguile/libguile.la $(top_builddir)/lib/libgnu.la
+   $(top_builddir)/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la $(top_builddir)/lib/libgnu.la
 libguile_srfi_srfi_1_v_@LIBGUILE_SRFI_SRFI_1_MAJOR@_la_LDFLAGS = -no-undefined -export-dynamic -version-info @LIBGUILE_SRFI_SRFI_1_INTERFACE@
 
 libguile_srfi_srfi_4_v_@LIBGUILE_SRFI_SRFI_4_MAJOR@_la_SOURCES = srfi-4.x srfi-4.c
 libguile_srfi_srfi_4_v_@LIBGUILE_SRFI_SRFI_4_MAJOR@_la_LIBADD =                \
-   $(top_builddir)/libguile/libguile.la $(top_builddir)/lib/libgnu.la
+   $(top_builddir)/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la $(top_builddir)/lib/libgnu.la
 libguile_srfi_srfi_4_v_@LIBGUILE_SRFI_SRFI_4_MAJOR@_la_LDFLAGS = -no-undefined -export-dynamic -version-info @LIBGUILE_SRFI_SRFI_4_INTERFACE@
 
 libguile_srfi_srfi_13_14_v_@LIBGUILE_SRFI_SRFI_13_14_MAJOR@_la_SOURCES = srfi-13.x srfi-13.c srfi-14.x srfi-14.c
 libguile_srfi_srfi_13_14_v_@LIBGUILE_SRFI_SRFI_13_14_MAJOR@_la_LIBADD =        \
-   $(top_builddir)/libguile/libguile.la $(top_builddir)/lib/libgnu.la
+   $(top_builddir)/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la $(top_builddir)/lib/libgnu.la
 libguile_srfi_srfi_13_14_v_@LIBGUILE_SRFI_SRFI_13_14_MAJOR@_la_LDFLAGS = -no-undefined -export-dynamic -version-info @LIBGUILE_SRFI_SRFI_13_14_INTERFACE@
 
 libguile_srfi_srfi_60_v_@LIBGUILE_SRFI_SRFI_60_MAJOR@_la_SOURCES = srfi-60.x srfi-60.c
 libguile_srfi_srfi_60_v_@LIBGUILE_SRFI_SRFI_60_MAJOR@_la_LIBADD =      \
-   $(top_builddir)/libguile/libguile.la $(top_builddir)/lib/libgnu.la
+   $(top_builddir)/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la $(top_builddir)/lib/libgnu.la
 libguile_srfi_srfi_60_v_@LIBGUILE_SRFI_SRFI_60_MAJOR@_la_LDFLAGS = -no-undefined -export-dynamic -version-info @LIBGUILE_SRFI_SRFI_60_INTERFACE@
 
 EXTRA_DIST = ChangeLog-2008
index 46a77590cfe55df638df9306a17b9cc5357b97c7..806245cf9e06a06e79866e1de93be10273972f80 100644 (file)
@@ -67,13 +67,13 @@ TESTS += test-require-extension
 # test-num2integral
 test_num2integral_SOURCES = test-num2integral.c
 test_num2integral_CFLAGS = ${test_cflags}
-test_num2integral_LDADD = ${top_builddir}/libguile/libguile.la
+test_num2integral_LDADD = ${top_builddir}/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la
 check_PROGRAMS += test-num2integral
 TESTS += test-num2integral
 
 # test-round
 test_round_CFLAGS = ${test_cflags}
-test_round_LDADD = ${top_builddir}/libguile/libguile.la
+test_round_LDADD = ${top_builddir}/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la
 check_PROGRAMS += test-round
 TESTS += test-round
 
@@ -82,7 +82,7 @@ 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 = -no-undefined -rpath `pwd` # so libtool will really build an .so
-libtest_asmobs_la_LIBADD = ${top_builddir}/libguile/libguile.la
+libtest_asmobs_la_LIBADD = ${top_builddir}/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la
 BUILT_SOURCES += test-asmobs-lib.x
 check_SCRIPTS += test-asmobs
 TESTS += test-asmobs
@@ -92,7 +92,7 @@ noinst_LTLIBRARIES += libtest-ffi.la
 libtest_ffi_la_SOURCES = test-ffi-lib.c test-ffi-lib.x
 libtest_ffi_la_CFLAGS = ${test_cflags}
 libtest_ffi_la_LDFLAGS = -no-undefined -rpath `pwd` # so libtool will really build an .so
-libtest_ffi_la_LIBADD = ${top_builddir}/libguile/libguile.la
+libtest_ffi_la_LIBADD = ${top_builddir}/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la
 BUILT_SOURCES += test-ffi-lib.x
 check_SCRIPTS += test-ffi
 TESTS += test-ffi
@@ -100,28 +100,28 @@ TESTS += test-ffi
 # test-list
 test_list_SOURCES = test-list.c
 test_list_CFLAGS = ${test_cflags}
-test_list_LDADD = ${top_builddir}/libguile/libguile.la
+test_list_LDADD = ${top_builddir}/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la
 check_PROGRAMS += test-list
 TESTS += test-list
 
 # test-unwind
 test_unwind_SOURCES = test-unwind.c
 test_unwind_CFLAGS = ${test_cflags}
-test_unwind_LDADD = ${top_builddir}/libguile/libguile.la
+test_unwind_LDADD = ${top_builddir}/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la
 check_PROGRAMS += test-unwind
 TESTS += test-unwind
 
 # test-conversion
 test_conversion_SOURCES = test-conversion.c
 test_conversion_CFLAGS = ${test_cflags}
-test_conversion_LDADD = ${top_builddir}/libguile/libguile.la
+test_conversion_LDADD = ${top_builddir}/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la
 check_PROGRAMS += test-conversion
 TESTS += test-conversion
 
 # test-loose-ends
 test_loose_ends_SOURCES = test-loose-ends.c
 test_loose_ends_CFLAGS = ${test_cflags}
-test_loose_ends_LDADD = ${top_builddir}/libguile/libguile.la
+test_loose_ends_LDADD = ${top_builddir}/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la
 check_PROGRAMS += test-loose-ends
 TESTS += test-loose-ends
 
@@ -136,21 +136,21 @@ TESTS += test-use-srfi
 # test-scm-c-read
 test_scm_c_read_SOURCES = test-scm-c-read.c
 test_scm_c_read_CFLAGS = ${test_cflags}
-test_scm_c_read_LDADD = ${top_builddir}/libguile/libguile.la
+test_scm_c_read_LDADD = ${top_builddir}/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la
 check_PROGRAMS += test-scm-c-read
 TESTS += test-scm-c-read
 
 # test-scm-take-locale-symbol
 test_scm_take_locale_symbol_SOURCES = test-scm-take-locale-symbol.c
 test_scm_take_locale_symbol_CFLAGS = ${test_cflags}
-test_scm_take_locale_symbol_LDADD = ${top_builddir}/libguile/libguile.la
+test_scm_take_locale_symbol_LDADD = ${top_builddir}/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la
 check_PROGRAMS += test-scm-take-locale-symbol
 TESTS += test-scm-take-locale-symbol
 
 # test-scm-take-u8vector
 test_scm_take_u8vector_SOURCES = test-scm-take-u8vector.c
 test_scm_take_u8vector_CFLAGS = ${test_cflags}
-test_scm_take_u8vector_LDADD = ${top_builddir}/libguile/libguile.la
+test_scm_take_u8vector_LDADD = ${top_builddir}/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la
 check_PROGRAMS += test-scm-take-u8vector
 TESTS += test-scm-take-u8vector
 
@@ -159,7 +159,7 @@ noinst_LTLIBRARIES += libtest-extensions.la
 libtest_extensions_la_SOURCES = test-extensions-lib.c
 libtest_extensions_la_CFLAGS = ${test_cflags}
 libtest_extensions_la_LDFLAGS = -no-undefined -rpath `pwd` # so libtool will really build an .so
-libtest_extensions_la_LIBADD = ${top_builddir}/libguile/libguile.la
+libtest_extensions_la_LIBADD = ${top_builddir}/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la
 check_SCRIPTS += test-extensions
 TESTS += test-extensions
 
@@ -168,12 +168,12 @@ if BUILD_PTHREAD_SUPPORT
 
 # test-with-guile-module
 test_with_guile_module_CFLAGS = ${test_cflags}
-test_with_guile_module_LDADD = ${top_builddir}/libguile/libguile.la
+test_with_guile_module_LDADD = ${top_builddir}/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la
 check_PROGRAMS += test-with-guile-module
 TESTS += test-with-guile-module
 
 test_scm_with_guile_CFLAGS = ${test_cflags}
-test_scm_with_guile_LDADD = ${top_builddir}/libguile/libguile.la
+test_scm_with_guile_LDADD = ${top_builddir}/libguile/libguile-@GUILE_EFFECTIVE_VERSION@.la
 check_PROGRAMS += test-scm-with-guile
 TESTS += test-scm-with-guile