Merge commit '45a28515c13348dfd18e53038ad63dd091a5a3c1'
[bpt/guile.git] / meta / uninstalled-env.in
index 02c0e31..567c6e2 100644 (file)
@@ -1,13 +1,13 @@
 #!/bin/sh
 
-#      Copyright (C) 2003, 2006, 2008 Free Software Foundation
+#      Copyright (C) 2003, 2006, 2008, 2009, 2010, 2011, 2012 Free Software Foundation
 #
 #   This file is part of GUILE.
 #
-# This script is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
+# This script is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 3 of the
+# License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -16,7 +16,8 @@
 #
 # You should have received a copy of the GNU Lesser General Public
 # License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA
 
 # NOTE: If you update this file, please update uninstalled.in as
 # well, if appropriate.
@@ -31,7 +32,7 @@
 # Example: ../../uninstalled-env ./guile-test-foo
 
 # config
-subdirs_with_ltlibs="srfi guile-readline libguile"       # maintain me
+subdirs_with_ltlibs="guile-readline libguile"       # maintain me
 
 # env (set by configure)
 top_srcdir="@top_srcdir_absolute@"
@@ -45,42 +46,88 @@ top_builddir="@top_builddir_absolute@"
     exit 1
 }
 
-if [ x"$GUILE_LOAD_PATH" = x ]
+# When cross-compiling, let $GUILE_FOR_BUILD use its own .go files since
+# the ones that are being built may be incompatible ($GUILE_FOR_BUILD is
+# typically used to run `guild compile --target=$host'.)  Likewise,
+# $GUILE_FOR_BUILD must use its own source files when booting; for
+# instance, $srcdir/module/ice-9/boot-9.scm must not be in its search
+# path, because it would then end up using its C evaluator to run the
+# compiler.
+if test "@cross_compiling@" = "no"
 then
-    if test "${top_srcdir}" != "${top_builddir}"; then
-        GUILE_LOAD_PATH="${top_builddir}/guile-readline:${top_srcdir}/guile-readline:${top_builddir}:${top_srcdir}:${top_builddir}/module:${top_srcdir}/module"
+    if [ x"$GUILE_LOAD_PATH" = x ]
+    then
+       GUILE_LOAD_PATH="${top_srcdir}/module:${top_srcdir}/guile-readline"
+       if test "${top_srcdir}" != "${top_builddir}"; then
+            GUILE_LOAD_PATH="$GUILE_LOAD_PATH:${top_builddir}/module:${top_builddir}/guile-readline"
+       fi
     else
-        GUILE_LOAD_PATH="${top_srcdir}/guile-readline:${top_srcdir}:${top_srcdir}/module:${top_srcdir}/module"
+       for d in "/module" "/guile-readline"
+       do
+            # This hair prevents double inclusion.
+            # The ":" prevents prefix aliasing.
+           case x"$GUILE_LOAD_PATH" in
+               x*${top_srcdir}${d}:*) ;;
+               x*${top_srcdir}${d}) ;;
+               *) GUILE_LOAD_PATH="${top_srcdir}${d}:$GUILE_LOAD_PATH" ;;
+           esac
+           case x"$GUILE_LOAD_PATH" in
+               x*${top_builddir}${d}:*) ;;
+               x*${top_builddir}${d}) ;;
+               *) GUILE_LOAD_PATH="${top_builddir}${d}:$GUILE_LOAD_PATH" ;;
+           esac
+       done
     fi
-else
-  for d in "${top_srcdir}" "${top_srcdir}/guile-readline" \
-           "${top_srcdir}/module" "${top_builddir}/module"
-  do
-    # This hair prevents double inclusion.
-    # The ":" prevents prefix aliasing.
-    case x"$GUILE_LOAD_PATH" in
-      x*${d}:*) ;;
-      *) GUILE_LOAD_PATH="${d}:$GUILE_LOAD_PATH" ;;
-    esac
-  done
-fi
-export GUILE_LOAD_PATH
+    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=
+    if test "x$GUILE_LOAD_COMPILED_PATH" = "x"
+    then
+       GUILE_LOAD_COMPILED_PATH="${top_builddir}/module:${top_builddir}/guile-readline"
+    else
+       for d in "/module" "/guile-readline"
+       do
+            # This hair prevents double inclusion.
+            # The ":" prevents prefix aliasing.
+           case x"$GUILE_LOAD_COMPILED_PATH" in
+               x*${top_builddir}${d}:*) ;;
+               x*${top_builddir}${d}) ;;
+               *) GUILE_LOAD_COMPILED_PATH="${top_builddir}${d}:$GUILE_LOAD_COMPILED_PATH" ;;
+           esac
+       done
+    fi
+    export GUILE_LOAD_COMPILED_PATH
+
+    # Don't look in installed dirs for guile modules
+    if ( env | grep -v '^GUILE_SYSTEM_PATH=' > /dev/null ); then
+       GUILE_SYSTEM_PATH=
+       export GUILE_SYSTEM_PATH
+    fi
+    # Don't look in installed dirs for compiled guile modules
+    if ( env | grep -v '^GUILE_SYSTEM_COMPILED_PATH=' > /dev/null ); then
+       GUILE_SYSTEM_COMPILED_PATH=
+       export GUILE_SYSTEM_COMPILED_PATH
+    fi
+    # Don't look in installed dirs for dlopen-able modules
+    if ( env | grep -v '^GUILE_SYSTEM_EXTENSIONS_PATH=' > /dev/null ); then
+       GUILE_SYSTEM_EXTENSIONS_PATH=
+       export GUILE_SYSTEM_EXTENSIONS_PATH
+    fi
 fi
 
 # handle LTDL_LIBRARY_PATH (no clobber)
-ltdl_prefix=""
-dyld_prefix=""
 for dir in $subdirs_with_ltlibs ; do
-    ltdl_prefix="${top_builddir}/${dir}:${ltdl_prefix}"
-    dyld_prefix="${top_builddir}/${dir}/.libs:${dyld_prefix}"
+    if test -z "$LTDL_LIBRARY_PATH"; then
+      LTDL_LIBRARY_PATH="${top_builddir}/${dir}"
+    else
+      LTDL_LIBRARY_PATH="${top_builddir}/${dir}:${LTDL_LIBRARY_PATH}"
+    fi
+    if test -z "$DYLD_LIBRARY_PATH"; then
+      DYLD_LIBRARY_PATH="${top_builddir}/${dir}/.libs"
+    else
+      DYLD_LIBRARY_PATH="${top_builddir}/${dir}/.libs:${DYLD_LIBRARY_PATH}"
+    fi
 done
-LTDL_LIBRARY_PATH="${ltdl_prefix}$LTDL_LIBRARY_PATH"
 export LTDL_LIBRARY_PATH
-DYLD_LIBRARY_PATH="${dyld_prefix}${top_builddir}/libguile/.libs:$DYLD_LIBRARY_PATH"
 export DYLD_LIBRARY_PATH
 
 if [ x"$PKG_CONFIG_PATH" = x ]
@@ -93,7 +140,14 @@ export PKG_CONFIG_PATH
 
 # handle PATH (no clobber)
 PATH="${top_builddir}/libguile:${PATH}"
-PATH="${top_builddir}/meta:${PATH}"
+PATH="${top_srcdir}/meta:${PATH}"
+if test "x${top_srcdir}" != "x${top_builddir}"; then
+  PATH="${top_builddir}/meta:${PATH}"
+fi
 export PATH
 
+# Define $GUILE, used by `guild'.
+GUILE="${top_builddir}/meta/guile"
+export GUILE
+
 exec "$@"