noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj} target-libssp"
;;
bfin-*-*)
- noconfigdirs="$noconfigdirs gdb"
+ unsupported_languages="$unsupported_languages java"
+ noconfigdirs="$noconfigdirs target-boehm-gc gdb"
if test x${is_cross_compiler} != xno ; then
target_configdirs="${target_configdirs} target-bsp target-cygmon"
fi
new_enable_languages="${new_enable_languages}${language},"
potential_languages="${potential_languages}${language},"
missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
- case ${boot_language} in
- yes)
+ case "${boot_language}:,$enable_stage1_languages," in
+ yes:* | *:*,$language,* | *:*,yes, | *:*,all,)
# Add to (comma-separated) list of stage 1 languages.
- stage1_languages="${stage1_languages}${language},"
+ case ",$stage1_languages," in
+ *,$language,* | ,yes, | ,all,) ;;
+ *) stage1_languages="${stage1_languages}${language}," ;;
+ esac
# We need to bootstrap any supporting libraries.
bootstrap_target_libs="${bootstrap_target_libs}${target_libs},"
;;
# configuration, so that the top-level Makefile reconfigures them,
# like we used to do when configure itself was recursive.
-# Loop over modules. $extrasub must be used with care, limiting as
-# much as possible the usage of range addresses. That's because autoconf
-# splits the sed script to overcome limits in the number of commands,
-# and relying on carefully-timed sed passes may turn out to be very hard
-# to maintain later. In this particular case, you just have to be careful
-# not to nest @if/@endif pairs, because configure will not warn you at all.
+# Loop over modules. We used to use the "$extrasub" feature from Autoconf
+# but now we're fixing up the Makefile ourselves with the additional
+# commands passed to AC_CONFIG_FILES. Use separate variables
+# extrasub-{build,host,target} not because there is any reason to split
+# the substitutions up that way, but only to remain below the limit of
+# 99 commands in a script, for HP-UX sed.
+# Do not nest @if/@endif pairs, because configure will not warn you at all.
AC_ARG_ENABLE([bootstrap],
[ --enable-bootstrap enable bootstrapping @<:@yes if native build@:>@],,
;;
esac
+case ",$enable_languages,:$ENABLE_BUILD_WITH_CXX:$enable_bootstrap" in
+ *,c++,*:yes:yes) ;;
+ *:yes:yes)
+ AC_MSG_ERROR([bootstrapping with --enable-build-with-cxx requires c++ in --enable-languages])
+ ;;
+esac
+
+case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in
+ yes:yes:*\ gold\ *:*,c++,*) ;;
+ yes:yes:*\ gold\ *:*)
+ AC_MSG_ERROR([in a combined tree, bootstrapping with --enable-gold requires c++ in stage1_languages])
+ ;;
+esac
+
# Adjust the toplevel makefile according to whether bootstrap was selected.
case $enable_bootstrap in
yes)
AC_MSG_RESULT($BUILD_CONFIG)
AC_SUBST(BUILD_CONFIG)
+extrasub_build=
for module in ${build_configdirs} ; do
if test -z "${no_recursion}" \
&& test -f ${build_subdir}/${module}/Makefile; then
echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
rm -f ${build_subdir}/${module}/Makefile
fi
- extrasub="$extrasub
+ extrasub_build="$extrasub_build
/^@if build-$module\$/d
/^@endif build-$module\$/d
/^@if build-$module-$bootstrap_suffix\$/d
/^@endif build-$module-$bootstrap_suffix\$/d"
done
+extrasub_host=
for module in ${configdirs} ; do
if test -z "${no_recursion}"; then
for file in stage*-${module}/Makefile prev-${module}/Makefile ${module}/Makefile; do
fi
done
fi
- extrasub="$extrasub
+ extrasub_host="$extrasub_host
/^@if $module\$/d
/^@endif $module\$/d
/^@if $module-$bootstrap_suffix\$/d
/^@endif $module-$bootstrap_suffix\$/d"
done
+extrasub_target=
for module in ${target_configdirs} ; do
if test -z "${no_recursion}" \
&& test -f ${target_subdir}/${module}/Makefile; then
*) target_bootstrap_suffix=no-bootstrap ;;
esac
- extrasub="$extrasub
+ extrasub_target="$extrasub_target
/^@if target-$module\$/d
/^@endif target-$module\$/d
/^@if target-$module-$target_bootstrap_suffix\$/d
/^@endif target-$module-$target_bootstrap_suffix\$/d"
done
-extrasub="$extrasub
+# Do the final fixup along with target modules.
+extrasub_target="$extrasub_target
/^@if /,/^@endif /d"
# Create the serialization dependencies. This uses a temporary file.
esac
AC_SUBST(compare_exclusions)
-AC_OUTPUT(Makefile)
+AC_CONFIG_FILES([Makefile],
+ [sed "$extrasub_build" Makefile |
+ sed "$extrasub_host" |
+ sed "$extrasub_target" > mf$$
+ mv -f mf$$ Makefile],
+ [extrasub_build="$extrasub_build"
+ extrasub_host="$extrasub_host"
+ extrasub_target="$extrasub_target"])
+AC_OUTPUT