* Makefile.am:
* libguile/Makefile.am (modincludedir): Install into
$pkgincludedir/$GUILE_EFFECTIVE_VERSION. This allows multiple Guile
development packages to be installed at once.
* guile-readline/Makefile.am (modincludedir):
* srfi/Makefile.am (srfiincludedir): Likewise.
* meta/guile-2.0.pc.in (Cflags): Add the appropriate -I line so that
user code picks up the new location transparently.
* 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.
* meta/uninstalled-env.in: Don't use the `-q' and `-E' options, which are
specific to GNU grep. Don't set-and-export environment variables at
once since this is a GNU Bash extension.
* libguile/Makefile.am (libpath.h): Fix SCM_LIB_DIR to point to the
libdir, not pkglibdir. Add SCM_EXTENSIONS_DIR, for a dir to put in the
dynamic-link search path that's not managed by ldconfig or the like;
and put this dir in the "extensionsdir" key of %guile-build-info.
* libguile/dynl.c (sysdep_dynl_init): Rename the installed-libdir
environment var to GUILE_SYSTEM_EXTENSIONS_PATH (from
GUILE_SYSTEM_LTDL_PATH). Also add SCM_EXTENSIONS_DIR to the ltdl
search path in the default case.
* meta/uninstalled-env.in: Adapt override to match.
* meta/guile-2.0.pc.in: Add extensionsdir, so you can pkg-config
--variable=extensionsdir guile-2.0.
make distcheck is currently failing for me with:
In file included from /usr/local/include/libguile/threads.h:35,
from /usr/local/include/libguile/async.h:28,
from /usr/local/include/libguile.h:37,
from ../../examples/box/box.c:22:
/usr/local/include/libguile/pthread-threads.h:33:31: error: libguile/boehm-gc.h: No such file or directory
In file included from /usr/local/include/libguile.h:93,
from ../../examples/box/box.c:22:
- which is because it's picking up a load of installed headers,
instead of those in the _inst tree
- which is because there is no output from the preceding guile-config
invocation:
PATH=/home/neil/SW/Guile/ovnight/guile-master-20090924/_inst/bin:$PATH PKG_CONFIG_PATH=/home/neil/SW/Guile/ovnight/guile-master-20090924/_inst/lib/pkgconfig /home/neil/SW/Guile/ovnight/guile-master-20090924/_inst/bin/guile-config compile
- which is because .../_inst/bin/guile-config is empty
- which is because the rule in meta/Makefile.am that generates
guile-config is missing $(srcdir), and so doesn't find
guile-config.in.
* meta/Makefile.am (guile-config): Look for guile-config.in in
$(srcdir).
* meta/Makefile.am (guile-config): New target.
(EXTRA_DIST): Add `guile-config.in'.
* meta/guile-config.in: New, formerly `guile-config'. Use the right
installed `guile', with the right $PKG_CONFIG_PATH. Disable
auto-compilation.
(%pkg-config-program): New variable.
(pkg-config): Use it.
* libguile/Makefile.am (libpath.h): Fix pkgdatadir, pkglibdir, and
pkgincludedir entries. Add a new define, SCM_LIB_DIR.
* libguile/dynl.c (sysdep_dynl_init): Add the libdir to the libltdl
search path. Should fix
http://thread.gmane.org/gmane.lisp.guile.bugs/4289/focus=4296 -- that
is, it should allow guile to be invoked from whereever it is
installed, without munging LTDL_LIBRARY_PATH or the like variables.
There is a trick though -- during the build, we don't want to be
looking in the $libdir for loadable modules. So as with
GUILE_SYSTEM_PATH, we have GUILE_SYSTEM_LTDL_PATH.
* meta/uninstalled-env.in: Set GUILE_SYSTEM_LTDL_PATH to "" when
building.
This is needed because <gc/gc.h> is included in public headers (via
<libguile/boehm-gc.h>.
* meta/guile-2.0-uninstalled.pc.in (Cflags): Add `@BDW_GC_CFLAGS'.
* meta/guile-2.0.pc.in (Cflags): Likewise.
* meta/Makefile.am (bin_SCRIPTS): Re-add guile-tools here (removed in
54b38caf19). Otherwise guile-tools
doesn't get installed. I think that 1.9.2 had this bug.
* libguile/load.c (scm_init_load_path): Append a slash after
XDG_CACHE_HOME.
* meta/gdb-uninstalled-guile.in:
* meta/guile.in (XDG_CACHE_HOME): Export this var so we write to a cache
within the build directory. Probably we should have a GUILE_CACHE_DIR
to be more specific, though.
* Makefile.am (clean-local): Clear the cache when making clean.
* examples/Makefile.am: Fix the installed guile-config invocation to set
PKG_CONFIG_PATH.
* meta/Makefile.am (EXTRA_DIST): Dist the bin_SCRIPTS.
* meta/guile-config (pkg-config): Better error messages if pkg-config
invocation fails.
* meta/uninstalled-env.in (PATH): Now that guile-config and guile-tools
are not generated, make it the srcdir/meta instead of the builddir.
(Guile itself will be picked up from libguile.)
* meta/guile-tools: Instead of fixing scripts I should have been fixing
the script runner.
* module/scripts/compile.scm:
* module/scripts/snarf-guile-m4-docs.scm: Fix to take rest args.
* meta/guile-1.8.pc.in: Include a pkgdatadir, which will map down to
`guile-config info pkgdatadir', used in existing guile.m4 files.
* meta/guile-config: Fix guile-config info varname. Facepalm.
* meta/guile.m4: Make GUILE_SITE_DIR use the sitedir variable instead.
Really it should use pkg-config directly, though.
* meta/guile-tools: We can't use srfi-1, because on a fresh checkout
the srfi-1 shlib isn't built yet. Bummer.
* meta/uninstalled-env.in: Fix up the DYLD lines for BSDen.
* module/scripts/snart-guile-m4-docs.scm: Fix expected arguments.
* meta/guile-tools: Changed to be a scheme script. Instead of looking for
executables in a "scripts dir", we just look for modules in (scripts),
and load the modules directly.
* module/Makefile.am:
* module/scripts/: Move the scripts into module/ so they can be compiled.
Rename scripts from `foo' to `foo.scm'.
* libguile/Makefile.am: Invoke the snarf->texi code via guile-tools.
* configure.in:
* .gitignore: Update for changes.
* configure.in:
* meta/Makefile.am (EXTRA_DIST): Remove guile-config.in bits.
* meta/guile-config: Reimplement to work on top of pkg-config. This lets
guile-config not be substed by configure.
* meta/uninstalled-env.in: Remove the path to guile-config, belatedly.
Set the pkg-config path correctly.
* test-suite/standalone/test-extensions:
* test-suite/standalone/test-extensions-lib.c:
* test-suite/standalone/Makefile.am: Add a test case for the
load-extension bug.
* meta/gdb-uninstalled-guile.in: Fix the path to include meta/.
* README: Add more info about building against an uninstalled Guile.
* meta/: New directory. The proximate cause of its creation is that I
want to be able to build external packages against uninstalled Guile,
and to do that I need guile-tools in the PATH, but I don't want
$top_builddir/libtool in the path. But it seems like a good
reorganization, for things that are /about/ Guile: pkg-config files, m4
files, guile-config... then we also include uninstalled info: the
environment, the pre-inst-guile script, etc.
* meta/guile-1.8-uninstalled.pc.in: New pkg-config template. pkg-config
prefers -uninstalled pkg-config files, if they are in its path.
* meta/Makefile.am:
* meta/ChangeLog-2008:
* meta/gdb-uninstalled-guile.in:
* meta/guile-1.8.pc.in:
* meta/guile-config.in:
* meta/guile.m4:
* meta/guile-tools.in: Moved to meta/.
* meta/guile.in: This is the new name of pre-inst-guile.in.
* meta/uninstalled-env.in: And this, pre-inst-guile-env.in.
* Makefile.am:
* am/guilec:
* am/pre-inst-guile:
* check-guile.in:
* configure.in:
* doc/ref/Makefile.am:
* gc-benchmarks/run-benchmark.scm:
* test-suite/standalone/Makefile.am:
* test-suite/standalone/README:
* testsuite/Makefile.am: Adapt to meta/ change.