1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-29 19:30:36 +02:00

Allow $GUILE_FOR_BUILD to use its own environment when cross-compiling.

* am/guilec (.scm.go): Use `-L' to specify the search path.
* module/Makefile.am (ice-9/psyntax-pp.go): Likewise.

* meta/uninstalled-env.in (top_builddir): Leave $GUILE_LOAD_PATH,
  $GUILE_SYSTEM_PATH, and $GUILE_SYSTEM_EXTENSIONS_PATH unchanged when
  cross-compiling.
This commit is contained in:
Ludovic Courtès 2011-11-23 15:29:18 +01:00
parent 9447207f0c
commit f701287497
3 changed files with 55 additions and 44 deletions

View file

@ -26,6 +26,9 @@ AM_V_GUILEC_0 = @echo " GUILEC" $@;
SUFFIXES = .scm .go
.scm.go:
$(AM_V_GUILEC)GUILE_AUTO_COMPILE=0 \
$(AM_V_GUILEC)GUILE_AUTO_COMPILE=0 \
$(top_builddir)/meta/uninstalled-env \
guild compile --target="$(host)" $(GUILE_WARNINGS) -o "$@" "$<"
guild compile --target="$(host)" $(GUILE_WARNINGS) \
-L "$(abs_srcdir)" -L "$(abs_builddir)" \
-L "$(abs_top_srcdir)/guile-readline" \
-o "$@" "$<"

View file

@ -46,35 +46,40 @@ top_builddir="@top_builddir_absolute@"
exit 1
}
if [ x"$GUILE_LOAD_PATH" = x ]
then
GUILE_LOAD_PATH="${top_srcdir}/module:${top_srcdir}/guile-readline:${top_srcdir}"
if test "${top_srcdir}" != "${top_builddir}"; then
GUILE_LOAD_PATH="$GUILE_LOAD_PATH:${top_builddir}/module:${top_builddir}/guile-readline:${top_builddir}"
fi
else
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
export GUILE_LOAD_PATH
# When cross-compiling, let $GUILE_FOR_BUILD use its own .go files since
# the ones that are being built may be incompatible.
# 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 [ x"$GUILE_LOAD_PATH" = x ]
then
GUILE_LOAD_PATH="${top_srcdir}/module:${top_srcdir}/guile-readline:${top_srcdir}"
if test "${top_srcdir}" != "${top_builddir}"; then
GUILE_LOAD_PATH="$GUILE_LOAD_PATH:${top_builddir}/module:${top_builddir}/guile-readline:${top_builddir}"
fi
else
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
export GUILE_LOAD_PATH
if test "x$GUILE_LOAD_COMPILED_PATH" = "x"
then
GUILE_LOAD_COMPILED_PATH="${top_builddir}/module:${top_builddir}/guile-readline:${top_builddir}"
@ -91,22 +96,22 @@ then
done
fi
export GUILE_LOAD_COMPILED_PATH
fi
# 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
# 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)

View file

@ -79,10 +79,13 @@ ice-9/psyntax-pp.scm.gen:
.PHONY: ice-9/psyntax-pp.scm.gen
# Keep this rule in sync with that in `am/guilec'.
ice-9/psyntax-pp.go: ice-9/psyntax.scm ice-9/psyntax-pp.scm
$(AM_V_GUILEC) GUILE_AUTO_COMPILE=0 \
$(AM_V_GUILEC)GUILE_AUTO_COMPILE=0 \
$(top_builddir)/meta/uninstalled-env \
guild compile --target="$(host)" $(GUILE_WARNINGS) \
-L "$(abs_srcdir)" -L "$(abs_builddir)" \
-L "$(abs_top_srcdir)/guile-readline" \
-o "ice-9/psyntax-pp.go" "$(srcdir)/ice-9/psyntax.scm"
SCHEME_LANG_SOURCES = \