don't poke installed scm, go, etc files when running pre-inst-guile
authorAndy Wingo <wingo@pobox.com>
Thu, 18 Sep 2008 21:04:58 +0000 (23:04 +0200)
committerAndy Wingo <wingo@pobox.com>
Thu, 18 Sep 2008 21:04:58 +0000 (23:04 +0200)
* libguile/load.c (scm_init_load_path): If GUILE_SYSTEM_PATH is set, use
  that instead of the compiled-in suffix to the load path. And, as a
  special case, GUILE_SYSTEM_PATH= is interpreted as '(). A bit nasty.

* pre-inst-guile-env.in (top_builddir): Set GUILE_SYSTEM_PATH to the
  empty string, if it is not set.

libguile/load.c
pre-inst-guile-env.in

index 6dc05ef..0f4783b 100644 (file)
@@ -211,9 +211,17 @@ scm_init_load_path ()
   SCM path = SCM_EOL;
 
 #ifdef SCM_LIBRARY_DIR
-  path = scm_list_3 (scm_from_locale_string (SCM_SITE_DIR),
-                    scm_from_locale_string (SCM_LIBRARY_DIR),
-                    scm_from_locale_string (SCM_PKGDATA_DIR));
+  env = getenv ("GUILE_SYSTEM_PATH");
+  if (env && strcmp (env, "") == 0)
+    /* special-case interpret system-path=="" as meaning no system path instead
+       of '("") */
+    ; 
+  else if (env)
+    path = scm_parse_path (scm_from_locale_string (env), path);
+  else
+    path = scm_list_3 (scm_from_locale_string (SCM_SITE_DIR),
+                       scm_from_locale_string (SCM_LIBRARY_DIR),
+                       scm_from_locale_string (SCM_PKGDATA_DIR));
 #endif /* SCM_LIBRARY_DIR */
 
   env = getenv ("GUILE_LOAD_PATH");
index e83ca43..f9dd601 100644 (file)
@@ -66,6 +66,11 @@ else
 fi
 export GUILE_LOAD_PATH
 
+# Don't look in installed dirs for guile modules
+if ( env | grep -v -q -E '^GUILE_SYSTEM_PATH=' ); then
+  export GUILE_SYSTEM_PATH=
+fi
+
 # handle LTDL_LIBRARY_PATH (no clobber)
 ltdl_prefix=""
 dyld_prefix=""