1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 11:40:18 +02:00

add $libir to the ltdl path, not $pkglibdir; add extensionsdir

* 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.
This commit is contained in:
Andy Wingo 2009-10-13 11:31:02 +02:00
parent d71db1f9a9
commit 28af5ee5ec
4 changed files with 13 additions and 7 deletions

View file

@ -601,7 +601,8 @@ libpath.h: $(srcdir)/Makefile.in $(top_builddir)/config.status
@echo '#define SCM_PKGDATA_DIR "$(pkgdatadir)"' >> libpath.tmp
@echo '#define SCM_LIBRARY_DIR "$(pkgdatadir)/$(GUILE_EFFECTIVE_VERSION)"'>>libpath.tmp
@echo '#define SCM_SITE_DIR "$(pkgdatadir)/site"' >> libpath.tmp
@echo '#define SCM_LIB_DIR "$(pkglibdir)"' >> libpath.tmp
@echo '#define SCM_LIB_DIR "$(libdir)"' >> libpath.tmp
@echo '#define SCM_EXTENSIONS_DIR "$(pkglibdir)/$(GUILE_EFFECTIVE_VERSION)/extensions"' >> libpath.tmp
@echo '#define SCM_CCACHE_DIR "$(pkglibdir)/$(GUILE_EFFECTIVE_VERSION)/ccache"' >> libpath.tmp
@echo '#define SCM_EFFECTIVE_VERSION "$(GUILE_EFFECTIVE_VERSION)"' >> libpath.tmp
@echo '#define SCM_BUILD_INFO { \' >> libpath.tmp
@ -625,6 +626,7 @@ libpath.h: $(srcdir)/Makefile.in $(top_builddir)/config.status
@echo ' { "pkglibdir", "$(pkglibdir)" }, \' >> libpath.tmp
@echo ' { "pkgincludedir", "$(pkgincludedir)" }, \' \
>> libpath.tmp
@echo ' { "extensionsdir", "$(pkglibdir)/$(GUILE_EFFECTIVE_VERSION)/extensions" }, \' >> libpath.tmp
@echo ' { "guileversion", "@GUILE_VERSION@" }, \' >> libpath.tmp
@echo ' { "libguileinterface", "@LIBGUILE_INTERFACE@" }, \' \
>> libpath.tmp

View file

@ -118,17 +118,20 @@ sysdep_dynl_init ()
lt_dlinit ();
env = getenv ("GUILE_SYSTEM_LTDL_PATH");
env = getenv ("GUILE_SYSTEM_EXTENSIONS_PATH");
if (env && strcmp (env, "") == 0)
/* special-case interpret system-ltdl-path=="" as meaning no system path,
which is the case during the build */
;
else if (env)
/* FIXME: should this be a colon-separated path? Or is the only point to
allow the build system to turn off the installed extensions path? */
lt_dladdsearchdir (env);
#ifdef SCM_LIB_DIR
else
lt_dladdsearchdir (SCM_LIB_DIR);
#endif
{
lt_dladdsearchdir (SCM_LIB_DIR);
lt_dladdsearchdir (SCM_EXTENSIONS_DIR);
}
}
scm_t_bits scm_tc16_dynamic_obj;

View file

@ -7,6 +7,7 @@ datadir=@datadir@
pkgdatadir=@datadir@/guile
sitedir=@sitedir@
extensionsdir=@libdir@/guile/@GUILE_EFFECTIVE_VERSION@/extensions
libguileinterface=@LIBGUILE_INTERFACE@
Name: GNU Guile

View file

@ -89,8 +89,8 @@ if ( env | grep -v -q -E '^GUILE_SYSTEM_COMPILED_PATH=' ); then
export GUILE_SYSTEM_COMPILED_PATH=
fi
# Don't look in installed dirs for dlopen-able modules
if ( env | grep -v -q -E '^GUILE_SYSTEM_LTDL_PATH=' ); then
export GUILE_SYSTEM_LTDL_PATH=
if ( env | grep -v -q -E '^GUILE_SYSTEM_EXTENSIONS_PATH=' ); then
export GUILE_SYSTEM_EXTENSIONS_PATH=
fi
# handle LTDL_LIBRARY_PATH (no clobber)