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
commit f701287497
3 changed files with 55 additions and 44 deletions

View file

@ -28,4 +28,7 @@ SUFFIXES = .scm .go
.scm.go:
$(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,6 +46,15 @@ top_builddir="@top_builddir_absolute@"
exit 1
}
# 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 [ x"$GUILE_LOAD_PATH" = x ]
then
GUILE_LOAD_PATH="${top_srcdir}/module:${top_srcdir}/guile-readline:${top_srcdir}"
@ -71,10 +80,6 @@ else
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.
if test "@cross_compiling@" = "no"
then
if test "x$GUILE_LOAD_COMPILED_PATH" = "x"
then
GUILE_LOAD_COMPILED_PATH="${top_builddir}/module:${top_builddir}/guile-readline:${top_builddir}"
@ -91,7 +96,6 @@ 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
@ -108,6 +112,7 @@ 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)
for dir in $subdirs_with_ltlibs ; do

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 \
$(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 = \