2004-08-17 Paolo Bonzini <bonzini@gnu.org>
authorbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 17 Aug 2004 07:27:16 +0000 (07:27 +0000)
committerbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 17 Aug 2004 07:27:16 +0000 (07:27 +0000)
* Makefile.in: Regenerate.
* configure: Regenerate.

* Makefile.def (bootstrap-stage): Rename extra_*_flags to
stage_*_flags.
* Makefile.tpl (configure-[+module+], all-[+module+]): Exit
for bootstrapped modules if toplevel bootstrap is going.
(GCC bootstrap): Generate per-stage targets for all bootstrapped
modules.  Adjust for changes in Makefile.def.  Enable several
rules even in non-bootstrap mode, just to avoid peppering the
template with unnecessary "@if/@endif gcc-bootstrap" pairs.
(stage-[+prev+]-bubble): Remove.

* Makefile.def (Dependencies): Depend on all-build-bison,
all-build-flex, all-build-byacc, all-build-texinfo, rather
than the host variations.
* Makefile.tpl (BUILD_DIR_PREFIX): Remove.  Replace throughout
with BUILD_SUBDIR.
(BISON): Update for recent Bisons.
(YACC): Fix typo.
(cross): Depend on all-build.
(all): Do not depend on all-build.
(prebootstrap): Remove.
(dep-kind): Accept separate prefixes for MODULE and ON variables.
(Prebootstrap dependencies): Add them to the per-stage targets
and to all-prebootstrap.
* configure.in (build_configdirs): Always enable build_tools.
(BUILD_DIR_PREFIX): Remove.

* Makefile.def (gcc): Add target variable.
(gdb, expect, guile, tk, tix): Replace with_x with extra_make_flags.
* Makefile.tpl (Autogenerated `all-*' targets): Invoke $(TARGET-*)
in the recursive `make', instead of hardwiring `all'.
(Autogenerated TARGET-* variables): New.

gcc/ChangeLog:
2004-08-17  Paolo Bonzini  <bonzini@gnu.org>

* configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
No need to check if in a cross configuration.
* configure: Regenerate.

* calls.c (precompute_register_parameters):
Inline preserve_subexpressions_p ().
* expmed.c (expand_mult_const, emit_store_flag): Likewise.
* optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
Likewise.
* expr.c (get_subtarget): Likewise.
* rtl.h (preserve_subexpressions_p): Remove.
* stmt.c (preserve_subexpressions_p): Remove.

* dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
Abort on gimplified cases.

git-svn-id: svn://gcc.gnu.org/svn/gcc/trunk@86111 138bc75d-0d04-0410-961f-82ee72b054a4

17 files changed:
ChangeLog
Makefile.def
Makefile.in
Makefile.tpl
configure
configure.in
gcc/ChangeLog
gcc/calls.c
gcc/config/i386/i386.c
gcc/configure
gcc/configure.ac
gcc/dojump.c
gcc/expmed.c
gcc/expr.c
gcc/optabs.c
gcc/rtl.h
gcc/stmt.c

index 259cb5d..191caee 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,40 @@
+2004-08-16  Paolo Bonzini  <bonzini@gnu.org>
+
+       * Makefile.in: Regenerate.
+       * configure: Regenerate.
+
+       * Makefile.def (bootstrap-stage): Rename extra_*_flags to
+       stage_*_flags.
+       * Makefile.tpl (configure-[+module+], all-[+module+]): Exit
+       for bootstrapped modules if toplevel bootstrap is going.
+       (GCC bootstrap): Generate per-stage targets for all bootstrapped
+       modules.  Adjust for changes in Makefile.def.  Enable several
+       rules even in non-bootstrap mode, just to avoid peppering the
+       template with unnecessary "@if/@endif gcc-bootstrap" pairs.
+       (stage-[+prev+]-bubble): Remove.
+
+       * Makefile.def (Dependencies): Depend on all-build-bison,
+       all-build-flex, all-build-byacc, all-build-texinfo, rather
+       than the host variations.
+       * Makefile.tpl (BUILD_DIR_PREFIX): Remove.  Replace throughout
+       with BUILD_SUBDIR.
+       (BISON): Update for recent Bisons.
+       (YACC): Fix typo.
+       (cross): Depend on all-build.
+       (all): Do not depend on all-build.
+       (prebootstrap): Remove.
+       (dep-kind): Accept separate prefixes for MODULE and ON variables.
+       (Prebootstrap dependencies): Add them to the per-stage targets
+       and to all-prebootstrap.
+       * configure.in (build_configdirs): Always enable build_tools.
+       (BUILD_DIR_PREFIX): Remove.
+
+       * Makefile.def (gcc): Add target variable.
+       (gdb, expect, guile, tk, tix): Replace with_x with extra_make_flags.
+       * Makefile.tpl (Autogenerated `all-*' targets): Invoke $(TARGET-*)
+       in the recursive `make', instead of hardwiring `all'.
+       (Autogenerated TARGET-* variables): New.
+
 2004-08-13  Brian Booth  <bbooth@redhat.com>
 
        * MAINTAINERS: Remove myself from write-after-approval.
index 16dad15..c9de58b 100644 (file)
@@ -25,7 +25,6 @@ AutoGen definitions Makefile.tpl;
 // that recursive target in its Makefile.
 
 build_modules= { module= libiberty; };
-build_modules= { module= libbanshee; };
 build_modules= { module= bison; };
 build_modules= { module= byacc; };
 build_modules= { module= flex; };
@@ -53,6 +52,7 @@ host_modules= { module= find; };
 host_modules= { module= flex; no_check_cross= true; };
 host_modules= { module= gas; bootstrap=true; };
 host_modules= { module= gcc; bootstrap=true; 
+               target="`if [ -f gcc/stage_last ]; then echo quickstrap ; else echo all; fi`";
                extra_make_flags="$(EXTRA_GCC_FLAGS)"; };
 host_modules= { module= gawk; };
 host_modules= { module= gettext; };
@@ -94,10 +94,10 @@ host_modules= { module= uudecode; };
 host_modules= { module= wdiff; };
 host_modules= { module= zip; no_check_cross=true; };
 host_modules= { module= zlib; no_install=true; no_check=true; bootstrap=true; };
-host_modules= { module= gdb; with_x=true; };
-host_modules= { module= expect; with_x=true; };
-host_modules= { module= guile; with_x=true; };
-host_modules= { module= tk; with_x=true; };
+host_modules= { module= gdb; extra_make_flags="$(X11_FLAGS_TO_PASS)"; };
+host_modules= { module= expect; extra_make_flags="$(X11_FLAGS_TO_PASS)"; };
+host_modules= { module= guile; extra_make_flags="$(X11_FLAGS_TO_PASS)"; };
+host_modules= { module= tk; extra_make_flags="$(X11_FLAGS_TO_PASS)"; };
 host_modules= { module= libtermcap; no_check=true; 
                 missing=mostlyclean;
                 missing=clean;
@@ -238,14 +238,12 @@ dependencies = { module=configure-gcc; on=configure-intl; };
 dependencies = { module=configure-gcc; on=configure-binutils; };
 dependencies = { module=configure-gcc; on=configure-gas; };
 dependencies = { module=configure-gcc; on=configure-ld; };
-dependencies = { module=configure-gcc; on=configure-bison; };
-dependencies = { module=configure-gcc; on=configure-flex; };
 dependencies = { module=all-gcc; on=all-libiberty; hard=true; };
 dependencies = { module=all-gcc; on=all-intl; };
-dependencies = { module=all-gcc; on=all-texinfo; };
-dependencies = { module=all-gcc; on=all-bison; };
-dependencies = { module=all-gcc; on=all-byacc; };
-dependencies = { module=all-gcc; on=all-flex; };
+dependencies = { module=all-gcc; on=all-build-texinfo; };
+dependencies = { module=all-gcc; on=all-build-bison; };
+dependencies = { module=all-gcc; on=all-build-byacc; };
+dependencies = { module=all-gcc; on=all-build-flex; };
 dependencies = { module=all-gcc; on=all-binutils; };
 dependencies = { module=all-gcc; on=all-gas; };
 dependencies = { module=all-gcc; on=all-ld; };
@@ -268,8 +266,8 @@ dependencies = { module=all-gdb; on=all-libiberty; };
 dependencies = { module=all-gdb; on=all-opcodes; };
 dependencies = { module=all-gdb; on=all-bfd; };
 dependencies = { module=all-gdb; on=all-readline; };
-dependencies = { module=all-gdb; on=all-bison; };
-dependencies = { module=all-gdb; on=all-byacc; };
+dependencies = { module=all-gdb; on=all-build-bison; };
+dependencies = { module=all-gdb; on=all-build-byacc; };
 dependencies = { module=all-gdb; on=all-sim; };
 dependencies = { module=install-gdb; on=install-tcl; };
 dependencies = { module=install-gdb; on=install-tk; };
@@ -290,9 +288,9 @@ dependencies = { module=all-bfd; on=all-intl; };
 dependencies = { module=all-binutils; on=all-libiberty; };
 dependencies = { module=all-binutils; on=all-opcodes; };
 dependencies = { module=all-binutils; on=all-bfd; };
-dependencies = { module=all-binutils; on=all-flex; };
-dependencies = { module=all-binutils; on=all-bison; };
-dependencies = { module=all-binutils; on=all-byacc; };
+dependencies = { module=all-binutils; on=all-build-flex; };
+dependencies = { module=all-binutils; on=all-build-bison; };
+dependencies = { module=all-binutils; on=all-build-byacc; };
 dependencies = { module=all-binutils; on=all-intl; };
 
 // We put install-opcodes before install-binutils because the installed
@@ -314,9 +312,9 @@ dependencies = { module=all-gprof; on=all-intl; };
 dependencies = { module=all-ld; on=all-libiberty; };
 dependencies = { module=all-ld; on=all-bfd; };
 dependencies = { module=all-ld; on=all-opcodes; };
-dependencies = { module=all-ld; on=all-bison; };
-dependencies = { module=all-ld; on=all-byacc; };
-dependencies = { module=all-ld; on=all-flex; };
+dependencies = { module=all-ld; on=all-build-bison; };
+dependencies = { module=all-ld; on=all-build-byacc; };
+dependencies = { module=all-ld; on=all-build-flex; };
 dependencies = { module=all-ld; on=all-intl; };
 
 dependencies = { module=all-opcodes; on=all-bfd; };
@@ -358,43 +356,43 @@ dependencies = { module=all-sim; on=configure-gdb; };
 
 // Other host modules.
 dependencies = { module=all-fastjar; on=all-zlib; };
-dependencies = { module=all-fastjar; on=all-texinfo; };
+dependencies = { module=all-fastjar; on=all-build-texinfo; };
 dependencies = { module=all-fastjar; on=all-libiberty; };
 
 // Warning, these are not well tested.
 dependencies = { module=all-autoconf; on=all-m4; };
-dependencies = { module=all-autoconf; on=all-texinfo; };
+dependencies = { module=all-autoconf; on=all-build-texinfo; };
 dependencies = { module=all-automake; on=all-m4; };
-dependencies = { module=all-automake; on=all-texinfo; };
+dependencies = { module=all-automake; on=all-build-texinfo; };
 dependencies = { module=all-automake; on=all-autoconf; };
 dependencies = { module=all-bison; on=all-intl; };
-dependencies = { module=all-bison; on=all-texinfo; };
+dependencies = { module=all-bison; on=all-build-texinfo; };
 dependencies = { module=all-diff; on=all-intl; };
-dependencies = { module=all-diff; on=all-texinfo; };
+dependencies = { module=all-diff; on=all-build-texinfo; };
 dependencies = { module=all-fileutils; on=all-intl; };
-dependencies = { module=all-fileutils; on=all-texinfo; };
-dependencies = { module=all-flex; on=all-bison; };
-dependencies = { module=all-flex; on=all-byacc; };
+dependencies = { module=all-fileutils; on=all-build-texinfo; };
+dependencies = { module=all-flex; on=all-build-bison; };
+dependencies = { module=all-flex; on=all-build-byacc; };
 dependencies = { module=all-flex; on=all-intl; };
 dependencies = { module=all-flex; on=all-m4; };
-dependencies = { module=all-flex; on=all-texinfo; };
+dependencies = { module=all-flex; on=all-build-texinfo; };
 dependencies = { module=all-gzip; on=all-intl; };
 dependencies = { module=all-gzip; on=all-zlib; };
-dependencies = { module=all-gzip; on=all-texinfo; };
+dependencies = { module=all-gzip; on=all-build-texinfo; };
 dependencies = { module=all-hello; on=all-intl; };
-dependencies = { module=all-hello; on=all-texinfo; };
+dependencies = { module=all-hello; on=all-build-texinfo; };
 dependencies = { module=all-m4; on=all-intl; };
-dependencies = { module=all-m4; on=all-texinfo; };
+dependencies = { module=all-m4; on=all-build-texinfo; };
 dependencies = { module=all-make; on=all-intl; };
-dependencies = { module=all-make; on=all-texinfo; };
-dependencies = { module=all-patch; on=all-texinfo; };
-dependencies = { module=all-make; on=all-texinfo; };
+dependencies = { module=all-make; on=all-build-texinfo; };
+dependencies = { module=all-patch; on=all-build-texinfo; };
+dependencies = { module=all-make; on=all-build-texinfo; };
 dependencies = { module=all-prms; on=all-libiberty; };
-dependencies = { module=all-recode; on=all-texinfo; };
-dependencies = { module=all-sed; on=all-texinfo; };
+dependencies = { module=all-recode; on=all-build-texinfo; };
+dependencies = { module=all-sed; on=all-build-texinfo; };
 dependencies = { module=all-send-pr; on=all-prms; };
-dependencies = { module=all-tar; on=all-texinfo; };
-dependencies = { module=all-uudecode; on=all-texinfo; };
+dependencies = { module=all-tar; on=all-build-texinfo; };
+dependencies = { module=all-uudecode; on=all-build-texinfo; };
 
 // Target modules.  These can also have dependencies on the language
 // environment (e.g. on libstdc++).
@@ -438,32 +436,32 @@ dependencies = { module=all-target-winsup; on=all-target-libtermcap; };
 // Toplevel bootstrap
 bootstrap_stage = {
        id=1 ;
-       extra_configure_flags='--disable-intermodule \
+       stage_configure_flags='--disable-intermodule \
          --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"' ;
-       extra_make_flags='CFLAGS="$(STAGE1_CFLAGS)"' ; };
+       stage_make_flags='CFLAGS="$(STAGE1_CFLAGS)"' ; };
 bootstrap_stage = {
        id=2 ; prev=1 ;
        bootstrap_target=bootstrap2 ;
-       extra_configure_flags="@stage2_werror_flag@" ;
-       extra_make_flags="" ; };
+       stage_configure_flags="@stage2_werror_flag@" ;
+       stage_make_flags="" ; };
 bootstrap_stage = {
        id=3 ; prev=2 ;
        compare_target=compare ;
        bootstrap_target=bootstrap ;
        cleanstrap_target=cleanstrap ;
-       extra_configure_flags="@stage2_werror_flag@" ;
-       extra_make_flags="" ; };
+       stage_configure_flags="@stage2_werror_flag@" ;
+       stage_make_flags="" ; };
 bootstrap_stage = {
        id=4 ; prev=3 ;
        compare_target=compare3 ;
        bootstrap_target=bootstrap4 ;
-       extra_configure_flags="@stage2_werror_flag@" ;
-       extra_make_flags="" ; };
+       stage_configure_flags="@stage2_werror_flag@" ;
+       stage_make_flags="" ; };
 bootstrap_stage = {
        id=profile ; prev=1 ;
-       extra_configure_flags="@stage2_werror_flag@" ;
-       extra_make_flags='CFLAGS="$(BOOT_CFLAGS) -fprofile-generate"' ; };
+       stage_configure_flags="@stage2_werror_flag@" ;
+       stage_make_flags='CFLAGS="$(BOOT_CFLAGS) -fprofile-generate"' ; };
 bootstrap_stage = {
        id=feedback ; prev=1 ;
-       extra_configure_flags="@stage2_werror_flag@" ;
-       extra_make_flags='CFLAGS="$(BOOT_CFLAGS) -fprofile-use"' ; };
+       stage_configure_flags="@stage2_werror_flag@" ;
+       stage_make_flags='CFLAGS="$(BOOT_CFLAGS) -fprofile-use"' ; };
index e2c9a2b..fa9432b 100644 (file)
@@ -240,43 +240,40 @@ CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
 
 CXX_FOR_BUILD = $(CXX)
 
-# Path to the build directory for a Canadian cross, empty otherwise.
-BUILD_DIR_PREFIX = @BUILD_DIR_PREFIX@
-
 # Special variables passed down in EXTRA_GCC_FLAGS.  They are defined
 # here so that they can be overridden by Makefile fragments.
 BUILD_PREFIX = @BUILD_PREFIX@
 BUILD_PREFIX_1 = @BUILD_PREFIX_1@
 
 CONFIGURED_BISON = @CONFIGURED_BISON@
-BISON = `if [ -f $$r/$(BUILD_DIR_PREFIX)/bison/bison ] ; then \
-           echo $$r/$(BUILD_DIR_PREFIX)/bison/bison -L $$s/bison/ ; \
+BISON = `if [ -f $$r/$(BUILD_SUBDIR)/bison/tests/bison ] ; then \
+           echo $$r/$(BUILD_SUBDIR)/bison/tests/bison ; \
         else \
            echo ${CONFIGURED_BISON} ; \
         fi`
 
 CONFIGURED_YACC = @CONFIGURED_YACC@
-YACC = `if [ -f $$s/$(BUILD_DIR_PREFIX)/bison/bison ] ; then \
-           echo $$r/$(BUILD_DIR_PREFIX)/bison/bison -y -L $$s/bison/ ; \
-       elif [ -f $$s/$(BUILD_DIR_PREFIX)/byacc/byacc ] ; then \
-           echo $$r/$(BUILD_DIR_PREFIX)/byacc/byacc ; \
+YACC = `if [ -f $$r/$(BUILD_SUBDIR)/bison/tests/bison ] ; then \
+           echo $$r/$(BUILD_SUBDIR)/bison/tests/bison -y ; \
+       elif [ -f $$r/$(BUILD_SUBDIR)/byacc/byacc ] ; then \
+           echo $$r/$(BUILD_SUBDIR)/byacc/byacc ; \
        else \
            echo ${CONFIGURED_YACC} ; \
        fi`
 
 CONFIGURED_FLEX = @CONFIGURED_FLEX@
-FLEX = `if [ -f $$r/$(BUILD_DIR_PREFIX)/flex/flex ] ; \
-       then echo $$r/$(BUILD_DIR_PREFIX)/flex/flex ; \
+FLEX = `if [ -f $$r/$(BUILD_SUBDIR)/flex/flex ] ; \
+       then echo $$r/$(BUILD_SUBDIR)/flex/flex ; \
        else echo ${CONFIGURED_FLEX} ; fi`
 
 CONFIGURED_LEX = @CONFIGURED_LEX@
-LEX = `if [ -f $$r/$(BUILD_DIR_PREFIX)/flex/flex ] ; \
-       then echo $$r/$(BUILD_DIR_PREFIX)/flex/flex ; \
+LEX = `if [ -f $$r/$(BUILD_SUBDIR)/flex/flex ] ; \
+       then echo $$r/$(BUILD_SUBDIR)/flex/flex ; \
        else echo ${CONFIGURED_LEX} ; fi`
 
 CONFIGURED_M4 = @CONFIGURED_M4@
-M4 = `if [ -f $$r/$(BUILD_DIR_PREFIX)/m4/m4 ] ; \
-       then echo $$r/$(BUILD_DIR_PREFIX)/m4/m4 ; \
+M4 = `if [ -f $$r/$(BUILD_SUBDIR)/m4/m4 ] ; \
+       then echo $$r/$(BUILD_SUBDIR)/m4/m4 ; \
        else echo ${CONFIGURED_M4} ; fi`
 
 # For an installed makeinfo, we require it to be from texinfo 4.2 or
@@ -284,8 +281,8 @@ M4 = `if [ -f $$r/$(BUILD_DIR_PREFIX)/m4/m4 ] ; \
 # makeinfo even if only the Makefile is there, because Texinfo builds its
 # manual when made, and it requires its own version.
 CONFIGURED_MAKEINFO = @CONFIGURED_MAKEINFO@
-MAKEINFO = `if [ -f $$r/$(BUILD_DIR_PREFIX)/texinfo/makeinfo/Makefile ] ; \
-       then echo $$r/$(BUILD_DIR_PREFIX)/texinfo/makeinfo/makeinfo ; \
+MAKEINFO = `if [ -f $$r/$(BUILD_SUBDIR)/texinfo/makeinfo/Makefile ] ; \
+       then echo $$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo ; \
        else if (${CONFIGURED_MAKEINFO} --version \
          | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[2-9]|[5-9])') >/dev/null 2>&1; \
         then echo ${CONFIGURED_MAKEINFO}; else echo $$s/missing makeinfo; fi; fi`
@@ -740,12 +737,11 @@ configure-target:  \
 
 # The target built for a native non-bootstrap build.
 .PHONY: all
-all: unstage all-build all-host all-target stage
+all: unstage all-host all-target stage
 
 .PHONY: all-build
 all-build:  \
     maybe-all-build-libiberty \
-    maybe-all-build-libbanshee \
     maybe-all-build-bison \
     maybe-all-build-byacc \
     maybe-all-build-flex \
@@ -2123,77 +2119,16 @@ configure-build-libiberty:
 .PHONY: all-build-libiberty maybe-all-build-libiberty
 maybe-all-build-libiberty:
 @if build-libiberty
+TARGET-build-libiberty=all
 maybe-all-build-libiberty: all-build-libiberty
 all-build-libiberty: configure-build-libiberty
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(BUILD_EXPORTS) \
-       (cd $(BUILD_SUBDIR)/libiberty && $(MAKE)  all)
+       (cd $(BUILD_SUBDIR)/libiberty && \
+         $(MAKE)  $(TARGET-build-libiberty))
 @endif build-libiberty
 
-.PHONY: configure-build-libbanshee maybe-configure-build-libbanshee
-maybe-configure-build-libbanshee:
-@if build-libbanshee
-maybe-configure-build-libbanshee: configure-build-libbanshee
-configure-build-libbanshee:
-       @test ! -f $(BUILD_SUBDIR)/libbanshee/Makefile || exit 0; \
-       $(SHELL) $(srcdir)/mkinstalldirs $(BUILD_SUBDIR)/libbanshee ; \
-       r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(BUILD_EXPORTS) \
-       echo Configuring in $(BUILD_SUBDIR)/libbanshee; \
-       cd "$(BUILD_SUBDIR)/libbanshee" || exit 1; \
-       case $(srcdir) in \
-         /* | [A-Za-z]:[\\/]*) \
-           topdir=$(srcdir) ;; \
-         *) \
-           case "$(BUILD_SUBDIR)" in \
-             .) topdir="../$(srcdir)" ;; \
-             *) topdir="../../$(srcdir)" ;; \
-           esac ;; \
-       esac; \
-       if [ "$(srcdir)" = "." ] ; then \
-         if [ "$(BUILD_SUBDIR)" != "." ] ; then \
-           if $(SHELL) $$s/symlink-tree $${topdir}/libbanshee "no-such-file" ; then \
-             if [ -f Makefile ]; then \
-               if $(MAKE) distclean; then \
-                 true; \
-               else \
-                 exit 1; \
-               fi; \
-             else \
-               true; \
-             fi; \
-           else \
-             exit 1; \
-           fi; \
-         else \
-           true; \
-         fi; \
-         srcdiroption="--srcdir=."; \
-         libsrcdir="."; \
-       else \
-         srcdiroption="--srcdir=$${topdir}/libbanshee"; \
-         libsrcdir="$$s/libbanshee"; \
-       fi; \
-       rm -f no-such-file || : ; \
-       CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-         $(BUILD_CONFIGARGS) $${srcdiroption} \
-         --with-build-subdir="$(BUILD_SUBDIR)"  \
-         || exit 1
-@endif build-libbanshee
-
-.PHONY: all-build-libbanshee maybe-all-build-libbanshee
-maybe-all-build-libbanshee:
-@if build-libbanshee
-maybe-all-build-libbanshee: all-build-libbanshee
-all-build-libbanshee: configure-build-libbanshee
-       @r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(BUILD_EXPORTS) \
-       (cd $(BUILD_SUBDIR)/libbanshee && $(MAKE)  all)
-@endif build-libbanshee
-
 .PHONY: configure-build-bison maybe-configure-build-bison
 maybe-configure-build-bison:
 @if build-bison
@@ -2249,12 +2184,14 @@ configure-build-bison:
 .PHONY: all-build-bison maybe-all-build-bison
 maybe-all-build-bison:
 @if build-bison
+TARGET-build-bison=all
 maybe-all-build-bison: all-build-bison
 all-build-bison: configure-build-bison
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(BUILD_EXPORTS) \
-       (cd $(BUILD_SUBDIR)/bison && $(MAKE)  all)
+       (cd $(BUILD_SUBDIR)/bison && \
+         $(MAKE)  $(TARGET-build-bison))
 @endif build-bison
 
 .PHONY: configure-build-byacc maybe-configure-build-byacc
@@ -2312,12 +2249,14 @@ configure-build-byacc:
 .PHONY: all-build-byacc maybe-all-build-byacc
 maybe-all-build-byacc:
 @if build-byacc
+TARGET-build-byacc=all
 maybe-all-build-byacc: all-build-byacc
 all-build-byacc: configure-build-byacc
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(BUILD_EXPORTS) \
-       (cd $(BUILD_SUBDIR)/byacc && $(MAKE)  all)
+       (cd $(BUILD_SUBDIR)/byacc && \
+         $(MAKE)  $(TARGET-build-byacc))
 @endif build-byacc
 
 .PHONY: configure-build-flex maybe-configure-build-flex
@@ -2375,12 +2314,14 @@ configure-build-flex:
 .PHONY: all-build-flex maybe-all-build-flex
 maybe-all-build-flex:
 @if build-flex
+TARGET-build-flex=all
 maybe-all-build-flex: all-build-flex
 all-build-flex: configure-build-flex
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(BUILD_EXPORTS) \
-       (cd $(BUILD_SUBDIR)/flex && $(MAKE)  all)
+       (cd $(BUILD_SUBDIR)/flex && \
+         $(MAKE)  $(TARGET-build-flex))
 @endif build-flex
 
 .PHONY: configure-build-m4 maybe-configure-build-m4
@@ -2438,12 +2379,14 @@ configure-build-m4:
 .PHONY: all-build-m4 maybe-all-build-m4
 maybe-all-build-m4:
 @if build-m4
+TARGET-build-m4=all
 maybe-all-build-m4: all-build-m4
 all-build-m4: configure-build-m4
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(BUILD_EXPORTS) \
-       (cd $(BUILD_SUBDIR)/m4 && $(MAKE)  all)
+       (cd $(BUILD_SUBDIR)/m4 && \
+         $(MAKE)  $(TARGET-build-m4))
 @endif build-m4
 
 .PHONY: configure-build-texinfo maybe-configure-build-texinfo
@@ -2501,12 +2444,14 @@ configure-build-texinfo:
 .PHONY: all-build-texinfo maybe-all-build-texinfo
 maybe-all-build-texinfo:
 @if build-texinfo
+TARGET-build-texinfo=all
 maybe-all-build-texinfo: all-build-texinfo
 all-build-texinfo: configure-build-texinfo
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(BUILD_EXPORTS) \
-       (cd $(BUILD_SUBDIR)/texinfo && $(MAKE)  all)
+       (cd $(BUILD_SUBDIR)/texinfo && \
+         $(MAKE)  $(TARGET-build-texinfo))
 @endif build-texinfo
 
 
@@ -2564,7 +2509,7 @@ check-ash:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd ash && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd ash && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif ash
 
@@ -2578,7 +2523,7 @@ install-ash: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd ash && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd ash && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif ash
 
@@ -2866,7 +2811,7 @@ check-autoconf:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd autoconf && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd autoconf && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif autoconf
 
@@ -2880,7 +2825,7 @@ install-autoconf: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd autoconf && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd autoconf && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif autoconf
 
@@ -3168,7 +3113,7 @@ check-automake:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd automake && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd automake && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif automake
 
@@ -3182,7 +3127,7 @@ install-automake: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd automake && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd automake && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif automake
 
@@ -3470,7 +3415,7 @@ check-bash:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd bash && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd bash && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif bash
 
@@ -3484,7 +3429,7 @@ install-bash: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd bash && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd bash && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif bash
 
@@ -3727,7 +3672,8 @@ maybe-configure-bfd:
 @if bfd
 maybe-configure-bfd: configure-bfd
 configure-bfd:
-       @test ! -f bfd/Makefile || exit 0; \
+       @test -f stage_last && exit 0; \
+       test ! -f bfd/Makefile || exit 0; \
        [ -d bfd ] || mkdir bfd; \
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
@@ -3755,7 +3701,8 @@ maybe-all-bfd:
 @if bfd
 maybe-all-bfd: all-bfd
 all-bfd: configure-bfd
-       @r=`${PWD_COMMAND}`; export r; \
+       @test -f stage_last && exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
@@ -3772,7 +3719,7 @@ check-bfd:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd bfd && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd bfd && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif bfd
 
@@ -3786,7 +3733,7 @@ install-bfd: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd bfd && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd bfd && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif bfd
 
@@ -4029,7 +3976,8 @@ maybe-configure-opcodes:
 @if opcodes
 maybe-configure-opcodes: configure-opcodes
 configure-opcodes:
-       @test ! -f opcodes/Makefile || exit 0; \
+       @test -f stage_last && exit 0; \
+       test ! -f opcodes/Makefile || exit 0; \
        [ -d opcodes ] || mkdir opcodes; \
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
@@ -4057,7 +4005,8 @@ maybe-all-opcodes:
 @if opcodes
 maybe-all-opcodes: all-opcodes
 all-opcodes: configure-opcodes
-       @r=`${PWD_COMMAND}`; export r; \
+       @test -f stage_last && exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
@@ -4074,7 +4023,7 @@ check-opcodes:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd opcodes && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd opcodes && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif opcodes
 
@@ -4088,7 +4037,7 @@ install-opcodes: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd opcodes && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd opcodes && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif opcodes
 
@@ -4331,7 +4280,8 @@ maybe-configure-binutils:
 @if binutils
 maybe-configure-binutils: configure-binutils
 configure-binutils:
-       @test ! -f binutils/Makefile || exit 0; \
+       @test -f stage_last && exit 0; \
+       test ! -f binutils/Makefile || exit 0; \
        [ -d binutils ] || mkdir binutils; \
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
@@ -4359,7 +4309,8 @@ maybe-all-binutils:
 @if binutils
 maybe-all-binutils: all-binutils
 all-binutils: configure-binutils
-       @r=`${PWD_COMMAND}`; export r; \
+       @test -f stage_last && exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
@@ -4376,7 +4327,7 @@ check-binutils:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd binutils && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd binutils && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif binutils
 
@@ -4390,7 +4341,7 @@ install-binutils: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd binutils && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd binutils && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif binutils
 
@@ -4695,7 +4646,7 @@ install-bison: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd bison && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd bison && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif bison
 
@@ -5000,7 +4951,7 @@ install-byacc: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd byacc && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd byacc && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif byacc
 
@@ -5288,7 +5239,7 @@ check-bzip2:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd bzip2 && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd bzip2 && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif bzip2
 
@@ -5302,7 +5253,7 @@ install-bzip2: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd bzip2 && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd bzip2 && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif bzip2
 
@@ -5590,7 +5541,7 @@ check-dejagnu:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd dejagnu && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd dejagnu && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif dejagnu
 
@@ -5604,7 +5555,7 @@ install-dejagnu: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd dejagnu && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd dejagnu && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif dejagnu
 
@@ -5892,7 +5843,7 @@ check-diff:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd diff && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd diff && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif diff
 
@@ -5906,7 +5857,7 @@ install-diff: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd diff && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd diff && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif diff
 
@@ -6203,7 +6154,7 @@ install-dosutils: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd dosutils && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd dosutils && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif dosutils
 
@@ -6491,7 +6442,7 @@ check-etc:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd etc && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd etc && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif etc
 
@@ -6505,7 +6456,7 @@ install-etc: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd etc && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd etc && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif etc
 
@@ -6810,7 +6761,7 @@ install-fastjar: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd fastjar && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd fastjar && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif fastjar
 
@@ -7098,7 +7049,7 @@ check-fileutils:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd fileutils && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd fileutils && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif fileutils
 
@@ -7112,7 +7063,7 @@ install-fileutils: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd fileutils && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd fileutils && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif fileutils
 
@@ -7400,7 +7351,7 @@ check-findutils:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd findutils && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd findutils && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif findutils
 
@@ -7414,7 +7365,7 @@ install-findutils: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd findutils && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd findutils && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif findutils
 
@@ -7702,7 +7653,7 @@ check-find:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd find && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd find && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif find
 
@@ -7716,7 +7667,7 @@ install-find: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd find && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd find && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif find
 
@@ -8021,7 +7972,7 @@ install-flex: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd flex && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd flex && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif flex
 
@@ -8264,7 +8215,8 @@ maybe-configure-gas:
 @if gas
 maybe-configure-gas: configure-gas
 configure-gas:
-       @test ! -f gas/Makefile || exit 0; \
+       @test -f stage_last && exit 0; \
+       test ! -f gas/Makefile || exit 0; \
        [ -d gas ] || mkdir gas; \
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
@@ -8292,7 +8244,8 @@ maybe-all-gas:
 @if gas
 maybe-all-gas: all-gas
 all-gas: configure-gas
-       @r=`${PWD_COMMAND}`; export r; \
+       @test -f stage_last && exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
@@ -8309,7 +8262,7 @@ check-gas:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd gas && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd gas && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif gas
 
@@ -8323,7 +8276,7 @@ install-gas: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd gas && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd gas && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif gas
 
@@ -8566,7 +8519,8 @@ maybe-configure-gcc:
 @if gcc
 maybe-configure-gcc: configure-gcc
 configure-gcc:
-       @test ! -f gcc/Makefile || exit 0; \
+       @test -f stage_last && exit 0; \
+       test ! -f gcc/Makefile || exit 0; \
        [ -d gcc ] || mkdir gcc; \
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
@@ -8594,7 +8548,8 @@ maybe-all-gcc:
 @if gcc
 maybe-all-gcc: all-gcc
 all-gcc: configure-gcc
-       @r=`${PWD_COMMAND}`; export r; \
+       @test -f stage_last && exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
@@ -8612,7 +8567,7 @@ check-gcc:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd gcc && $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) check)
+       (cd gcc && $(MAKE) $(FLAGS_TO_PASS)$(EXTRA_GCC_FLAGS) check)
 
 @endif gcc
 
@@ -8626,7 +8581,7 @@ install-gcc: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd gcc && $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) install)
+       (cd gcc && $(MAKE) $(FLAGS_TO_PASS)$(EXTRA_GCC_FLAGS) install)
 
 @endif gcc
 
@@ -8914,7 +8869,7 @@ check-gawk:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd gawk && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd gawk && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif gawk
 
@@ -8928,7 +8883,7 @@ install-gawk: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd gawk && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd gawk && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif gawk
 
@@ -9216,7 +9171,7 @@ check-gettext:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd gettext && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd gettext && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif gettext
 
@@ -9230,7 +9185,7 @@ install-gettext: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd gettext && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd gettext && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif gettext
 
@@ -9518,7 +9473,7 @@ check-gnuserv:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd gnuserv && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd gnuserv && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif gnuserv
 
@@ -9532,7 +9487,7 @@ install-gnuserv: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd gnuserv && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd gnuserv && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif gnuserv
 
@@ -9820,7 +9775,7 @@ check-gprof:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd gprof && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd gprof && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif gprof
 
@@ -9834,7 +9789,7 @@ install-gprof: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd gprof && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd gprof && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif gprof
 
@@ -10122,7 +10077,7 @@ check-gzip:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd gzip && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd gzip && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif gzip
 
@@ -10136,7 +10091,7 @@ install-gzip: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd gzip && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd gzip && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif gzip
 
@@ -10424,7 +10379,7 @@ check-hello:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd hello && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd hello && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif hello
 
@@ -10438,7 +10393,7 @@ install-hello: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd hello && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd hello && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif hello
 
@@ -10726,7 +10681,7 @@ check-indent:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd indent && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd indent && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif indent
 
@@ -10740,7 +10695,7 @@ install-indent: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd indent && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd indent && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif indent
 
@@ -10983,7 +10938,8 @@ maybe-configure-intl:
 @if intl
 maybe-configure-intl: configure-intl
 configure-intl:
-       @test ! -f intl/Makefile || exit 0; \
+       @test -f stage_last && exit 0; \
+       test ! -f intl/Makefile || exit 0; \
        [ -d intl ] || mkdir intl; \
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
@@ -11011,7 +10967,8 @@ maybe-all-intl:
 @if intl
 maybe-all-intl: all-intl
 all-intl: configure-intl
-       @r=`${PWD_COMMAND}`; export r; \
+       @test -f stage_last && exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
@@ -11028,7 +10985,7 @@ check-intl:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd intl && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd intl && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif intl
 
@@ -11042,7 +10999,7 @@ install-intl: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd intl && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd intl && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif intl
 
@@ -11330,7 +11287,7 @@ check-tcl:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd tcl && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd tcl && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif tcl
 
@@ -11344,7 +11301,7 @@ install-tcl: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd tcl && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd tcl && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif tcl
 
@@ -11617,7 +11574,7 @@ check-itcl:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd itcl && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd itcl && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif itcl
 
@@ -11631,7 +11588,7 @@ install-itcl: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd itcl && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd itcl && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif itcl
 
@@ -11874,7 +11831,8 @@ maybe-configure-ld:
 @if ld
 maybe-configure-ld: configure-ld
 configure-ld:
-       @test ! -f ld/Makefile || exit 0; \
+       @test -f stage_last && exit 0; \
+       test ! -f ld/Makefile || exit 0; \
        [ -d ld ] || mkdir ld; \
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
@@ -11902,7 +11860,8 @@ maybe-all-ld:
 @if ld
 maybe-all-ld: all-ld
 all-ld: configure-ld
-       @r=`${PWD_COMMAND}`; export r; \
+       @test -f stage_last && exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
@@ -11919,7 +11878,7 @@ check-ld:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd ld && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd ld && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif ld
 
@@ -11933,7 +11892,7 @@ install-ld: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd ld && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd ld && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif ld
 
@@ -12176,7 +12135,8 @@ maybe-configure-libcpp:
 @if libcpp
 maybe-configure-libcpp: configure-libcpp
 configure-libcpp:
-       @test ! -f libcpp/Makefile || exit 0; \
+       @test -f stage_last && exit 0; \
+       test ! -f libcpp/Makefile || exit 0; \
        [ -d libcpp ] || mkdir libcpp; \
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
@@ -12204,7 +12164,8 @@ maybe-all-libcpp:
 @if libcpp
 maybe-all-libcpp: all-libcpp
 all-libcpp: configure-libcpp
-       @r=`${PWD_COMMAND}`; export r; \
+       @test -f stage_last && exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
@@ -12221,7 +12182,7 @@ check-libcpp:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd libcpp && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd libcpp && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif libcpp
 
@@ -12235,7 +12196,7 @@ install-libcpp: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd libcpp && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd libcpp && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif libcpp
 
@@ -12523,7 +12484,7 @@ check-libgui:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd libgui && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd libgui && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif libgui
 
@@ -12537,7 +12498,7 @@ install-libgui: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd libgui && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd libgui && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif libgui
 
@@ -12780,7 +12741,8 @@ maybe-configure-libbanshee:
 @if libbanshee
 maybe-configure-libbanshee: configure-libbanshee
 configure-libbanshee:
-       @test ! -f libbanshee/Makefile || exit 0; \
+       @test -f stage_last && exit 0; \
+       test ! -f libbanshee/Makefile || exit 0; \
        [ -d libbanshee ] || mkdir libbanshee; \
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
@@ -12808,7 +12770,8 @@ maybe-all-libbanshee:
 @if libbanshee
 maybe-all-libbanshee: all-libbanshee
 all-libbanshee: configure-libbanshee
-       @r=`${PWD_COMMAND}`; export r; \
+       @test -f stage_last && exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
@@ -12825,7 +12788,7 @@ check-libbanshee:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd libbanshee && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd libbanshee && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif libbanshee
 
@@ -13077,7 +13040,8 @@ maybe-configure-libiberty:
 @if libiberty
 maybe-configure-libiberty: configure-libiberty
 configure-libiberty:
-       @test ! -f libiberty/Makefile || exit 0; \
+       @test -f stage_last && exit 0; \
+       test ! -f libiberty/Makefile || exit 0; \
        [ -d libiberty ] || mkdir libiberty; \
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
@@ -13105,7 +13069,8 @@ maybe-all-libiberty:
 @if libiberty
 maybe-all-libiberty: all-libiberty
 all-libiberty: configure-libiberty
-       @r=`${PWD_COMMAND}`; export r; \
+       @test -f stage_last && exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
@@ -13122,7 +13087,7 @@ check-libiberty:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd libiberty && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd libiberty && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif libiberty
 
@@ -13136,7 +13101,7 @@ install-libiberty: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd libiberty && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd libiberty && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif libiberty
 
@@ -13424,7 +13389,7 @@ check-libtool:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd libtool && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd libtool && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif libtool
 
@@ -13438,7 +13403,7 @@ install-libtool: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd libtool && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd libtool && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif libtool
 
@@ -13726,7 +13691,7 @@ check-m4:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd m4 && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd m4 && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif m4
 
@@ -13740,7 +13705,7 @@ install-m4: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd m4 && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd m4 && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif m4
 
@@ -14028,7 +13993,7 @@ check-make:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd make && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd make && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif make
 
@@ -14042,7 +14007,7 @@ install-make: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd make && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd make && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif make
 
@@ -14339,7 +14304,7 @@ install-mmalloc: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd mmalloc && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd mmalloc && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif mmalloc
 
@@ -14627,7 +14592,7 @@ check-patch:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd patch && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd patch && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif patch
 
@@ -14641,7 +14606,7 @@ install-patch: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd patch && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd patch && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif patch
 
@@ -14929,7 +14894,7 @@ check-perl:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd perl && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd perl && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif perl
 
@@ -14943,7 +14908,7 @@ install-perl: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd perl && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd perl && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif perl
 
@@ -15231,7 +15196,7 @@ check-prms:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd prms && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd prms && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif prms
 
@@ -15245,7 +15210,7 @@ install-prms: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd prms && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd prms && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif prms
 
@@ -15533,7 +15498,7 @@ check-rcs:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd rcs && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd rcs && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif rcs
 
@@ -15547,7 +15512,7 @@ install-rcs: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd rcs && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd rcs && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif rcs
 
@@ -15835,7 +15800,7 @@ check-readline:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd readline && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd readline && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif readline
 
@@ -15849,7 +15814,7 @@ install-readline: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd readline && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd readline && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif readline
 
@@ -16429,7 +16394,7 @@ check-recode:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd recode && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd recode && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif recode
 
@@ -16443,7 +16408,7 @@ install-recode: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd recode && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd recode && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif recode
 
@@ -16731,7 +16696,7 @@ check-sed:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd sed && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd sed && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif sed
 
@@ -16745,7 +16710,7 @@ install-sed: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd sed && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd sed && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif sed
 
@@ -17033,7 +16998,7 @@ check-send-pr:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd send-pr && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd send-pr && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif send-pr
 
@@ -17047,7 +17012,7 @@ install-send-pr: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd send-pr && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd send-pr && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif send-pr
 
@@ -17335,7 +17300,7 @@ check-shellutils:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd shellutils && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd shellutils && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif shellutils
 
@@ -17349,7 +17314,7 @@ install-shellutils: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd shellutils && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd shellutils && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif shellutils
 
@@ -17637,7 +17602,7 @@ check-sid:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd sid && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd sid && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif sid
 
@@ -17651,7 +17616,7 @@ install-sid: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd sid && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd sid && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif sid
 
@@ -17939,7 +17904,7 @@ check-sim:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd sim && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd sim && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif sim
 
@@ -17953,7 +17918,7 @@ install-sim: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd sim && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd sim && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif sim
 
@@ -18241,7 +18206,7 @@ check-tar:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd tar && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd tar && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif tar
 
@@ -18255,7 +18220,7 @@ install-tar: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd tar && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd tar && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif tar
 
@@ -18543,7 +18508,7 @@ check-texinfo:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd texinfo && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd texinfo && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif texinfo
 
@@ -18840,7 +18805,7 @@ check-textutils:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd textutils && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd textutils && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif textutils
 
@@ -18854,7 +18819,7 @@ install-textutils: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd textutils && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd textutils && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif textutils
 
@@ -19142,7 +19107,7 @@ check-time:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd time && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd time && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif time
 
@@ -19156,7 +19121,7 @@ install-time: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd time && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd time && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif time
 
@@ -19444,7 +19409,7 @@ check-uudecode:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd uudecode && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd uudecode && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif uudecode
 
@@ -19458,7 +19423,7 @@ install-uudecode: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd uudecode && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd uudecode && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif uudecode
 
@@ -19746,7 +19711,7 @@ check-wdiff:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd wdiff && $(MAKE) $(FLAGS_TO_PASS)  check)
+       (cd wdiff && $(MAKE) $(FLAGS_TO_PASS) check)
 
 @endif wdiff
 
@@ -19760,7 +19725,7 @@ install-wdiff: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd wdiff && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd wdiff && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif wdiff
 
@@ -20065,7 +20030,7 @@ install-zip: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd zip && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd zip && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif zip
 
@@ -20308,7 +20273,8 @@ maybe-configure-zlib:
 @if zlib
 maybe-configure-zlib: configure-zlib
 configure-zlib:
-       @test ! -f zlib/Makefile || exit 0; \
+       @test -f stage_last && exit 0; \
+       test ! -f zlib/Makefile || exit 0; \
        [ -d zlib ] || mkdir zlib; \
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
@@ -20336,7 +20302,8 @@ maybe-all-zlib:
 @if zlib
 maybe-all-zlib: all-zlib
 all-zlib: configure-zlib
-       @r=`${PWD_COMMAND}`; export r; \
+       @test -f stage_last && exit 0; \
+       r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
@@ -20632,7 +20599,7 @@ all-gdb: configure-gdb
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd gdb && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS)  all)
+       (cd gdb && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
 @endif gdb
 
 .PHONY: check-gdb maybe-check-gdb
@@ -20645,7 +20612,7 @@ check-gdb:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd gdb && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS)  check)
+       (cd gdb && $(MAKE) $(FLAGS_TO_PASS)$(X11_FLAGS_TO_PASS) check)
 
 @endif gdb
 
@@ -20659,7 +20626,7 @@ install-gdb: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd gdb && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS)  install)
+       (cd gdb && $(MAKE) $(FLAGS_TO_PASS)$(X11_FLAGS_TO_PASS) install)
 
 @endif gdb
 
@@ -20677,7 +20644,7 @@ info-gdb: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing info in gdb" ; \
@@ -20703,7 +20670,7 @@ dvi-gdb: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing dvi in gdb" ; \
@@ -20729,7 +20696,7 @@ TAGS-gdb: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing TAGS in gdb" ; \
@@ -20756,7 +20723,7 @@ install-info-gdb: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing install-info in gdb" ; \
@@ -20782,7 +20749,7 @@ installcheck-gdb: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing installcheck in gdb" ; \
@@ -20807,7 +20774,7 @@ mostlyclean-gdb:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing mostlyclean in gdb" ; \
@@ -20832,7 +20799,7 @@ clean-gdb:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing clean in gdb" ; \
@@ -20857,7 +20824,7 @@ distclean-gdb:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing distclean in gdb" ; \
@@ -20882,7 +20849,7 @@ maintainer-clean-gdb:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing maintainer-clean in gdb" ; \
@@ -20934,7 +20901,7 @@ all-expect: configure-expect
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd expect && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS)  all)
+       (cd expect && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
 @endif expect
 
 .PHONY: check-expect maybe-check-expect
@@ -20947,7 +20914,7 @@ check-expect:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd expect && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS)  check)
+       (cd expect && $(MAKE) $(FLAGS_TO_PASS)$(X11_FLAGS_TO_PASS) check)
 
 @endif expect
 
@@ -20961,7 +20928,7 @@ install-expect: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd expect && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS)  install)
+       (cd expect && $(MAKE) $(FLAGS_TO_PASS)$(X11_FLAGS_TO_PASS) install)
 
 @endif expect
 
@@ -20979,7 +20946,7 @@ info-expect: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing info in expect" ; \
@@ -21005,7 +20972,7 @@ dvi-expect: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing dvi in expect" ; \
@@ -21031,7 +20998,7 @@ TAGS-expect: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing TAGS in expect" ; \
@@ -21058,7 +21025,7 @@ install-info-expect: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing install-info in expect" ; \
@@ -21084,7 +21051,7 @@ installcheck-expect: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing installcheck in expect" ; \
@@ -21109,7 +21076,7 @@ mostlyclean-expect:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing mostlyclean in expect" ; \
@@ -21134,7 +21101,7 @@ clean-expect:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing clean in expect" ; \
@@ -21159,7 +21126,7 @@ distclean-expect:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing distclean in expect" ; \
@@ -21184,7 +21151,7 @@ maintainer-clean-expect:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing maintainer-clean in expect" ; \
@@ -21236,7 +21203,7 @@ all-guile: configure-guile
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd guile && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS)  all)
+       (cd guile && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
 @endif guile
 
 .PHONY: check-guile maybe-check-guile
@@ -21249,7 +21216,7 @@ check-guile:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd guile && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS)  check)
+       (cd guile && $(MAKE) $(FLAGS_TO_PASS)$(X11_FLAGS_TO_PASS) check)
 
 @endif guile
 
@@ -21263,7 +21230,7 @@ install-guile: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd guile && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS)  install)
+       (cd guile && $(MAKE) $(FLAGS_TO_PASS)$(X11_FLAGS_TO_PASS) install)
 
 @endif guile
 
@@ -21281,7 +21248,7 @@ info-guile: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing info in guile" ; \
@@ -21307,7 +21274,7 @@ dvi-guile: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing dvi in guile" ; \
@@ -21333,7 +21300,7 @@ TAGS-guile: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing TAGS in guile" ; \
@@ -21360,7 +21327,7 @@ install-info-guile: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing install-info in guile" ; \
@@ -21386,7 +21353,7 @@ installcheck-guile: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing installcheck in guile" ; \
@@ -21411,7 +21378,7 @@ mostlyclean-guile:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing mostlyclean in guile" ; \
@@ -21436,7 +21403,7 @@ clean-guile:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing clean in guile" ; \
@@ -21461,7 +21428,7 @@ distclean-guile:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing distclean in guile" ; \
@@ -21486,7 +21453,7 @@ maintainer-clean-guile:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing maintainer-clean in guile" ; \
@@ -21538,7 +21505,7 @@ all-tk: configure-tk
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd tk && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS)  all)
+       (cd tk && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
 @endif tk
 
 .PHONY: check-tk maybe-check-tk
@@ -21551,7 +21518,7 @@ check-tk:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd tk && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS)  check)
+       (cd tk && $(MAKE) $(FLAGS_TO_PASS)$(X11_FLAGS_TO_PASS) check)
 
 @endif tk
 
@@ -21565,7 +21532,7 @@ install-tk: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd tk && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS)  install)
+       (cd tk && $(MAKE) $(FLAGS_TO_PASS)$(X11_FLAGS_TO_PASS) install)
 
 @endif tk
 
@@ -21583,7 +21550,7 @@ info-tk: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing info in tk" ; \
@@ -21609,7 +21576,7 @@ dvi-tk: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing dvi in tk" ; \
@@ -21635,7 +21602,7 @@ TAGS-tk: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing TAGS in tk" ; \
@@ -21662,7 +21629,7 @@ install-info-tk: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing install-info in tk" ; \
@@ -21688,7 +21655,7 @@ installcheck-tk: \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing installcheck in tk" ; \
@@ -21713,7 +21680,7 @@ mostlyclean-tk:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing mostlyclean in tk" ; \
@@ -21738,7 +21705,7 @@ clean-tk:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing clean in tk" ; \
@@ -21763,7 +21730,7 @@ distclean-tk:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing distclean in tk" ; \
@@ -21788,7 +21755,7 @@ maintainer-clean-tk:
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       for flag in $(EXTRA_HOST_FLAGS) ; do \
+       for flag in $(EXTRA_HOST_FLAGS) $(X11_FLAGS_TO_PASS); do \
          eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
        done; \
        echo "Doing maintainer-clean in tk" ; \
@@ -21862,7 +21829,7 @@ install-libtermcap: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd libtermcap && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd libtermcap && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif libtermcap
 
@@ -22099,7 +22066,7 @@ install-utils: installdirs
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
-       (cd utils && $(MAKE) $(FLAGS_TO_PASS)  install)
+       (cd utils && $(MAKE) $(FLAGS_TO_PASS) install)
 
 @endif utils
 
@@ -22383,6 +22350,7 @@ configure-target-libstdc++-v3: $(TARGET_SUBDIR)/libstdc++-v3/multilib.out
 .PHONY: all-target-libstdc++-v3 maybe-all-target-libstdc++-v3
 maybe-all-target-libstdc++-v3:
 @if target-libstdc++-v3
+TARGET-target-libstdc++-v3=all
 maybe-all-target-libstdc++-v3: all-target-libstdc++-v3
 all-target-libstdc++-v3: configure-target-libstdc++-v3
        @r=`${PWD_COMMAND}`; export r; \
@@ -22390,7 +22358,7 @@ all-target-libstdc++-v3: configure-target-libstdc++-v3
        $(SET_LIB_PATH) \
        $(RAW_CXX_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/libstdc++-v3 && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)  'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)  'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   $(TARGET-target-libstdc++-v3))
 @endif target-libstdc++-v3
 
 .PHONY: check-target-libstdc++-v3 maybe-check-target-libstdc++-v3
@@ -22698,6 +22666,7 @@ configure-target-libmudflap: $(TARGET_SUBDIR)/libmudflap/multilib.out
 .PHONY: all-target-libmudflap maybe-all-target-libmudflap
 maybe-all-target-libmudflap:
 @if target-libmudflap
+TARGET-target-libmudflap=all
 maybe-all-target-libmudflap: all-target-libmudflap
 all-target-libmudflap: configure-target-libmudflap
        @r=`${PWD_COMMAND}`; export r; \
@@ -22705,7 +22674,7 @@ all-target-libmudflap: configure-target-libmudflap
        $(SET_LIB_PATH) \
        $(NORMAL_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/libmudflap && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)   $(TARGET-target-libmudflap))
 @endif target-libmudflap
 
 .PHONY: check-target-libmudflap maybe-check-target-libmudflap
@@ -23013,6 +22982,7 @@ configure-target-newlib: $(TARGET_SUBDIR)/newlib/multilib.out
 .PHONY: all-target-newlib maybe-all-target-newlib
 maybe-all-target-newlib:
 @if target-newlib
+TARGET-target-newlib=all
 maybe-all-target-newlib: all-target-newlib
 all-target-newlib: configure-target-newlib
        @r=`${PWD_COMMAND}`; export r; \
@@ -23020,7 +22990,7 @@ all-target-newlib: configure-target-newlib
        $(SET_LIB_PATH) \
        $(NORMAL_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/newlib && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)   $(TARGET-target-newlib))
 @endif target-newlib
 
 .PHONY: check-target-newlib maybe-check-target-newlib
@@ -23328,6 +23298,7 @@ configure-target-libgfortran: $(TARGET_SUBDIR)/libgfortran/multilib.out
 .PHONY: all-target-libgfortran maybe-all-target-libgfortran
 maybe-all-target-libgfortran:
 @if target-libgfortran
+TARGET-target-libgfortran=all
 maybe-all-target-libgfortran: all-target-libgfortran
 all-target-libgfortran: configure-target-libgfortran
        @r=`${PWD_COMMAND}`; export r; \
@@ -23335,7 +23306,7 @@ all-target-libgfortran: configure-target-libgfortran
        $(SET_LIB_PATH) \
        $(NORMAL_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/libgfortran && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)   $(TARGET-target-libgfortran))
 @endif target-libgfortran
 
 .PHONY: check-target-libgfortran maybe-check-target-libgfortran
@@ -23643,6 +23614,7 @@ configure-target-libobjc: $(TARGET_SUBDIR)/libobjc/multilib.out
 .PHONY: all-target-libobjc maybe-all-target-libobjc
 maybe-all-target-libobjc:
 @if target-libobjc
+TARGET-target-libobjc=all
 maybe-all-target-libobjc: all-target-libobjc
 all-target-libobjc: configure-target-libobjc
        @r=`${PWD_COMMAND}`; export r; \
@@ -23650,7 +23622,7 @@ all-target-libobjc: configure-target-libobjc
        $(SET_LIB_PATH) \
        $(NORMAL_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/libobjc && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)   $(TARGET-target-libobjc))
 @endif target-libobjc
 
 .PHONY: check-target-libobjc maybe-check-target-libobjc
@@ -23980,6 +23952,7 @@ configure-target-libtermcap: $(TARGET_SUBDIR)/libtermcap/multilib.out
 .PHONY: all-target-libtermcap maybe-all-target-libtermcap
 maybe-all-target-libtermcap:
 @if target-libtermcap
+TARGET-target-libtermcap=all
 maybe-all-target-libtermcap: all-target-libtermcap
 all-target-libtermcap: configure-target-libtermcap
        @r=`${PWD_COMMAND}`; export r; \
@@ -23987,7 +23960,7 @@ all-target-libtermcap: configure-target-libtermcap
        $(SET_LIB_PATH) \
        $(NORMAL_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/libtermcap && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)   $(TARGET-target-libtermcap))
 @endif target-libtermcap
 
 .PHONY: check-target-libtermcap maybe-check-target-libtermcap
@@ -24230,6 +24203,7 @@ configure-target-winsup: $(TARGET_SUBDIR)/winsup/multilib.out
 .PHONY: all-target-winsup maybe-all-target-winsup
 maybe-all-target-winsup:
 @if target-winsup
+TARGET-target-winsup=all
 maybe-all-target-winsup: all-target-winsup
 all-target-winsup: configure-target-winsup
        @r=`${PWD_COMMAND}`; export r; \
@@ -24237,7 +24211,7 @@ all-target-winsup: configure-target-winsup
        $(SET_LIB_PATH) \
        $(NORMAL_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/winsup && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)   $(TARGET-target-winsup))
 @endif target-winsup
 
 .PHONY: check-target-winsup maybe-check-target-winsup
@@ -24545,6 +24519,7 @@ configure-target-libgloss: $(TARGET_SUBDIR)/libgloss/multilib.out
 .PHONY: all-target-libgloss maybe-all-target-libgloss
 maybe-all-target-libgloss:
 @if target-libgloss
+TARGET-target-libgloss=all
 maybe-all-target-libgloss: all-target-libgloss
 all-target-libgloss: configure-target-libgloss
        @r=`${PWD_COMMAND}`; export r; \
@@ -24552,7 +24527,7 @@ all-target-libgloss: configure-target-libgloss
        $(SET_LIB_PATH) \
        $(NORMAL_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/libgloss && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)   $(TARGET-target-libgloss))
 @endif target-libgloss
 
 .PHONY: check-target-libgloss maybe-check-target-libgloss
@@ -24855,6 +24830,7 @@ configure-target-libiberty: $(TARGET_SUBDIR)/libiberty/multilib.out
 .PHONY: all-target-libiberty maybe-all-target-libiberty
 maybe-all-target-libiberty:
 @if target-libiberty
+TARGET-target-libiberty=all
 maybe-all-target-libiberty: all-target-libiberty
 all-target-libiberty: configure-target-libiberty
        @r=`${PWD_COMMAND}`; export r; \
@@ -24862,7 +24838,7 @@ all-target-libiberty: configure-target-libiberty
        $(SET_LIB_PATH) \
        $(NORMAL_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/libiberty && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)   $(TARGET-target-libiberty))
 @endif target-libiberty
 
 .PHONY: check-target-libiberty maybe-check-target-libiberty
@@ -25170,6 +25146,7 @@ configure-target-gperf: $(TARGET_SUBDIR)/gperf/multilib.out
 .PHONY: all-target-gperf maybe-all-target-gperf
 maybe-all-target-gperf:
 @if target-gperf
+TARGET-target-gperf=all
 maybe-all-target-gperf: all-target-gperf
 all-target-gperf: configure-target-gperf
        @r=`${PWD_COMMAND}`; export r; \
@@ -25177,7 +25154,7 @@ all-target-gperf: configure-target-gperf
        $(SET_LIB_PATH) \
        $(NORMAL_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/gperf && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)   $(TARGET-target-gperf))
 @endif target-gperf
 
 .PHONY: check-target-gperf maybe-check-target-gperf
@@ -25485,6 +25462,7 @@ configure-target-examples: $(TARGET_SUBDIR)/examples/multilib.out
 .PHONY: all-target-examples maybe-all-target-examples
 maybe-all-target-examples:
 @if target-examples
+TARGET-target-examples=all
 maybe-all-target-examples: all-target-examples
 all-target-examples: configure-target-examples
        @r=`${PWD_COMMAND}`; export r; \
@@ -25492,7 +25470,7 @@ all-target-examples: configure-target-examples
        $(SET_LIB_PATH) \
        $(NORMAL_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/examples && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)   $(TARGET-target-examples))
 @endif target-examples
 
 .PHONY: check-target-examples maybe-check-target-examples
@@ -25790,6 +25768,7 @@ configure-target-libffi: $(TARGET_SUBDIR)/libffi/multilib.out
 .PHONY: all-target-libffi maybe-all-target-libffi
 maybe-all-target-libffi:
 @if target-libffi
+TARGET-target-libffi=all
 maybe-all-target-libffi: all-target-libffi
 all-target-libffi: configure-target-libffi
        @r=`${PWD_COMMAND}`; export r; \
@@ -25797,7 +25776,7 @@ all-target-libffi: configure-target-libffi
        $(SET_LIB_PATH) \
        $(NORMAL_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/libffi && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)   $(TARGET-target-libffi))
 @endif target-libffi
 
 .PHONY: check-target-libffi maybe-check-target-libffi
@@ -26105,6 +26084,7 @@ configure-target-libjava: $(TARGET_SUBDIR)/libjava/multilib.out
 .PHONY: all-target-libjava maybe-all-target-libjava
 maybe-all-target-libjava:
 @if target-libjava
+TARGET-target-libjava=all
 maybe-all-target-libjava: all-target-libjava
 all-target-libjava: configure-target-libjava
        @r=`${PWD_COMMAND}`; export r; \
@@ -26112,7 +26092,7 @@ all-target-libjava: configure-target-libjava
        $(SET_LIB_PATH) \
        $(RAW_CXX_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/libjava && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)  'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)  'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   $(TARGET-target-libjava))
 @endif target-libjava
 
 .PHONY: check-target-libjava maybe-check-target-libjava
@@ -26442,6 +26422,7 @@ configure-target-zlib: $(TARGET_SUBDIR)/zlib/multilib.out
 .PHONY: all-target-zlib maybe-all-target-zlib
 maybe-all-target-zlib:
 @if target-zlib
+TARGET-target-zlib=all
 maybe-all-target-zlib: all-target-zlib
 all-target-zlib: configure-target-zlib
        @r=`${PWD_COMMAND}`; export r; \
@@ -26449,7 +26430,7 @@ all-target-zlib: configure-target-zlib
        $(SET_LIB_PATH) \
        $(NORMAL_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/zlib && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)   $(TARGET-target-zlib))
 @endif target-zlib
 
 .PHONY: check-target-zlib maybe-check-target-zlib
@@ -26757,6 +26738,7 @@ configure-target-boehm-gc: $(TARGET_SUBDIR)/boehm-gc/multilib.out
 .PHONY: all-target-boehm-gc maybe-all-target-boehm-gc
 maybe-all-target-boehm-gc:
 @if target-boehm-gc
+TARGET-target-boehm-gc=all
 maybe-all-target-boehm-gc: all-target-boehm-gc
 all-target-boehm-gc: configure-target-boehm-gc
        @r=`${PWD_COMMAND}`; export r; \
@@ -26764,7 +26746,7 @@ all-target-boehm-gc: configure-target-boehm-gc
        $(SET_LIB_PATH) \
        $(NORMAL_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/boehm-gc && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)   $(TARGET-target-boehm-gc))
 @endif target-boehm-gc
 
 .PHONY: check-target-boehm-gc maybe-check-target-boehm-gc
@@ -27072,6 +27054,7 @@ configure-target-qthreads: $(TARGET_SUBDIR)/qthreads/multilib.out
 .PHONY: all-target-qthreads maybe-all-target-qthreads
 maybe-all-target-qthreads:
 @if target-qthreads
+TARGET-target-qthreads=all
 maybe-all-target-qthreads: all-target-qthreads
 all-target-qthreads: configure-target-qthreads
        @r=`${PWD_COMMAND}`; export r; \
@@ -27079,7 +27062,7 @@ all-target-qthreads: configure-target-qthreads
        $(SET_LIB_PATH) \
        $(NORMAL_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/qthreads && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)   $(TARGET-target-qthreads))
 @endif target-qthreads
 
 .PHONY: check-target-qthreads maybe-check-target-qthreads
@@ -27387,6 +27370,7 @@ configure-target-rda: $(TARGET_SUBDIR)/rda/multilib.out
 .PHONY: all-target-rda maybe-all-target-rda
 maybe-all-target-rda:
 @if target-rda
+TARGET-target-rda=all
 maybe-all-target-rda: all-target-rda
 all-target-rda: configure-target-rda
        @r=`${PWD_COMMAND}`; export r; \
@@ -27394,7 +27378,7 @@ all-target-rda: configure-target-rda
        $(SET_LIB_PATH) \
        $(NORMAL_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/rda && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)   $(TARGET-target-rda))
 @endif target-rda
 
 .PHONY: check-target-rda maybe-check-target-rda
@@ -27702,6 +27686,7 @@ configure-target-libada: $(TARGET_SUBDIR)/libada/multilib.out
 .PHONY: all-target-libada maybe-all-target-libada
 maybe-all-target-libada:
 @if target-libada
+TARGET-target-libada=all
 maybe-all-target-libada: all-target-libada
 all-target-libada: configure-target-libada
        @r=`${PWD_COMMAND}`; export r; \
@@ -27709,7 +27694,7 @@ all-target-libada: configure-target-libada
        $(SET_LIB_PATH) \
        $(NORMAL_TARGET_EXPORTS) \
        (cd $(TARGET_SUBDIR)/libada && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)   all)
+         $(MAKE) $(TARGET_FLAGS_TO_PASS)   $(TARGET-target-libada))
 @endif target-libada
 
 .PHONY: check-target-libada maybe-check-target-libada
@@ -28041,7 +28026,7 @@ profiledbootstrap: all-prebootstrap configure-gcc
        $(MAKE) $(RECURSE_FLAGS_TO_PASS) all
 
 .PHONY: cross
-cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
+cross: all-build all-gas all-ld
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
@@ -28114,7 +28099,6 @@ stage:
        @$(MAKE) `cat stage_current`-end
 @endif gcc-bootstrap
 
-@if gcc-bootstrap
 # We name the build directories for the various stages "stage1-gcc",
 # "stage2-gcc","stage3-gcc", etc.
 
@@ -28152,12 +28136,6 @@ STAGE1_LANGUAGES=@stage1_languages@
 # We only want to compare .o files, so set this!
 objext = .o
 
-# Real targets act phony if they depend on phony targets; this hack
-# prevents gratuitous rebuilding of stage 1.
-prebootstrap:
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-prebootstrap
-       $(STAMP) prebootstrap
-
 # Flags to pass to stage2 and later makes.
 BOOT_CFLAGS= -g -O2
 POSTSTAGE1_FLAGS_TO_PASS = \
@@ -28181,31 +28159,123 @@ POSTSTAGE1_FLAGS_TO_PASS = \
 stage1-start::
        [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
        echo stage1 > stage_current ; \
-       echo stage1 > stage_last ; \
+       echo stage1 > stage_last
+@if bfd
+       [ -d stage1-bfd ] || mkdir stage1-bfd; \
+       set stage1-bfd bfd ; @CREATE_LINK_TO_DIR@ 
+@endif bfd
+@if opcodes
+       [ -d stage1-opcodes ] || mkdir stage1-opcodes; \
+       set stage1-opcodes opcodes ; @CREATE_LINK_TO_DIR@ 
+@endif opcodes
+@if binutils
+       [ -d stage1-binutils ] || mkdir stage1-binutils; \
+       set stage1-binutils binutils ; @CREATE_LINK_TO_DIR@ 
+@endif binutils
+@if gas
+       [ -d stage1-gas ] || mkdir stage1-gas; \
+       set stage1-gas gas ; @CREATE_LINK_TO_DIR@ 
+@endif gas
+@if gcc
        [ -d stage1-gcc ] || mkdir stage1-gcc; \
        set stage1-gcc gcc ; @CREATE_LINK_TO_DIR@ 
+@endif gcc
+@if intl
+       [ -d stage1-intl ] || mkdir stage1-intl; \
+       set stage1-intl intl ; @CREATE_LINK_TO_DIR@ 
+@endif intl
+@if ld
+       [ -d stage1-ld ] || mkdir stage1-ld; \
+       set stage1-ld ld ; @CREATE_LINK_TO_DIR@ 
+@endif ld
+@if libcpp
+       [ -d stage1-libcpp ] || mkdir stage1-libcpp; \
+       set stage1-libcpp libcpp ; @CREATE_LINK_TO_DIR@ 
+@endif libcpp
+@if libbanshee
+       [ -d stage1-libbanshee ] || mkdir stage1-libbanshee; \
+       set stage1-libbanshee libbanshee ; @CREATE_LINK_TO_DIR@ 
+@endif libbanshee
+@if libiberty
+       [ -d stage1-libiberty ] || mkdir stage1-libiberty; \
+       set stage1-libiberty libiberty ; @CREATE_LINK_TO_DIR@ 
+@endif libiberty
+@if zlib
+       [ -d stage1-zlib ] || mkdir stage1-zlib; \
+       set stage1-zlib zlib ; @CREATE_LINK_TO_DIR@ 
+@endif zlib
 
 stage1-end::
-       rm -f stage_current ; \
+       rm -f stage_current
+@if bfd
+       set bfd stage1-bfd ; @UNDO_LINK_TO_DIR@ 
+@endif bfd
+@if opcodes
+       set opcodes stage1-opcodes ; @UNDO_LINK_TO_DIR@ 
+@endif opcodes
+@if binutils
+       set binutils stage1-binutils ; @UNDO_LINK_TO_DIR@ 
+@endif binutils
+@if gas
+       set gas stage1-gas ; @UNDO_LINK_TO_DIR@ 
+@endif gas
+@if gcc
        set gcc stage1-gcc ; @UNDO_LINK_TO_DIR@ 
+@endif gcc
+@if intl
+       set intl stage1-intl ; @UNDO_LINK_TO_DIR@ 
+@endif intl
+@if ld
+       set ld stage1-ld ; @UNDO_LINK_TO_DIR@ 
+@endif ld
+@if libcpp
+       set libcpp stage1-libcpp ; @UNDO_LINK_TO_DIR@ 
+@endif libcpp
+@if libbanshee
+       set libbanshee stage1-libbanshee ; @UNDO_LINK_TO_DIR@ 
+@endif libbanshee
+@if libiberty
+       set libiberty stage1-libiberty ; @UNDO_LINK_TO_DIR@ 
+@endif libiberty
+@if zlib
+       set zlib stage1-zlib ; @UNDO_LINK_TO_DIR@ 
+@endif zlib
 
 # Bubble a bugfix through all the stages up to stage 1.  They
 # are remade, but not reconfigured.  The next stage (if any) will not
 # be reconfigured as well.
 .PHONY: stage1-bubble
 stage1-bubble:: 
-       @if [ -f all-stage1-gcc ] ; then \
-         echo Remaking stage 1 ; \
-         rm -f all-stage1-gcc ; \
-       fi ; \
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stage1-gcc
-
-
-
-configure-stage1-gcc:  prebootstrap 
+       @case `echo all-stage1-*` in \
+         'all-stage1-*') ;; \
+         *) echo Remaking stage 1 ; rm -f all-stage1-* ;; \
+       esac ; \
+       $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stage1
+
+.PHONY: all-stage1
+all-stage1:     \
+  maybe-all-stage1-bfd \
+  maybe-all-stage1-opcodes \
+  maybe-all-stage1-binutils             \
+  maybe-all-stage1-gas \
+  maybe-all-stage1-gcc        \
+  maybe-all-stage1-intl   \
+  maybe-all-stage1-ld \
+  maybe-all-stage1-libcpp  \
+  maybe-all-stage1-libbanshee \
+  maybe-all-stage1-libiberty                        \
+  maybe-all-stage1-zlib       
+
+
+maybe-configure-stage1-bfd:
+maybe-all-stage1-bfd:
+
+@if bfd-bootstrap
+maybe-configure-stage1-bfd: configure-stage1-bfd
+configure-stage1-bfd: 
        $(MAKE) stage1-start
-       @if [ -f stage1-gcc/Makefile ] ; then \
-         $(STAMP) configure-stage1-gcc ; \
+       @if [ -f stage1-bfd/Makefile ] ; then \
+         $(STAMP) configure-stage1-bfd ; \
          exit 0; \
        else \
          true ; \
@@ -28213,210 +28283,3561 @@ configure-stage1-gcc:  prebootstrap
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
        $(HOST_EXPORTS)  \
-       echo Configuring stage 1 in gcc ; \
-       cd gcc || exit 1; \
+       echo Configuring stage 1 in bfd ; \
+       cd bfd || exit 1; \
        case $(srcdir) in \
          \.) \
            srcdiroption="--srcdir=."; \
            libsrcdir=".";; \
          /* | [A-Za-z]:[\\/]*) \
-           srcdiroption="--srcdir=$(srcdir)/gcc"; \
-           libsrcdir="$$s/gcc";; \
+           srcdiroption="--srcdir=$(srcdir)/bfd"; \
+           libsrcdir="$$s/bfd";; \
          *) \
-           srcdiroption="--srcdir=../$(srcdir)/gcc"; \
-           libsrcdir="$$s/gcc";; \
+           srcdiroption="--srcdir=../$(srcdir)/bfd"; \
+           libsrcdir="$$s/bfd";; \
        esac; \
        $(SHELL) $${libsrcdir}/configure \
          $(HOST_CONFIGARGS) $${srcdiroption} \
-         --disable-intermodule           --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" && \
-         $(STAMP) ../configure-stage1-gcc
+         --disable-intermodule           --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"  && \
+         $(STAMP) ../configure-stage1-bfd
 
-all-stage1-gcc: configure-stage1-gcc
+maybe-all-stage1-bfd: all-stage1-bfd
+all-stage1-bfd: configure-stage1-bfd
        $(MAKE) stage1-start
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
        $(HOST_EXPORTS)  \
-       cd gcc && \
-       $(MAKE) $(GCC_FLAGS_TO_PASS)  \
-               CFLAGS="$(STAGE1_CFLAGS)" && $(STAMP) ../all-stage1-gcc
-
-
-
-
-
-.PHONY: restage1 touch-stage1 distclean-stage1
-
-# Rules to wipe a stage and all the following ones, used for cleanstrap
-
-distclean-stage1::
-       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
-       rm -rf configure-stage1-gcc all-stage1-gcc stage1-gcc 
-
-# Rules to renew the timestamp on a stage and all the following ones
-
-touch-stage1::
-       @[ -f configure-stage1-gcc ] && \
-         echo '$(STAMP) configure-stage1-gcc' && \
-         $(STAMP) configure-stage1-gcc; \
-       [ -f all-stage1-gcc ] && \
-         echo '$(STAMP) all-stage1-gcc' && \
-         $(STAMP) all-stage1-gcc; \
-       :
-
-# After building a stage, touch the following ones
-
-restage1::
-       rm -rf all-stage1-gcc 
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS)  all-stage1-gcc 
-
-
-
-
-.PHONY: stage2-start stage2-end
-
-stage2-start::
-       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
-       echo stage2 > stage_current ; \
-       echo stage2 > stage_last ; \
-       [ -d stage2-gcc ] || mkdir stage2-gcc; \
-       set stage2-gcc gcc ; @CREATE_LINK_TO_DIR@  ; \
-       set stage1-gcc prev-gcc ; @CREATE_LINK_TO_DIR@ 
-
-stage2-end::
-       rm -f stage_current ; \
-       set gcc stage2-gcc ; @UNDO_LINK_TO_DIR@  ; \
-       set prev-gcc stage1-gcc ; @UNDO_LINK_TO_DIR@ 
-
-# Bubble a bugfix through all the stages up to stage 2.  They
-# are remade, but not reconfigured.  The next stage (if any) will not
-# be reconfigured as well.
-.PHONY: stage2-bubble
-stage2-bubble:: stage1-bubble
-       @if [ -f all-stage2-gcc ] ; then \
-         echo Remaking stage 2 ; \
-         rm -f all-stage2-gcc ; \
-       fi ; \
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stage2-gcc
-
-
-stage1-bubble::
-       @if [ -f configure-stage2-gcc ] ; then \
-         $(STAMP) configure-stage2-gcc ; \
-       fi
-
-
-configure-stage2-gcc:  all-stage1-gcc 
-       $(MAKE) stage2-start
-       @if [ -f stage2-gcc/Makefile ] ; then \
-         $(STAMP) configure-stage2-gcc ; \
+       cd bfd && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               CFLAGS="$(STAGE1_CFLAGS)"  && \
+       $(STAMP) ../all-stage1-bfd
+@endif bfd-bootstrap
+
+maybe-configure-stage1-opcodes:
+maybe-all-stage1-opcodes:
+
+@if opcodes-bootstrap
+maybe-configure-stage1-opcodes: configure-stage1-opcodes
+configure-stage1-opcodes: 
+       $(MAKE) stage1-start
+       @if [ -f stage1-opcodes/Makefile ] ; then \
+         $(STAMP) configure-stage1-opcodes ; \
          exit 0; \
        else \
          true ; \
        fi ; \
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
-       $(STAGE_HOST_EXPORTS)  \
-       echo Configuring stage 2 in gcc ; \
-       cd gcc || exit 1; \
+       $(HOST_EXPORTS)  \
+       echo Configuring stage 1 in opcodes ; \
+       cd opcodes || exit 1; \
        case $(srcdir) in \
          \.) \
            srcdiroption="--srcdir=."; \
            libsrcdir=".";; \
          /* | [A-Za-z]:[\\/]*) \
-           srcdiroption="--srcdir=$(srcdir)/gcc"; \
-           libsrcdir="$$s/gcc";; \
+           srcdiroption="--srcdir=$(srcdir)/opcodes"; \
+           libsrcdir="$$s/opcodes";; \
          *) \
-           srcdiroption="--srcdir=../$(srcdir)/gcc"; \
-           libsrcdir="$$s/gcc";; \
+           srcdiroption="--srcdir=../$(srcdir)/opcodes"; \
+           libsrcdir="$$s/opcodes";; \
        esac; \
        $(SHELL) $${libsrcdir}/configure \
          $(HOST_CONFIGARGS) $${srcdiroption} \
-         @stage2_werror_flag@ && \
-         $(STAMP) ../configure-stage2-gcc
+         --disable-intermodule           --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"  && \
+         $(STAMP) ../configure-stage1-opcodes
 
-all-stage2-gcc: configure-stage2-gcc
-       $(MAKE) stage2-start
+maybe-all-stage1-opcodes: all-stage1-opcodes
+all-stage1-opcodes: configure-stage1-opcodes
+       $(MAKE) stage1-start
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
-       $(STAGE_HOST_EXPORTS)  \
-       cd gcc && \
-       $(MAKE) $(GCC_FLAGS_TO_PASS)  \
-               $(POSTSTAGE1_FLAGS_TO_PASS)  \
-                && $(STAMP) ../all-stage2-gcc
-
-
-
-
-.PHONY: bootstrap2
-bootstrap2:
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS) stage2-bubble  all
-
-
-.PHONY: restage2 touch-stage2 distclean-stage2
-
-# Rules to wipe a stage and all the following ones, used for cleanstrap
-distclean-stage1:: distclean-stage2 
-distclean-stage2::
-       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
-       rm -rf configure-stage2-gcc all-stage2-gcc stage2-gcc 
-
-# Rules to renew the timestamp on a stage and all the following ones
-touch-stage1:: touch-stage2 
+       $(HOST_EXPORTS)  \
+       cd opcodes && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               CFLAGS="$(STAGE1_CFLAGS)"  && \
+       $(STAMP) ../all-stage1-opcodes
+@endif opcodes-bootstrap
+
+maybe-configure-stage1-binutils:
+maybe-all-stage1-binutils:
+
+@if binutils-bootstrap
+maybe-configure-stage1-binutils: configure-stage1-binutils
+configure-stage1-binutils: 
+       $(MAKE) stage1-start
+       @if [ -f stage1-binutils/Makefile ] ; then \
+         $(STAMP) configure-stage1-binutils ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       echo Configuring stage 1 in binutils ; \
+       cd binutils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/binutils"; \
+           libsrcdir="$$s/binutils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/binutils"; \
+           libsrcdir="$$s/binutils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         --disable-intermodule           --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"  && \
+         $(STAMP) ../configure-stage1-binutils
+
+maybe-all-stage1-binutils: all-stage1-binutils
+all-stage1-binutils: configure-stage1-binutils
+       $(MAKE) stage1-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       cd binutils && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               CFLAGS="$(STAGE1_CFLAGS)"  && \
+       $(STAMP) ../all-stage1-binutils
+@endif binutils-bootstrap
+
+maybe-configure-stage1-gas:
+maybe-all-stage1-gas:
+
+@if gas-bootstrap
+maybe-configure-stage1-gas: configure-stage1-gas
+configure-stage1-gas: 
+       $(MAKE) stage1-start
+       @if [ -f stage1-gas/Makefile ] ; then \
+         $(STAMP) configure-stage1-gas ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       echo Configuring stage 1 in gas ; \
+       cd gas || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gas"; \
+           libsrcdir="$$s/gas";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gas"; \
+           libsrcdir="$$s/gas";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         --disable-intermodule           --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"  && \
+         $(STAMP) ../configure-stage1-gas
+
+maybe-all-stage1-gas: all-stage1-gas
+all-stage1-gas: configure-stage1-gas
+       $(MAKE) stage1-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       cd gas && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               CFLAGS="$(STAGE1_CFLAGS)"  && \
+       $(STAMP) ../all-stage1-gas
+@endif gas-bootstrap
+
+maybe-configure-stage1-gcc:
+maybe-all-stage1-gcc:
+
+@if gcc-bootstrap
+maybe-configure-stage1-gcc: configure-stage1-gcc
+configure-stage1-gcc: 
+       $(MAKE) stage1-start
+       @if [ -f stage1-gcc/Makefile ] ; then \
+         $(STAMP) configure-stage1-gcc ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       echo Configuring stage 1 in gcc ; \
+       cd gcc || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gcc"; \
+           libsrcdir="$$s/gcc";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gcc"; \
+           libsrcdir="$$s/gcc";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         --disable-intermodule           --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"  && \
+         $(STAMP) ../configure-stage1-gcc
+
+maybe-all-stage1-gcc: all-stage1-gcc
+all-stage1-gcc: configure-stage1-gcc
+       $(MAKE) stage1-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       cd gcc && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               CFLAGS="$(STAGE1_CFLAGS)" $(EXTRA_GCC_FLAGS) && \
+       $(STAMP) ../all-stage1-gcc
+@endif gcc-bootstrap
+
+maybe-configure-stage1-intl:
+maybe-all-stage1-intl:
+
+@if intl-bootstrap
+maybe-configure-stage1-intl: configure-stage1-intl
+configure-stage1-intl: 
+       $(MAKE) stage1-start
+       @if [ -f stage1-intl/Makefile ] ; then \
+         $(STAMP) configure-stage1-intl ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       echo Configuring stage 1 in intl ; \
+       cd intl || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/intl"; \
+           libsrcdir="$$s/intl";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/intl"; \
+           libsrcdir="$$s/intl";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         --disable-intermodule           --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"  && \
+         $(STAMP) ../configure-stage1-intl
+
+maybe-all-stage1-intl: all-stage1-intl
+all-stage1-intl: configure-stage1-intl
+       $(MAKE) stage1-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       cd intl && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               CFLAGS="$(STAGE1_CFLAGS)"  && \
+       $(STAMP) ../all-stage1-intl
+@endif intl-bootstrap
+
+maybe-configure-stage1-ld:
+maybe-all-stage1-ld:
+
+@if ld-bootstrap
+maybe-configure-stage1-ld: configure-stage1-ld
+configure-stage1-ld: 
+       $(MAKE) stage1-start
+       @if [ -f stage1-ld/Makefile ] ; then \
+         $(STAMP) configure-stage1-ld ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       echo Configuring stage 1 in ld ; \
+       cd ld || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/ld"; \
+           libsrcdir="$$s/ld";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/ld"; \
+           libsrcdir="$$s/ld";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         --disable-intermodule           --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"  && \
+         $(STAMP) ../configure-stage1-ld
+
+maybe-all-stage1-ld: all-stage1-ld
+all-stage1-ld: configure-stage1-ld
+       $(MAKE) stage1-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       cd ld && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               CFLAGS="$(STAGE1_CFLAGS)"  && \
+       $(STAMP) ../all-stage1-ld
+@endif ld-bootstrap
+
+maybe-configure-stage1-libcpp:
+maybe-all-stage1-libcpp:
+
+@if libcpp-bootstrap
+maybe-configure-stage1-libcpp: configure-stage1-libcpp
+configure-stage1-libcpp: 
+       $(MAKE) stage1-start
+       @if [ -f stage1-libcpp/Makefile ] ; then \
+         $(STAMP) configure-stage1-libcpp ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       echo Configuring stage 1 in libcpp ; \
+       cd libcpp || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libcpp"; \
+           libsrcdir="$$s/libcpp";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libcpp"; \
+           libsrcdir="$$s/libcpp";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         --disable-intermodule           --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"  && \
+         $(STAMP) ../configure-stage1-libcpp
+
+maybe-all-stage1-libcpp: all-stage1-libcpp
+all-stage1-libcpp: configure-stage1-libcpp
+       $(MAKE) stage1-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       cd libcpp && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               CFLAGS="$(STAGE1_CFLAGS)"  && \
+       $(STAMP) ../all-stage1-libcpp
+@endif libcpp-bootstrap
+
+maybe-configure-stage1-libbanshee:
+maybe-all-stage1-libbanshee:
+
+@if libbanshee-bootstrap
+maybe-configure-stage1-libbanshee: configure-stage1-libbanshee
+configure-stage1-libbanshee: 
+       $(MAKE) stage1-start
+       @if [ -f stage1-libbanshee/Makefile ] ; then \
+         $(STAMP) configure-stage1-libbanshee ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       echo Configuring stage 1 in libbanshee ; \
+       cd libbanshee || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libbanshee"; \
+           libsrcdir="$$s/libbanshee";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libbanshee"; \
+           libsrcdir="$$s/libbanshee";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         --disable-intermodule           --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"  && \
+         $(STAMP) ../configure-stage1-libbanshee
+
+maybe-all-stage1-libbanshee: all-stage1-libbanshee
+all-stage1-libbanshee: configure-stage1-libbanshee
+       $(MAKE) stage1-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       cd libbanshee && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               CFLAGS="$(STAGE1_CFLAGS)"  && \
+       $(STAMP) ../all-stage1-libbanshee
+@endif libbanshee-bootstrap
+
+maybe-configure-stage1-libiberty:
+maybe-all-stage1-libiberty:
+
+@if libiberty-bootstrap
+maybe-configure-stage1-libiberty: configure-stage1-libiberty
+configure-stage1-libiberty: 
+       $(MAKE) stage1-start
+       @if [ -f stage1-libiberty/Makefile ] ; then \
+         $(STAMP) configure-stage1-libiberty ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       echo Configuring stage 1 in libiberty ; \
+       cd libiberty || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libiberty"; \
+           libsrcdir="$$s/libiberty";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libiberty"; \
+           libsrcdir="$$s/libiberty";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         --disable-intermodule           --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"  && \
+         $(STAMP) ../configure-stage1-libiberty
+
+maybe-all-stage1-libiberty: all-stage1-libiberty
+all-stage1-libiberty: configure-stage1-libiberty
+       $(MAKE) stage1-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       cd libiberty && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               CFLAGS="$(STAGE1_CFLAGS)"  && \
+       $(STAMP) ../all-stage1-libiberty
+@endif libiberty-bootstrap
+
+maybe-configure-stage1-zlib:
+maybe-all-stage1-zlib:
+
+@if zlib-bootstrap
+maybe-configure-stage1-zlib: configure-stage1-zlib
+configure-stage1-zlib: 
+       $(MAKE) stage1-start
+       @if [ -f stage1-zlib/Makefile ] ; then \
+         $(STAMP) configure-stage1-zlib ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       echo Configuring stage 1 in zlib ; \
+       cd zlib || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/zlib"; \
+           libsrcdir="$$s/zlib";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/zlib"; \
+           libsrcdir="$$s/zlib";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         --disable-intermodule           --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)"  && \
+         $(STAMP) ../configure-stage1-zlib
+
+maybe-all-stage1-zlib: all-stage1-zlib
+all-stage1-zlib: configure-stage1-zlib
+       $(MAKE) stage1-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(HOST_EXPORTS)  \
+       cd zlib && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               CFLAGS="$(STAGE1_CFLAGS)"  && \
+       $(STAMP) ../all-stage1-zlib
+@endif zlib-bootstrap
+
+
+# FIXME: Will not need to be conditional when toplevel bootstrap is the
+# only possibility, but now it conflicts with no-bootstrap rules
+@if gcc-bootstrap
+
+
+
+
+.PHONY: restage1 touch-stage1 distclean-stage1
+
+# Rules to wipe a stage and all the following ones, used for cleanstrap
+
+distclean-stage1::
+       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
+       rm -rf configure-stage1-* all-stage1-* stage1-* 
+
+# Rules to renew the timestamp on a stage and all the following ones
+
+touch-stage1::
+       @case `echo configure-stage1-*` in \
+         'configure-stage1-*') ;; \
+         *) \
+           echo '$(STAMP)' configure-stage1-* && \
+           $(STAMP) configure-stage1-* ;; \
+       esac ; \
+       case `echo all-stage1-*` in \
+         'all-stage1-*') ;; \
+         *) \
+           echo '$(STAMP)' all-stage1-* && \
+           $(STAMP) all-stage1-* ;; \
+       esac
+
+# After building a stage, touch the following ones
+
+restage1::
+       rm -rf all-stage1-* 
+       $(MAKE) $(RECURSE_FLAGS_TO_PASS)  all-stage1 
+
+
+@endif gcc-bootstrap
+
+
+.PHONY: stage2-start stage2-end
+
+stage2-start::
+       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
+       echo stage2 > stage_current ; \
+       echo stage2 > stage_last
+@if bfd
+       [ -d stage2-bfd ] || mkdir stage2-bfd; \
+       set stage2-bfd bfd ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-bfd prev-bfd ; @CREATE_LINK_TO_DIR@ 
+@endif bfd
+@if opcodes
+       [ -d stage2-opcodes ] || mkdir stage2-opcodes; \
+       set stage2-opcodes opcodes ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-opcodes prev-opcodes ; @CREATE_LINK_TO_DIR@ 
+@endif opcodes
+@if binutils
+       [ -d stage2-binutils ] || mkdir stage2-binutils; \
+       set stage2-binutils binutils ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-binutils prev-binutils ; @CREATE_LINK_TO_DIR@ 
+@endif binutils
+@if gas
+       [ -d stage2-gas ] || mkdir stage2-gas; \
+       set stage2-gas gas ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-gas prev-gas ; @CREATE_LINK_TO_DIR@ 
+@endif gas
+@if gcc
+       [ -d stage2-gcc ] || mkdir stage2-gcc; \
+       set stage2-gcc gcc ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-gcc prev-gcc ; @CREATE_LINK_TO_DIR@ 
+@endif gcc
+@if intl
+       [ -d stage2-intl ] || mkdir stage2-intl; \
+       set stage2-intl intl ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-intl prev-intl ; @CREATE_LINK_TO_DIR@ 
+@endif intl
+@if ld
+       [ -d stage2-ld ] || mkdir stage2-ld; \
+       set stage2-ld ld ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-ld prev-ld ; @CREATE_LINK_TO_DIR@ 
+@endif ld
+@if libcpp
+       [ -d stage2-libcpp ] || mkdir stage2-libcpp; \
+       set stage2-libcpp libcpp ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-libcpp prev-libcpp ; @CREATE_LINK_TO_DIR@ 
+@endif libcpp
+@if libbanshee
+       [ -d stage2-libbanshee ] || mkdir stage2-libbanshee; \
+       set stage2-libbanshee libbanshee ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-libbanshee prev-libbanshee ; @CREATE_LINK_TO_DIR@ 
+@endif libbanshee
+@if libiberty
+       [ -d stage2-libiberty ] || mkdir stage2-libiberty; \
+       set stage2-libiberty libiberty ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-libiberty prev-libiberty ; @CREATE_LINK_TO_DIR@ 
+@endif libiberty
+@if zlib
+       [ -d stage2-zlib ] || mkdir stage2-zlib; \
+       set stage2-zlib zlib ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-zlib prev-zlib ; @CREATE_LINK_TO_DIR@ 
+@endif zlib
+
+stage2-end::
+       rm -f stage_current
+@if bfd
+       set bfd stage2-bfd ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-bfd stage1-bfd ; @UNDO_LINK_TO_DIR@ 
+@endif bfd
+@if opcodes
+       set opcodes stage2-opcodes ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-opcodes stage1-opcodes ; @UNDO_LINK_TO_DIR@ 
+@endif opcodes
+@if binutils
+       set binutils stage2-binutils ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-binutils stage1-binutils ; @UNDO_LINK_TO_DIR@ 
+@endif binutils
+@if gas
+       set gas stage2-gas ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-gas stage1-gas ; @UNDO_LINK_TO_DIR@ 
+@endif gas
+@if gcc
+       set gcc stage2-gcc ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-gcc stage1-gcc ; @UNDO_LINK_TO_DIR@ 
+@endif gcc
+@if intl
+       set intl stage2-intl ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-intl stage1-intl ; @UNDO_LINK_TO_DIR@ 
+@endif intl
+@if ld
+       set ld stage2-ld ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-ld stage1-ld ; @UNDO_LINK_TO_DIR@ 
+@endif ld
+@if libcpp
+       set libcpp stage2-libcpp ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-libcpp stage1-libcpp ; @UNDO_LINK_TO_DIR@ 
+@endif libcpp
+@if libbanshee
+       set libbanshee stage2-libbanshee ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-libbanshee stage1-libbanshee ; @UNDO_LINK_TO_DIR@ 
+@endif libbanshee
+@if libiberty
+       set libiberty stage2-libiberty ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-libiberty stage1-libiberty ; @UNDO_LINK_TO_DIR@ 
+@endif libiberty
+@if zlib
+       set zlib stage2-zlib ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-zlib stage1-zlib ; @UNDO_LINK_TO_DIR@ 
+@endif zlib
+
+# Bubble a bugfix through all the stages up to stage 2.  They
+# are remade, but not reconfigured.  The next stage (if any) will not
+# be reconfigured as well.
+.PHONY: stage2-bubble
+stage2-bubble:: stage1-bubble
+       @case `echo all-stage2-*` in \
+         'all-stage2-*') ;; \
+         *) echo Remaking stage 2 ; rm -f all-stage2-* ;; \
+       esac ; \
+       $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stage2
+
+.PHONY: all-stage2
+all-stage2:     \
+  maybe-all-stage2-bfd \
+  maybe-all-stage2-opcodes \
+  maybe-all-stage2-binutils             \
+  maybe-all-stage2-gas \
+  maybe-all-stage2-gcc        \
+  maybe-all-stage2-intl   \
+  maybe-all-stage2-ld \
+  maybe-all-stage2-libcpp  \
+  maybe-all-stage2-libbanshee \
+  maybe-all-stage2-libiberty                        \
+  maybe-all-stage2-zlib       
+
+
+maybe-configure-stage2-bfd:
+maybe-all-stage2-bfd:
+
+@if bfd-bootstrap
+maybe-configure-stage2-bfd: configure-stage2-bfd
+configure-stage2-bfd:  maybe-all-stage1-bfd 
+       $(MAKE) stage2-start
+       @if [ -f stage2-bfd/Makefile ] ; then \
+         $(STAMP) configure-stage2-bfd ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 2 in bfd ; \
+       cd bfd || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/bfd"; \
+           libsrcdir="$$s/bfd";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/bfd"; \
+           libsrcdir="$$s/bfd";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage2-bfd
+
+maybe-all-stage2-bfd: all-stage2-bfd
+all-stage2-bfd: configure-stage2-bfd
+       $(MAKE) stage2-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd bfd && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage2-bfd
+@endif bfd-bootstrap
+
+maybe-configure-stage2-opcodes:
+maybe-all-stage2-opcodes:
+
+@if opcodes-bootstrap
+maybe-configure-stage2-opcodes: configure-stage2-opcodes
+configure-stage2-opcodes:  maybe-all-stage1-opcodes 
+       $(MAKE) stage2-start
+       @if [ -f stage2-opcodes/Makefile ] ; then \
+         $(STAMP) configure-stage2-opcodes ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 2 in opcodes ; \
+       cd opcodes || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/opcodes"; \
+           libsrcdir="$$s/opcodes";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/opcodes"; \
+           libsrcdir="$$s/opcodes";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage2-opcodes
+
+maybe-all-stage2-opcodes: all-stage2-opcodes
+all-stage2-opcodes: configure-stage2-opcodes
+       $(MAKE) stage2-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd opcodes && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage2-opcodes
+@endif opcodes-bootstrap
+
+maybe-configure-stage2-binutils:
+maybe-all-stage2-binutils:
+
+@if binutils-bootstrap
+maybe-configure-stage2-binutils: configure-stage2-binutils
+configure-stage2-binutils:  maybe-all-stage1-binutils 
+       $(MAKE) stage2-start
+       @if [ -f stage2-binutils/Makefile ] ; then \
+         $(STAMP) configure-stage2-binutils ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 2 in binutils ; \
+       cd binutils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/binutils"; \
+           libsrcdir="$$s/binutils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/binutils"; \
+           libsrcdir="$$s/binutils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage2-binutils
+
+maybe-all-stage2-binutils: all-stage2-binutils
+all-stage2-binutils: configure-stage2-binutils
+       $(MAKE) stage2-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd binutils && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage2-binutils
+@endif binutils-bootstrap
+
+maybe-configure-stage2-gas:
+maybe-all-stage2-gas:
+
+@if gas-bootstrap
+maybe-configure-stage2-gas: configure-stage2-gas
+configure-stage2-gas:  maybe-all-stage1-gas 
+       $(MAKE) stage2-start
+       @if [ -f stage2-gas/Makefile ] ; then \
+         $(STAMP) configure-stage2-gas ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 2 in gas ; \
+       cd gas || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gas"; \
+           libsrcdir="$$s/gas";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gas"; \
+           libsrcdir="$$s/gas";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage2-gas
+
+maybe-all-stage2-gas: all-stage2-gas
+all-stage2-gas: configure-stage2-gas
+       $(MAKE) stage2-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd gas && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage2-gas
+@endif gas-bootstrap
+
+maybe-configure-stage2-gcc:
+maybe-all-stage2-gcc:
+
+@if gcc-bootstrap
+maybe-configure-stage2-gcc: configure-stage2-gcc
+configure-stage2-gcc:  maybe-all-stage1-gcc 
+       $(MAKE) stage2-start
+       @if [ -f stage2-gcc/Makefile ] ; then \
+         $(STAMP) configure-stage2-gcc ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 2 in gcc ; \
+       cd gcc || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gcc"; \
+           libsrcdir="$$s/gcc";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gcc"; \
+           libsrcdir="$$s/gcc";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage2-gcc
+
+maybe-all-stage2-gcc: all-stage2-gcc
+all-stage2-gcc: configure-stage2-gcc
+       $(MAKE) stage2-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd gcc && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                $(EXTRA_GCC_FLAGS) && \
+       $(STAMP) ../all-stage2-gcc
+@endif gcc-bootstrap
+
+maybe-configure-stage2-intl:
+maybe-all-stage2-intl:
+
+@if intl-bootstrap
+maybe-configure-stage2-intl: configure-stage2-intl
+configure-stage2-intl:  maybe-all-stage1-intl 
+       $(MAKE) stage2-start
+       @if [ -f stage2-intl/Makefile ] ; then \
+         $(STAMP) configure-stage2-intl ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 2 in intl ; \
+       cd intl || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/intl"; \
+           libsrcdir="$$s/intl";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/intl"; \
+           libsrcdir="$$s/intl";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage2-intl
+
+maybe-all-stage2-intl: all-stage2-intl
+all-stage2-intl: configure-stage2-intl
+       $(MAKE) stage2-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd intl && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage2-intl
+@endif intl-bootstrap
+
+maybe-configure-stage2-ld:
+maybe-all-stage2-ld:
+
+@if ld-bootstrap
+maybe-configure-stage2-ld: configure-stage2-ld
+configure-stage2-ld:  maybe-all-stage1-ld 
+       $(MAKE) stage2-start
+       @if [ -f stage2-ld/Makefile ] ; then \
+         $(STAMP) configure-stage2-ld ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 2 in ld ; \
+       cd ld || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/ld"; \
+           libsrcdir="$$s/ld";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/ld"; \
+           libsrcdir="$$s/ld";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage2-ld
+
+maybe-all-stage2-ld: all-stage2-ld
+all-stage2-ld: configure-stage2-ld
+       $(MAKE) stage2-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd ld && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage2-ld
+@endif ld-bootstrap
+
+maybe-configure-stage2-libcpp:
+maybe-all-stage2-libcpp:
+
+@if libcpp-bootstrap
+maybe-configure-stage2-libcpp: configure-stage2-libcpp
+configure-stage2-libcpp:  maybe-all-stage1-libcpp 
+       $(MAKE) stage2-start
+       @if [ -f stage2-libcpp/Makefile ] ; then \
+         $(STAMP) configure-stage2-libcpp ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 2 in libcpp ; \
+       cd libcpp || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libcpp"; \
+           libsrcdir="$$s/libcpp";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libcpp"; \
+           libsrcdir="$$s/libcpp";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage2-libcpp
+
+maybe-all-stage2-libcpp: all-stage2-libcpp
+all-stage2-libcpp: configure-stage2-libcpp
+       $(MAKE) stage2-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd libcpp && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage2-libcpp
+@endif libcpp-bootstrap
+
+maybe-configure-stage2-libbanshee:
+maybe-all-stage2-libbanshee:
+
+@if libbanshee-bootstrap
+maybe-configure-stage2-libbanshee: configure-stage2-libbanshee
+configure-stage2-libbanshee:  maybe-all-stage1-libbanshee 
+       $(MAKE) stage2-start
+       @if [ -f stage2-libbanshee/Makefile ] ; then \
+         $(STAMP) configure-stage2-libbanshee ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 2 in libbanshee ; \
+       cd libbanshee || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libbanshee"; \
+           libsrcdir="$$s/libbanshee";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libbanshee"; \
+           libsrcdir="$$s/libbanshee";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage2-libbanshee
+
+maybe-all-stage2-libbanshee: all-stage2-libbanshee
+all-stage2-libbanshee: configure-stage2-libbanshee
+       $(MAKE) stage2-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd libbanshee && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage2-libbanshee
+@endif libbanshee-bootstrap
+
+maybe-configure-stage2-libiberty:
+maybe-all-stage2-libiberty:
+
+@if libiberty-bootstrap
+maybe-configure-stage2-libiberty: configure-stage2-libiberty
+configure-stage2-libiberty:  maybe-all-stage1-libiberty 
+       $(MAKE) stage2-start
+       @if [ -f stage2-libiberty/Makefile ] ; then \
+         $(STAMP) configure-stage2-libiberty ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 2 in libiberty ; \
+       cd libiberty || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libiberty"; \
+           libsrcdir="$$s/libiberty";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libiberty"; \
+           libsrcdir="$$s/libiberty";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage2-libiberty
+
+maybe-all-stage2-libiberty: all-stage2-libiberty
+all-stage2-libiberty: configure-stage2-libiberty
+       $(MAKE) stage2-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd libiberty && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage2-libiberty
+@endif libiberty-bootstrap
+
+maybe-configure-stage2-zlib:
+maybe-all-stage2-zlib:
+
+@if zlib-bootstrap
+maybe-configure-stage2-zlib: configure-stage2-zlib
+configure-stage2-zlib:  maybe-all-stage1-zlib 
+       $(MAKE) stage2-start
+       @if [ -f stage2-zlib/Makefile ] ; then \
+         $(STAMP) configure-stage2-zlib ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 2 in zlib ; \
+       cd zlib || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/zlib"; \
+           libsrcdir="$$s/zlib";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/zlib"; \
+           libsrcdir="$$s/zlib";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage2-zlib
+
+maybe-all-stage2-zlib: all-stage2-zlib
+all-stage2-zlib: configure-stage2-zlib
+       $(MAKE) stage2-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd zlib && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage2-zlib
+@endif zlib-bootstrap
+
+
+# FIXME: Will not need to be conditional when toplevel bootstrap is the
+# only possibility, but now it conflicts with no-bootstrap rules
+@if gcc-bootstrap
+
+
+
+.PHONY: bootstrap2
+bootstrap2: stage2-bubble  all
+
+
+.PHONY: restage2 touch-stage2 distclean-stage2
+
+# Rules to wipe a stage and all the following ones, used for cleanstrap
+distclean-stage1:: distclean-stage2 
+distclean-stage2::
+       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
+       rm -rf configure-stage2-* all-stage2-* stage2-* 
+
+# Rules to renew the timestamp on a stage and all the following ones
+touch-stage1:: touch-stage2 
 touch-stage2::
-       @[ -f configure-stage2-gcc ] && \
-         echo '$(STAMP) configure-stage2-gcc' && \
-         $(STAMP) configure-stage2-gcc; \
-       [ -f all-stage2-gcc ] && \
-         echo '$(STAMP) all-stage2-gcc' && \
-         $(STAMP) all-stage2-gcc; \
-       :
+       @case `echo configure-stage2-*` in \
+         'configure-stage2-*') ;; \
+         *) \
+           echo '$(STAMP)' configure-stage2-* && \
+           $(STAMP) configure-stage2-* ;; \
+       esac ; \
+       case `echo all-stage2-*` in \
+         'all-stage2-*') ;; \
+         *) \
+           echo '$(STAMP)' all-stage2-* && \
+           $(STAMP) all-stage2-* ;; \
+       esac
+
+# After building a stage, touch the following ones
+restage1:: touch-stage2 
+restage2::
+       rm -rf all-stage2-* 
+       $(MAKE) $(RECURSE_FLAGS_TO_PASS)  all-stage2 
+
+
+@endif gcc-bootstrap
+
+
+.PHONY: stage3-start stage3-end
+
+stage3-start::
+       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
+       echo stage3 > stage_current ; \
+       echo stage3 > stage_last
+@if bfd
+       [ -d stage3-bfd ] || mkdir stage3-bfd; \
+       set stage3-bfd bfd ; @CREATE_LINK_TO_DIR@  ; \
+       set stage2-bfd prev-bfd ; @CREATE_LINK_TO_DIR@ 
+@endif bfd
+@if opcodes
+       [ -d stage3-opcodes ] || mkdir stage3-opcodes; \
+       set stage3-opcodes opcodes ; @CREATE_LINK_TO_DIR@  ; \
+       set stage2-opcodes prev-opcodes ; @CREATE_LINK_TO_DIR@ 
+@endif opcodes
+@if binutils
+       [ -d stage3-binutils ] || mkdir stage3-binutils; \
+       set stage3-binutils binutils ; @CREATE_LINK_TO_DIR@  ; \
+       set stage2-binutils prev-binutils ; @CREATE_LINK_TO_DIR@ 
+@endif binutils
+@if gas
+       [ -d stage3-gas ] || mkdir stage3-gas; \
+       set stage3-gas gas ; @CREATE_LINK_TO_DIR@  ; \
+       set stage2-gas prev-gas ; @CREATE_LINK_TO_DIR@ 
+@endif gas
+@if gcc
+       [ -d stage3-gcc ] || mkdir stage3-gcc; \
+       set stage3-gcc gcc ; @CREATE_LINK_TO_DIR@  ; \
+       set stage2-gcc prev-gcc ; @CREATE_LINK_TO_DIR@ 
+@endif gcc
+@if intl
+       [ -d stage3-intl ] || mkdir stage3-intl; \
+       set stage3-intl intl ; @CREATE_LINK_TO_DIR@  ; \
+       set stage2-intl prev-intl ; @CREATE_LINK_TO_DIR@ 
+@endif intl
+@if ld
+       [ -d stage3-ld ] || mkdir stage3-ld; \
+       set stage3-ld ld ; @CREATE_LINK_TO_DIR@  ; \
+       set stage2-ld prev-ld ; @CREATE_LINK_TO_DIR@ 
+@endif ld
+@if libcpp
+       [ -d stage3-libcpp ] || mkdir stage3-libcpp; \
+       set stage3-libcpp libcpp ; @CREATE_LINK_TO_DIR@  ; \
+       set stage2-libcpp prev-libcpp ; @CREATE_LINK_TO_DIR@ 
+@endif libcpp
+@if libbanshee
+       [ -d stage3-libbanshee ] || mkdir stage3-libbanshee; \
+       set stage3-libbanshee libbanshee ; @CREATE_LINK_TO_DIR@  ; \
+       set stage2-libbanshee prev-libbanshee ; @CREATE_LINK_TO_DIR@ 
+@endif libbanshee
+@if libiberty
+       [ -d stage3-libiberty ] || mkdir stage3-libiberty; \
+       set stage3-libiberty libiberty ; @CREATE_LINK_TO_DIR@  ; \
+       set stage2-libiberty prev-libiberty ; @CREATE_LINK_TO_DIR@ 
+@endif libiberty
+@if zlib
+       [ -d stage3-zlib ] || mkdir stage3-zlib; \
+       set stage3-zlib zlib ; @CREATE_LINK_TO_DIR@  ; \
+       set stage2-zlib prev-zlib ; @CREATE_LINK_TO_DIR@ 
+@endif zlib
+
+stage3-end::
+       rm -f stage_current
+@if bfd
+       set bfd stage3-bfd ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-bfd stage2-bfd ; @UNDO_LINK_TO_DIR@ 
+@endif bfd
+@if opcodes
+       set opcodes stage3-opcodes ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-opcodes stage2-opcodes ; @UNDO_LINK_TO_DIR@ 
+@endif opcodes
+@if binutils
+       set binutils stage3-binutils ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-binutils stage2-binutils ; @UNDO_LINK_TO_DIR@ 
+@endif binutils
+@if gas
+       set gas stage3-gas ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-gas stage2-gas ; @UNDO_LINK_TO_DIR@ 
+@endif gas
+@if gcc
+       set gcc stage3-gcc ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-gcc stage2-gcc ; @UNDO_LINK_TO_DIR@ 
+@endif gcc
+@if intl
+       set intl stage3-intl ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-intl stage2-intl ; @UNDO_LINK_TO_DIR@ 
+@endif intl
+@if ld
+       set ld stage3-ld ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-ld stage2-ld ; @UNDO_LINK_TO_DIR@ 
+@endif ld
+@if libcpp
+       set libcpp stage3-libcpp ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-libcpp stage2-libcpp ; @UNDO_LINK_TO_DIR@ 
+@endif libcpp
+@if libbanshee
+       set libbanshee stage3-libbanshee ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-libbanshee stage2-libbanshee ; @UNDO_LINK_TO_DIR@ 
+@endif libbanshee
+@if libiberty
+       set libiberty stage3-libiberty ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-libiberty stage2-libiberty ; @UNDO_LINK_TO_DIR@ 
+@endif libiberty
+@if zlib
+       set zlib stage3-zlib ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-zlib stage2-zlib ; @UNDO_LINK_TO_DIR@ 
+@endif zlib
+
+# Bubble a bugfix through all the stages up to stage 3.  They
+# are remade, but not reconfigured.  The next stage (if any) will not
+# be reconfigured as well.
+.PHONY: stage3-bubble
+stage3-bubble:: stage2-bubble
+       @case `echo all-stage3-*` in \
+         'all-stage3-*') ;; \
+         *) echo Remaking stage 3 ; rm -f all-stage3-* ;; \
+       esac ; \
+       $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stage3
+
+.PHONY: all-stage3
+all-stage3:     \
+  maybe-all-stage3-bfd \
+  maybe-all-stage3-opcodes \
+  maybe-all-stage3-binutils             \
+  maybe-all-stage3-gas \
+  maybe-all-stage3-gcc        \
+  maybe-all-stage3-intl   \
+  maybe-all-stage3-ld \
+  maybe-all-stage3-libcpp  \
+  maybe-all-stage3-libbanshee \
+  maybe-all-stage3-libiberty                        \
+  maybe-all-stage3-zlib       
+
+
+maybe-configure-stage3-bfd:
+maybe-all-stage3-bfd:
+
+@if bfd-bootstrap
+maybe-configure-stage3-bfd: configure-stage3-bfd
+configure-stage3-bfd:  maybe-all-stage2-bfd 
+       $(MAKE) stage3-start
+       @if [ -f stage3-bfd/Makefile ] ; then \
+         $(STAMP) configure-stage3-bfd ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 3 in bfd ; \
+       cd bfd || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/bfd"; \
+           libsrcdir="$$s/bfd";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/bfd"; \
+           libsrcdir="$$s/bfd";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage3-bfd
+
+maybe-all-stage3-bfd: all-stage3-bfd
+all-stage3-bfd: configure-stage3-bfd
+       $(MAKE) stage3-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd bfd && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage3-bfd
+@endif bfd-bootstrap
+
+maybe-configure-stage3-opcodes:
+maybe-all-stage3-opcodes:
+
+@if opcodes-bootstrap
+maybe-configure-stage3-opcodes: configure-stage3-opcodes
+configure-stage3-opcodes:  maybe-all-stage2-opcodes 
+       $(MAKE) stage3-start
+       @if [ -f stage3-opcodes/Makefile ] ; then \
+         $(STAMP) configure-stage3-opcodes ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 3 in opcodes ; \
+       cd opcodes || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/opcodes"; \
+           libsrcdir="$$s/opcodes";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/opcodes"; \
+           libsrcdir="$$s/opcodes";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage3-opcodes
+
+maybe-all-stage3-opcodes: all-stage3-opcodes
+all-stage3-opcodes: configure-stage3-opcodes
+       $(MAKE) stage3-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd opcodes && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage3-opcodes
+@endif opcodes-bootstrap
+
+maybe-configure-stage3-binutils:
+maybe-all-stage3-binutils:
+
+@if binutils-bootstrap
+maybe-configure-stage3-binutils: configure-stage3-binutils
+configure-stage3-binutils:  maybe-all-stage2-binutils 
+       $(MAKE) stage3-start
+       @if [ -f stage3-binutils/Makefile ] ; then \
+         $(STAMP) configure-stage3-binutils ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 3 in binutils ; \
+       cd binutils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/binutils"; \
+           libsrcdir="$$s/binutils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/binutils"; \
+           libsrcdir="$$s/binutils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage3-binutils
+
+maybe-all-stage3-binutils: all-stage3-binutils
+all-stage3-binutils: configure-stage3-binutils
+       $(MAKE) stage3-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd binutils && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage3-binutils
+@endif binutils-bootstrap
+
+maybe-configure-stage3-gas:
+maybe-all-stage3-gas:
+
+@if gas-bootstrap
+maybe-configure-stage3-gas: configure-stage3-gas
+configure-stage3-gas:  maybe-all-stage2-gas 
+       $(MAKE) stage3-start
+       @if [ -f stage3-gas/Makefile ] ; then \
+         $(STAMP) configure-stage3-gas ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 3 in gas ; \
+       cd gas || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gas"; \
+           libsrcdir="$$s/gas";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gas"; \
+           libsrcdir="$$s/gas";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage3-gas
+
+maybe-all-stage3-gas: all-stage3-gas
+all-stage3-gas: configure-stage3-gas
+       $(MAKE) stage3-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd gas && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage3-gas
+@endif gas-bootstrap
+
+maybe-configure-stage3-gcc:
+maybe-all-stage3-gcc:
+
+@if gcc-bootstrap
+maybe-configure-stage3-gcc: configure-stage3-gcc
+configure-stage3-gcc:  maybe-all-stage2-gcc 
+       $(MAKE) stage3-start
+       @if [ -f stage3-gcc/Makefile ] ; then \
+         $(STAMP) configure-stage3-gcc ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 3 in gcc ; \
+       cd gcc || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gcc"; \
+           libsrcdir="$$s/gcc";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gcc"; \
+           libsrcdir="$$s/gcc";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage3-gcc
+
+maybe-all-stage3-gcc: all-stage3-gcc
+all-stage3-gcc: configure-stage3-gcc
+       $(MAKE) stage3-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd gcc && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                $(EXTRA_GCC_FLAGS) && \
+       $(STAMP) ../all-stage3-gcc
+@endif gcc-bootstrap
+
+maybe-configure-stage3-intl:
+maybe-all-stage3-intl:
+
+@if intl-bootstrap
+maybe-configure-stage3-intl: configure-stage3-intl
+configure-stage3-intl:  maybe-all-stage2-intl 
+       $(MAKE) stage3-start
+       @if [ -f stage3-intl/Makefile ] ; then \
+         $(STAMP) configure-stage3-intl ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 3 in intl ; \
+       cd intl || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/intl"; \
+           libsrcdir="$$s/intl";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/intl"; \
+           libsrcdir="$$s/intl";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage3-intl
+
+maybe-all-stage3-intl: all-stage3-intl
+all-stage3-intl: configure-stage3-intl
+       $(MAKE) stage3-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd intl && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage3-intl
+@endif intl-bootstrap
+
+maybe-configure-stage3-ld:
+maybe-all-stage3-ld:
+
+@if ld-bootstrap
+maybe-configure-stage3-ld: configure-stage3-ld
+configure-stage3-ld:  maybe-all-stage2-ld 
+       $(MAKE) stage3-start
+       @if [ -f stage3-ld/Makefile ] ; then \
+         $(STAMP) configure-stage3-ld ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 3 in ld ; \
+       cd ld || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/ld"; \
+           libsrcdir="$$s/ld";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/ld"; \
+           libsrcdir="$$s/ld";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage3-ld
+
+maybe-all-stage3-ld: all-stage3-ld
+all-stage3-ld: configure-stage3-ld
+       $(MAKE) stage3-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd ld && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage3-ld
+@endif ld-bootstrap
+
+maybe-configure-stage3-libcpp:
+maybe-all-stage3-libcpp:
+
+@if libcpp-bootstrap
+maybe-configure-stage3-libcpp: configure-stage3-libcpp
+configure-stage3-libcpp:  maybe-all-stage2-libcpp 
+       $(MAKE) stage3-start
+       @if [ -f stage3-libcpp/Makefile ] ; then \
+         $(STAMP) configure-stage3-libcpp ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 3 in libcpp ; \
+       cd libcpp || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libcpp"; \
+           libsrcdir="$$s/libcpp";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libcpp"; \
+           libsrcdir="$$s/libcpp";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage3-libcpp
+
+maybe-all-stage3-libcpp: all-stage3-libcpp
+all-stage3-libcpp: configure-stage3-libcpp
+       $(MAKE) stage3-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd libcpp && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage3-libcpp
+@endif libcpp-bootstrap
+
+maybe-configure-stage3-libbanshee:
+maybe-all-stage3-libbanshee:
+
+@if libbanshee-bootstrap
+maybe-configure-stage3-libbanshee: configure-stage3-libbanshee
+configure-stage3-libbanshee:  maybe-all-stage2-libbanshee 
+       $(MAKE) stage3-start
+       @if [ -f stage3-libbanshee/Makefile ] ; then \
+         $(STAMP) configure-stage3-libbanshee ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 3 in libbanshee ; \
+       cd libbanshee || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libbanshee"; \
+           libsrcdir="$$s/libbanshee";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libbanshee"; \
+           libsrcdir="$$s/libbanshee";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage3-libbanshee
+
+maybe-all-stage3-libbanshee: all-stage3-libbanshee
+all-stage3-libbanshee: configure-stage3-libbanshee
+       $(MAKE) stage3-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd libbanshee && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage3-libbanshee
+@endif libbanshee-bootstrap
+
+maybe-configure-stage3-libiberty:
+maybe-all-stage3-libiberty:
+
+@if libiberty-bootstrap
+maybe-configure-stage3-libiberty: configure-stage3-libiberty
+configure-stage3-libiberty:  maybe-all-stage2-libiberty 
+       $(MAKE) stage3-start
+       @if [ -f stage3-libiberty/Makefile ] ; then \
+         $(STAMP) configure-stage3-libiberty ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 3 in libiberty ; \
+       cd libiberty || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libiberty"; \
+           libsrcdir="$$s/libiberty";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libiberty"; \
+           libsrcdir="$$s/libiberty";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage3-libiberty
+
+maybe-all-stage3-libiberty: all-stage3-libiberty
+all-stage3-libiberty: configure-stage3-libiberty
+       $(MAKE) stage3-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd libiberty && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage3-libiberty
+@endif libiberty-bootstrap
+
+maybe-configure-stage3-zlib:
+maybe-all-stage3-zlib:
+
+@if zlib-bootstrap
+maybe-configure-stage3-zlib: configure-stage3-zlib
+configure-stage3-zlib:  maybe-all-stage2-zlib 
+       $(MAKE) stage3-start
+       @if [ -f stage3-zlib/Makefile ] ; then \
+         $(STAMP) configure-stage3-zlib ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 3 in zlib ; \
+       cd zlib || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/zlib"; \
+           libsrcdir="$$s/zlib";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/zlib"; \
+           libsrcdir="$$s/zlib";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage3-zlib
+
+maybe-all-stage3-zlib: all-stage3-zlib
+all-stage3-zlib: configure-stage3-zlib
+       $(MAKE) stage3-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd zlib && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage3-zlib
+@endif zlib-bootstrap
+
+
+# FIXME: Will not need to be conditional when toplevel bootstrap is the
+# only possibility, but now it conflicts with no-bootstrap rules
+@if gcc-bootstrap
+
+compare: all-stage3-gcc
+       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       rm -f .bad_compare ; \
+       cd stage3-gcc; \
+       files=`find . -name "*$(objext)" -print` ; \
+       cd .. ; \
+       for file in $${files} ; do \
+         f1=$$r/stage2-gcc/$$file; f2=$$r/stage3-gcc/$$file; \
+         @do_compare@ > /dev/null 2>&1; \
+         test $$? -eq 1 && echo $$file differs >> .bad_compare || true; \
+       done ; \
+       if [ -f .bad_compare ]; then \
+         echo "Bootstrap comparison failure!"; \
+         cat .bad_compare; \
+         exit 1; \
+       else \
+         true; \
+       fi ; \
+       $(STAMP) compare
+
+
+
+.PHONY: bootstrap
+bootstrap: stage3-bubble  compare  all
+
+
+.PHONY: restage3 touch-stage3 distclean-stage3
+
+# Rules to wipe a stage and all the following ones, used for cleanstrap
+distclean-stage2:: distclean-stage3 
+distclean-stage3::
+       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
+       rm -rf configure-stage3-* all-stage3-* stage3-* compare 
+
+# Rules to renew the timestamp on a stage and all the following ones
+touch-stage2:: touch-stage3 
+touch-stage3::
+       @case `echo configure-stage3-*` in \
+         'configure-stage3-*') ;; \
+         *) \
+           echo '$(STAMP)' configure-stage3-* && \
+           $(STAMP) configure-stage3-* ;; \
+       esac ; \
+       case `echo all-stage3-*` in \
+         'all-stage3-*') ;; \
+         *) \
+           echo '$(STAMP)' all-stage3-* && \
+           $(STAMP) all-stage3-* ;; \
+       esac
+
+# After building a stage, touch the following ones
+restage2:: touch-stage3 
+restage3::
+       rm -rf all-stage3-* compare 
+       $(MAKE) $(RECURSE_FLAGS_TO_PASS) compare 
+
+
+.PHONY: cleanstrap
+cleanstrap: distclean-stage1 bootstrap
+
+@endif gcc-bootstrap
+
+
+.PHONY: stage4-start stage4-end
+
+stage4-start::
+       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
+       echo stage4 > stage_current ; \
+       echo stage4 > stage_last
+@if bfd
+       [ -d stage4-bfd ] || mkdir stage4-bfd; \
+       set stage4-bfd bfd ; @CREATE_LINK_TO_DIR@  ; \
+       set stage3-bfd prev-bfd ; @CREATE_LINK_TO_DIR@ 
+@endif bfd
+@if opcodes
+       [ -d stage4-opcodes ] || mkdir stage4-opcodes; \
+       set stage4-opcodes opcodes ; @CREATE_LINK_TO_DIR@  ; \
+       set stage3-opcodes prev-opcodes ; @CREATE_LINK_TO_DIR@ 
+@endif opcodes
+@if binutils
+       [ -d stage4-binutils ] || mkdir stage4-binutils; \
+       set stage4-binutils binutils ; @CREATE_LINK_TO_DIR@  ; \
+       set stage3-binutils prev-binutils ; @CREATE_LINK_TO_DIR@ 
+@endif binutils
+@if gas
+       [ -d stage4-gas ] || mkdir stage4-gas; \
+       set stage4-gas gas ; @CREATE_LINK_TO_DIR@  ; \
+       set stage3-gas prev-gas ; @CREATE_LINK_TO_DIR@ 
+@endif gas
+@if gcc
+       [ -d stage4-gcc ] || mkdir stage4-gcc; \
+       set stage4-gcc gcc ; @CREATE_LINK_TO_DIR@  ; \
+       set stage3-gcc prev-gcc ; @CREATE_LINK_TO_DIR@ 
+@endif gcc
+@if intl
+       [ -d stage4-intl ] || mkdir stage4-intl; \
+       set stage4-intl intl ; @CREATE_LINK_TO_DIR@  ; \
+       set stage3-intl prev-intl ; @CREATE_LINK_TO_DIR@ 
+@endif intl
+@if ld
+       [ -d stage4-ld ] || mkdir stage4-ld; \
+       set stage4-ld ld ; @CREATE_LINK_TO_DIR@  ; \
+       set stage3-ld prev-ld ; @CREATE_LINK_TO_DIR@ 
+@endif ld
+@if libcpp
+       [ -d stage4-libcpp ] || mkdir stage4-libcpp; \
+       set stage4-libcpp libcpp ; @CREATE_LINK_TO_DIR@  ; \
+       set stage3-libcpp prev-libcpp ; @CREATE_LINK_TO_DIR@ 
+@endif libcpp
+@if libbanshee
+       [ -d stage4-libbanshee ] || mkdir stage4-libbanshee; \
+       set stage4-libbanshee libbanshee ; @CREATE_LINK_TO_DIR@  ; \
+       set stage3-libbanshee prev-libbanshee ; @CREATE_LINK_TO_DIR@ 
+@endif libbanshee
+@if libiberty
+       [ -d stage4-libiberty ] || mkdir stage4-libiberty; \
+       set stage4-libiberty libiberty ; @CREATE_LINK_TO_DIR@  ; \
+       set stage3-libiberty prev-libiberty ; @CREATE_LINK_TO_DIR@ 
+@endif libiberty
+@if zlib
+       [ -d stage4-zlib ] || mkdir stage4-zlib; \
+       set stage4-zlib zlib ; @CREATE_LINK_TO_DIR@  ; \
+       set stage3-zlib prev-zlib ; @CREATE_LINK_TO_DIR@ 
+@endif zlib
+
+stage4-end::
+       rm -f stage_current
+@if bfd
+       set bfd stage4-bfd ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-bfd stage3-bfd ; @UNDO_LINK_TO_DIR@ 
+@endif bfd
+@if opcodes
+       set opcodes stage4-opcodes ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-opcodes stage3-opcodes ; @UNDO_LINK_TO_DIR@ 
+@endif opcodes
+@if binutils
+       set binutils stage4-binutils ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-binutils stage3-binutils ; @UNDO_LINK_TO_DIR@ 
+@endif binutils
+@if gas
+       set gas stage4-gas ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-gas stage3-gas ; @UNDO_LINK_TO_DIR@ 
+@endif gas
+@if gcc
+       set gcc stage4-gcc ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-gcc stage3-gcc ; @UNDO_LINK_TO_DIR@ 
+@endif gcc
+@if intl
+       set intl stage4-intl ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-intl stage3-intl ; @UNDO_LINK_TO_DIR@ 
+@endif intl
+@if ld
+       set ld stage4-ld ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-ld stage3-ld ; @UNDO_LINK_TO_DIR@ 
+@endif ld
+@if libcpp
+       set libcpp stage4-libcpp ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-libcpp stage3-libcpp ; @UNDO_LINK_TO_DIR@ 
+@endif libcpp
+@if libbanshee
+       set libbanshee stage4-libbanshee ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-libbanshee stage3-libbanshee ; @UNDO_LINK_TO_DIR@ 
+@endif libbanshee
+@if libiberty
+       set libiberty stage4-libiberty ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-libiberty stage3-libiberty ; @UNDO_LINK_TO_DIR@ 
+@endif libiberty
+@if zlib
+       set zlib stage4-zlib ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-zlib stage3-zlib ; @UNDO_LINK_TO_DIR@ 
+@endif zlib
+
+# Bubble a bugfix through all the stages up to stage 4.  They
+# are remade, but not reconfigured.  The next stage (if any) will not
+# be reconfigured as well.
+.PHONY: stage4-bubble
+stage4-bubble:: stage3-bubble
+       @case `echo all-stage4-*` in \
+         'all-stage4-*') ;; \
+         *) echo Remaking stage 4 ; rm -f all-stage4-* ;; \
+       esac ; \
+       $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stage4
+
+.PHONY: all-stage4
+all-stage4:     \
+  maybe-all-stage4-bfd \
+  maybe-all-stage4-opcodes \
+  maybe-all-stage4-binutils             \
+  maybe-all-stage4-gas \
+  maybe-all-stage4-gcc        \
+  maybe-all-stage4-intl   \
+  maybe-all-stage4-ld \
+  maybe-all-stage4-libcpp  \
+  maybe-all-stage4-libbanshee \
+  maybe-all-stage4-libiberty                        \
+  maybe-all-stage4-zlib       
+
+
+maybe-configure-stage4-bfd:
+maybe-all-stage4-bfd:
+
+@if bfd-bootstrap
+maybe-configure-stage4-bfd: configure-stage4-bfd
+configure-stage4-bfd:  maybe-all-stage3-bfd 
+       $(MAKE) stage4-start
+       @if [ -f stage4-bfd/Makefile ] ; then \
+         $(STAMP) configure-stage4-bfd ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 4 in bfd ; \
+       cd bfd || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/bfd"; \
+           libsrcdir="$$s/bfd";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/bfd"; \
+           libsrcdir="$$s/bfd";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage4-bfd
+
+maybe-all-stage4-bfd: all-stage4-bfd
+all-stage4-bfd: configure-stage4-bfd
+       $(MAKE) stage4-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd bfd && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage4-bfd
+@endif bfd-bootstrap
+
+maybe-configure-stage4-opcodes:
+maybe-all-stage4-opcodes:
+
+@if opcodes-bootstrap
+maybe-configure-stage4-opcodes: configure-stage4-opcodes
+configure-stage4-opcodes:  maybe-all-stage3-opcodes 
+       $(MAKE) stage4-start
+       @if [ -f stage4-opcodes/Makefile ] ; then \
+         $(STAMP) configure-stage4-opcodes ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 4 in opcodes ; \
+       cd opcodes || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/opcodes"; \
+           libsrcdir="$$s/opcodes";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/opcodes"; \
+           libsrcdir="$$s/opcodes";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage4-opcodes
+
+maybe-all-stage4-opcodes: all-stage4-opcodes
+all-stage4-opcodes: configure-stage4-opcodes
+       $(MAKE) stage4-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd opcodes && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage4-opcodes
+@endif opcodes-bootstrap
+
+maybe-configure-stage4-binutils:
+maybe-all-stage4-binutils:
+
+@if binutils-bootstrap
+maybe-configure-stage4-binutils: configure-stage4-binutils
+configure-stage4-binutils:  maybe-all-stage3-binutils 
+       $(MAKE) stage4-start
+       @if [ -f stage4-binutils/Makefile ] ; then \
+         $(STAMP) configure-stage4-binutils ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 4 in binutils ; \
+       cd binutils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/binutils"; \
+           libsrcdir="$$s/binutils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/binutils"; \
+           libsrcdir="$$s/binutils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage4-binutils
+
+maybe-all-stage4-binutils: all-stage4-binutils
+all-stage4-binutils: configure-stage4-binutils
+       $(MAKE) stage4-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd binutils && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage4-binutils
+@endif binutils-bootstrap
+
+maybe-configure-stage4-gas:
+maybe-all-stage4-gas:
+
+@if gas-bootstrap
+maybe-configure-stage4-gas: configure-stage4-gas
+configure-stage4-gas:  maybe-all-stage3-gas 
+       $(MAKE) stage4-start
+       @if [ -f stage4-gas/Makefile ] ; then \
+         $(STAMP) configure-stage4-gas ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 4 in gas ; \
+       cd gas || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gas"; \
+           libsrcdir="$$s/gas";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gas"; \
+           libsrcdir="$$s/gas";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage4-gas
+
+maybe-all-stage4-gas: all-stage4-gas
+all-stage4-gas: configure-stage4-gas
+       $(MAKE) stage4-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd gas && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage4-gas
+@endif gas-bootstrap
+
+maybe-configure-stage4-gcc:
+maybe-all-stage4-gcc:
+
+@if gcc-bootstrap
+maybe-configure-stage4-gcc: configure-stage4-gcc
+configure-stage4-gcc:  maybe-all-stage3-gcc 
+       $(MAKE) stage4-start
+       @if [ -f stage4-gcc/Makefile ] ; then \
+         $(STAMP) configure-stage4-gcc ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 4 in gcc ; \
+       cd gcc || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gcc"; \
+           libsrcdir="$$s/gcc";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gcc"; \
+           libsrcdir="$$s/gcc";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage4-gcc
+
+maybe-all-stage4-gcc: all-stage4-gcc
+all-stage4-gcc: configure-stage4-gcc
+       $(MAKE) stage4-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd gcc && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                $(EXTRA_GCC_FLAGS) && \
+       $(STAMP) ../all-stage4-gcc
+@endif gcc-bootstrap
+
+maybe-configure-stage4-intl:
+maybe-all-stage4-intl:
+
+@if intl-bootstrap
+maybe-configure-stage4-intl: configure-stage4-intl
+configure-stage4-intl:  maybe-all-stage3-intl 
+       $(MAKE) stage4-start
+       @if [ -f stage4-intl/Makefile ] ; then \
+         $(STAMP) configure-stage4-intl ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 4 in intl ; \
+       cd intl || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/intl"; \
+           libsrcdir="$$s/intl";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/intl"; \
+           libsrcdir="$$s/intl";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage4-intl
+
+maybe-all-stage4-intl: all-stage4-intl
+all-stage4-intl: configure-stage4-intl
+       $(MAKE) stage4-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd intl && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage4-intl
+@endif intl-bootstrap
+
+maybe-configure-stage4-ld:
+maybe-all-stage4-ld:
+
+@if ld-bootstrap
+maybe-configure-stage4-ld: configure-stage4-ld
+configure-stage4-ld:  maybe-all-stage3-ld 
+       $(MAKE) stage4-start
+       @if [ -f stage4-ld/Makefile ] ; then \
+         $(STAMP) configure-stage4-ld ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 4 in ld ; \
+       cd ld || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/ld"; \
+           libsrcdir="$$s/ld";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/ld"; \
+           libsrcdir="$$s/ld";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage4-ld
+
+maybe-all-stage4-ld: all-stage4-ld
+all-stage4-ld: configure-stage4-ld
+       $(MAKE) stage4-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd ld && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage4-ld
+@endif ld-bootstrap
+
+maybe-configure-stage4-libcpp:
+maybe-all-stage4-libcpp:
+
+@if libcpp-bootstrap
+maybe-configure-stage4-libcpp: configure-stage4-libcpp
+configure-stage4-libcpp:  maybe-all-stage3-libcpp 
+       $(MAKE) stage4-start
+       @if [ -f stage4-libcpp/Makefile ] ; then \
+         $(STAMP) configure-stage4-libcpp ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 4 in libcpp ; \
+       cd libcpp || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libcpp"; \
+           libsrcdir="$$s/libcpp";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libcpp"; \
+           libsrcdir="$$s/libcpp";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage4-libcpp
+
+maybe-all-stage4-libcpp: all-stage4-libcpp
+all-stage4-libcpp: configure-stage4-libcpp
+       $(MAKE) stage4-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd libcpp && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage4-libcpp
+@endif libcpp-bootstrap
+
+maybe-configure-stage4-libbanshee:
+maybe-all-stage4-libbanshee:
+
+@if libbanshee-bootstrap
+maybe-configure-stage4-libbanshee: configure-stage4-libbanshee
+configure-stage4-libbanshee:  maybe-all-stage3-libbanshee 
+       $(MAKE) stage4-start
+       @if [ -f stage4-libbanshee/Makefile ] ; then \
+         $(STAMP) configure-stage4-libbanshee ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 4 in libbanshee ; \
+       cd libbanshee || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libbanshee"; \
+           libsrcdir="$$s/libbanshee";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libbanshee"; \
+           libsrcdir="$$s/libbanshee";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage4-libbanshee
+
+maybe-all-stage4-libbanshee: all-stage4-libbanshee
+all-stage4-libbanshee: configure-stage4-libbanshee
+       $(MAKE) stage4-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd libbanshee && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage4-libbanshee
+@endif libbanshee-bootstrap
+
+maybe-configure-stage4-libiberty:
+maybe-all-stage4-libiberty:
+
+@if libiberty-bootstrap
+maybe-configure-stage4-libiberty: configure-stage4-libiberty
+configure-stage4-libiberty:  maybe-all-stage3-libiberty 
+       $(MAKE) stage4-start
+       @if [ -f stage4-libiberty/Makefile ] ; then \
+         $(STAMP) configure-stage4-libiberty ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 4 in libiberty ; \
+       cd libiberty || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libiberty"; \
+           libsrcdir="$$s/libiberty";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libiberty"; \
+           libsrcdir="$$s/libiberty";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage4-libiberty
+
+maybe-all-stage4-libiberty: all-stage4-libiberty
+all-stage4-libiberty: configure-stage4-libiberty
+       $(MAKE) stage4-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd libiberty && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage4-libiberty
+@endif libiberty-bootstrap
+
+maybe-configure-stage4-zlib:
+maybe-all-stage4-zlib:
+
+@if zlib-bootstrap
+maybe-configure-stage4-zlib: configure-stage4-zlib
+configure-stage4-zlib:  maybe-all-stage3-zlib 
+       $(MAKE) stage4-start
+       @if [ -f stage4-zlib/Makefile ] ; then \
+         $(STAMP) configure-stage4-zlib ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage 4 in zlib ; \
+       cd zlib || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/zlib"; \
+           libsrcdir="$$s/zlib";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/zlib"; \
+           libsrcdir="$$s/zlib";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stage4-zlib
+
+maybe-all-stage4-zlib: all-stage4-zlib
+all-stage4-zlib: configure-stage4-zlib
+       $(MAKE) stage4-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd zlib && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+                 && \
+       $(STAMP) ../all-stage4-zlib
+@endif zlib-bootstrap
+
+
+# FIXME: Will not need to be conditional when toplevel bootstrap is the
+# only possibility, but now it conflicts with no-bootstrap rules
+@if gcc-bootstrap
+
+compare3: all-stage4-gcc
+       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+       rm -f .bad_compare ; \
+       cd stage4-gcc; \
+       files=`find . -name "*$(objext)" -print` ; \
+       cd .. ; \
+       for file in $${files} ; do \
+         f1=$$r/stage3-gcc/$$file; f2=$$r/stage4-gcc/$$file; \
+         @do_compare@ > /dev/null 2>&1; \
+         test $$? -eq 1 && echo $$file differs >> .bad_compare || true; \
+       done ; \
+       if [ -f .bad_compare ]; then \
+         echo "Bootstrap comparison failure!"; \
+         cat .bad_compare; \
+         exit 1; \
+       else \
+         true; \
+       fi ; \
+       $(STAMP) compare3
+
+
+
+.PHONY: bootstrap4
+bootstrap4: stage4-bubble  compare3  all
+
+
+.PHONY: restage4 touch-stage4 distclean-stage4
+
+# Rules to wipe a stage and all the following ones, used for cleanstrap
+distclean-stage3:: distclean-stage4 
+distclean-stage4::
+       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
+       rm -rf configure-stage4-* all-stage4-* stage4-* compare3 
+
+# Rules to renew the timestamp on a stage and all the following ones
+touch-stage3:: touch-stage4 
+touch-stage4::
+       @case `echo configure-stage4-*` in \
+         'configure-stage4-*') ;; \
+         *) \
+           echo '$(STAMP)' configure-stage4-* && \
+           $(STAMP) configure-stage4-* ;; \
+       esac ; \
+       case `echo all-stage4-*` in \
+         'all-stage4-*') ;; \
+         *) \
+           echo '$(STAMP)' all-stage4-* && \
+           $(STAMP) all-stage4-* ;; \
+       esac
+
+# After building a stage, touch the following ones
+restage3:: touch-stage4 
+restage4::
+       rm -rf all-stage4-* compare3 
+       $(MAKE) $(RECURSE_FLAGS_TO_PASS) compare3 
+
+
+@endif gcc-bootstrap
+
+
+.PHONY: stageprofile-start stageprofile-end
+
+stageprofile-start::
+       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
+       echo stageprofile > stage_current ; \
+       echo stageprofile > stage_last
+@if bfd
+       [ -d stageprofile-bfd ] || mkdir stageprofile-bfd; \
+       set stageprofile-bfd bfd ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-bfd prev-bfd ; @CREATE_LINK_TO_DIR@ 
+@endif bfd
+@if opcodes
+       [ -d stageprofile-opcodes ] || mkdir stageprofile-opcodes; \
+       set stageprofile-opcodes opcodes ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-opcodes prev-opcodes ; @CREATE_LINK_TO_DIR@ 
+@endif opcodes
+@if binutils
+       [ -d stageprofile-binutils ] || mkdir stageprofile-binutils; \
+       set stageprofile-binutils binutils ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-binutils prev-binutils ; @CREATE_LINK_TO_DIR@ 
+@endif binutils
+@if gas
+       [ -d stageprofile-gas ] || mkdir stageprofile-gas; \
+       set stageprofile-gas gas ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-gas prev-gas ; @CREATE_LINK_TO_DIR@ 
+@endif gas
+@if gcc
+       [ -d stageprofile-gcc ] || mkdir stageprofile-gcc; \
+       set stageprofile-gcc gcc ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-gcc prev-gcc ; @CREATE_LINK_TO_DIR@ 
+@endif gcc
+@if intl
+       [ -d stageprofile-intl ] || mkdir stageprofile-intl; \
+       set stageprofile-intl intl ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-intl prev-intl ; @CREATE_LINK_TO_DIR@ 
+@endif intl
+@if ld
+       [ -d stageprofile-ld ] || mkdir stageprofile-ld; \
+       set stageprofile-ld ld ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-ld prev-ld ; @CREATE_LINK_TO_DIR@ 
+@endif ld
+@if libcpp
+       [ -d stageprofile-libcpp ] || mkdir stageprofile-libcpp; \
+       set stageprofile-libcpp libcpp ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-libcpp prev-libcpp ; @CREATE_LINK_TO_DIR@ 
+@endif libcpp
+@if libbanshee
+       [ -d stageprofile-libbanshee ] || mkdir stageprofile-libbanshee; \
+       set stageprofile-libbanshee libbanshee ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-libbanshee prev-libbanshee ; @CREATE_LINK_TO_DIR@ 
+@endif libbanshee
+@if libiberty
+       [ -d stageprofile-libiberty ] || mkdir stageprofile-libiberty; \
+       set stageprofile-libiberty libiberty ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-libiberty prev-libiberty ; @CREATE_LINK_TO_DIR@ 
+@endif libiberty
+@if zlib
+       [ -d stageprofile-zlib ] || mkdir stageprofile-zlib; \
+       set stageprofile-zlib zlib ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-zlib prev-zlib ; @CREATE_LINK_TO_DIR@ 
+@endif zlib
+
+stageprofile-end::
+       rm -f stage_current
+@if bfd
+       set bfd stageprofile-bfd ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-bfd stage1-bfd ; @UNDO_LINK_TO_DIR@ 
+@endif bfd
+@if opcodes
+       set opcodes stageprofile-opcodes ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-opcodes stage1-opcodes ; @UNDO_LINK_TO_DIR@ 
+@endif opcodes
+@if binutils
+       set binutils stageprofile-binutils ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-binutils stage1-binutils ; @UNDO_LINK_TO_DIR@ 
+@endif binutils
+@if gas
+       set gas stageprofile-gas ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-gas stage1-gas ; @UNDO_LINK_TO_DIR@ 
+@endif gas
+@if gcc
+       set gcc stageprofile-gcc ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-gcc stage1-gcc ; @UNDO_LINK_TO_DIR@ 
+@endif gcc
+@if intl
+       set intl stageprofile-intl ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-intl stage1-intl ; @UNDO_LINK_TO_DIR@ 
+@endif intl
+@if ld
+       set ld stageprofile-ld ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-ld stage1-ld ; @UNDO_LINK_TO_DIR@ 
+@endif ld
+@if libcpp
+       set libcpp stageprofile-libcpp ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-libcpp stage1-libcpp ; @UNDO_LINK_TO_DIR@ 
+@endif libcpp
+@if libbanshee
+       set libbanshee stageprofile-libbanshee ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-libbanshee stage1-libbanshee ; @UNDO_LINK_TO_DIR@ 
+@endif libbanshee
+@if libiberty
+       set libiberty stageprofile-libiberty ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-libiberty stage1-libiberty ; @UNDO_LINK_TO_DIR@ 
+@endif libiberty
+@if zlib
+       set zlib stageprofile-zlib ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-zlib stage1-zlib ; @UNDO_LINK_TO_DIR@ 
+@endif zlib
+
+# Bubble a bugfix through all the stages up to stage profile.  They
+# are remade, but not reconfigured.  The next stage (if any) will not
+# be reconfigured as well.
+.PHONY: stageprofile-bubble
+stageprofile-bubble:: stage1-bubble
+       @case `echo all-stageprofile-*` in \
+         'all-stageprofile-*') ;; \
+         *) echo Remaking stage profile ; rm -f all-stageprofile-* ;; \
+       esac ; \
+       $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stageprofile
+
+.PHONY: all-stageprofile
+all-stageprofile:     \
+  maybe-all-stageprofile-bfd \
+  maybe-all-stageprofile-opcodes \
+  maybe-all-stageprofile-binutils             \
+  maybe-all-stageprofile-gas \
+  maybe-all-stageprofile-gcc        \
+  maybe-all-stageprofile-intl   \
+  maybe-all-stageprofile-ld \
+  maybe-all-stageprofile-libcpp  \
+  maybe-all-stageprofile-libbanshee \
+  maybe-all-stageprofile-libiberty                        \
+  maybe-all-stageprofile-zlib       
+
+
+maybe-configure-stageprofile-bfd:
+maybe-all-stageprofile-bfd:
+
+@if bfd-bootstrap
+maybe-configure-stageprofile-bfd: configure-stageprofile-bfd
+configure-stageprofile-bfd:  maybe-all-stage1-bfd 
+       $(MAKE) stageprofile-start
+       @if [ -f stageprofile-bfd/Makefile ] ; then \
+         $(STAMP) configure-stageprofile-bfd ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage profile in bfd ; \
+       cd bfd || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/bfd"; \
+           libsrcdir="$$s/bfd";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/bfd"; \
+           libsrcdir="$$s/bfd";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stageprofile-bfd
+
+maybe-all-stageprofile-bfd: all-stageprofile-bfd
+all-stageprofile-bfd: configure-stageprofile-bfd
+       $(MAKE) stageprofile-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd bfd && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-generate"  && \
+       $(STAMP) ../all-stageprofile-bfd
+@endif bfd-bootstrap
+
+maybe-configure-stageprofile-opcodes:
+maybe-all-stageprofile-opcodes:
+
+@if opcodes-bootstrap
+maybe-configure-stageprofile-opcodes: configure-stageprofile-opcodes
+configure-stageprofile-opcodes:  maybe-all-stage1-opcodes 
+       $(MAKE) stageprofile-start
+       @if [ -f stageprofile-opcodes/Makefile ] ; then \
+         $(STAMP) configure-stageprofile-opcodes ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage profile in opcodes ; \
+       cd opcodes || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/opcodes"; \
+           libsrcdir="$$s/opcodes";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/opcodes"; \
+           libsrcdir="$$s/opcodes";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stageprofile-opcodes
+
+maybe-all-stageprofile-opcodes: all-stageprofile-opcodes
+all-stageprofile-opcodes: configure-stageprofile-opcodes
+       $(MAKE) stageprofile-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd opcodes && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-generate"  && \
+       $(STAMP) ../all-stageprofile-opcodes
+@endif opcodes-bootstrap
+
+maybe-configure-stageprofile-binutils:
+maybe-all-stageprofile-binutils:
+
+@if binutils-bootstrap
+maybe-configure-stageprofile-binutils: configure-stageprofile-binutils
+configure-stageprofile-binutils:  maybe-all-stage1-binutils 
+       $(MAKE) stageprofile-start
+       @if [ -f stageprofile-binutils/Makefile ] ; then \
+         $(STAMP) configure-stageprofile-binutils ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage profile in binutils ; \
+       cd binutils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/binutils"; \
+           libsrcdir="$$s/binutils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/binutils"; \
+           libsrcdir="$$s/binutils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stageprofile-binutils
+
+maybe-all-stageprofile-binutils: all-stageprofile-binutils
+all-stageprofile-binutils: configure-stageprofile-binutils
+       $(MAKE) stageprofile-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd binutils && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-generate"  && \
+       $(STAMP) ../all-stageprofile-binutils
+@endif binutils-bootstrap
+
+maybe-configure-stageprofile-gas:
+maybe-all-stageprofile-gas:
+
+@if gas-bootstrap
+maybe-configure-stageprofile-gas: configure-stageprofile-gas
+configure-stageprofile-gas:  maybe-all-stage1-gas 
+       $(MAKE) stageprofile-start
+       @if [ -f stageprofile-gas/Makefile ] ; then \
+         $(STAMP) configure-stageprofile-gas ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage profile in gas ; \
+       cd gas || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gas"; \
+           libsrcdir="$$s/gas";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gas"; \
+           libsrcdir="$$s/gas";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stageprofile-gas
+
+maybe-all-stageprofile-gas: all-stageprofile-gas
+all-stageprofile-gas: configure-stageprofile-gas
+       $(MAKE) stageprofile-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd gas && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-generate"  && \
+       $(STAMP) ../all-stageprofile-gas
+@endif gas-bootstrap
+
+maybe-configure-stageprofile-gcc:
+maybe-all-stageprofile-gcc:
+
+@if gcc-bootstrap
+maybe-configure-stageprofile-gcc: configure-stageprofile-gcc
+configure-stageprofile-gcc:  maybe-all-stage1-gcc 
+       $(MAKE) stageprofile-start
+       @if [ -f stageprofile-gcc/Makefile ] ; then \
+         $(STAMP) configure-stageprofile-gcc ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage profile in gcc ; \
+       cd gcc || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gcc"; \
+           libsrcdir="$$s/gcc";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gcc"; \
+           libsrcdir="$$s/gcc";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stageprofile-gcc
+
+maybe-all-stageprofile-gcc: all-stageprofile-gcc
+all-stageprofile-gcc: configure-stageprofile-gcc
+       $(MAKE) stageprofile-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd gcc && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-generate" $(EXTRA_GCC_FLAGS) && \
+       $(STAMP) ../all-stageprofile-gcc
+@endif gcc-bootstrap
+
+maybe-configure-stageprofile-intl:
+maybe-all-stageprofile-intl:
+
+@if intl-bootstrap
+maybe-configure-stageprofile-intl: configure-stageprofile-intl
+configure-stageprofile-intl:  maybe-all-stage1-intl 
+       $(MAKE) stageprofile-start
+       @if [ -f stageprofile-intl/Makefile ] ; then \
+         $(STAMP) configure-stageprofile-intl ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage profile in intl ; \
+       cd intl || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/intl"; \
+           libsrcdir="$$s/intl";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/intl"; \
+           libsrcdir="$$s/intl";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stageprofile-intl
+
+maybe-all-stageprofile-intl: all-stageprofile-intl
+all-stageprofile-intl: configure-stageprofile-intl
+       $(MAKE) stageprofile-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd intl && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-generate"  && \
+       $(STAMP) ../all-stageprofile-intl
+@endif intl-bootstrap
+
+maybe-configure-stageprofile-ld:
+maybe-all-stageprofile-ld:
+
+@if ld-bootstrap
+maybe-configure-stageprofile-ld: configure-stageprofile-ld
+configure-stageprofile-ld:  maybe-all-stage1-ld 
+       $(MAKE) stageprofile-start
+       @if [ -f stageprofile-ld/Makefile ] ; then \
+         $(STAMP) configure-stageprofile-ld ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage profile in ld ; \
+       cd ld || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/ld"; \
+           libsrcdir="$$s/ld";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/ld"; \
+           libsrcdir="$$s/ld";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stageprofile-ld
+
+maybe-all-stageprofile-ld: all-stageprofile-ld
+all-stageprofile-ld: configure-stageprofile-ld
+       $(MAKE) stageprofile-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd ld && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-generate"  && \
+       $(STAMP) ../all-stageprofile-ld
+@endif ld-bootstrap
+
+maybe-configure-stageprofile-libcpp:
+maybe-all-stageprofile-libcpp:
+
+@if libcpp-bootstrap
+maybe-configure-stageprofile-libcpp: configure-stageprofile-libcpp
+configure-stageprofile-libcpp:  maybe-all-stage1-libcpp 
+       $(MAKE) stageprofile-start
+       @if [ -f stageprofile-libcpp/Makefile ] ; then \
+         $(STAMP) configure-stageprofile-libcpp ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage profile in libcpp ; \
+       cd libcpp || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libcpp"; \
+           libsrcdir="$$s/libcpp";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libcpp"; \
+           libsrcdir="$$s/libcpp";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stageprofile-libcpp
+
+maybe-all-stageprofile-libcpp: all-stageprofile-libcpp
+all-stageprofile-libcpp: configure-stageprofile-libcpp
+       $(MAKE) stageprofile-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd libcpp && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-generate"  && \
+       $(STAMP) ../all-stageprofile-libcpp
+@endif libcpp-bootstrap
+
+maybe-configure-stageprofile-libbanshee:
+maybe-all-stageprofile-libbanshee:
+
+@if libbanshee-bootstrap
+maybe-configure-stageprofile-libbanshee: configure-stageprofile-libbanshee
+configure-stageprofile-libbanshee:  maybe-all-stage1-libbanshee 
+       $(MAKE) stageprofile-start
+       @if [ -f stageprofile-libbanshee/Makefile ] ; then \
+         $(STAMP) configure-stageprofile-libbanshee ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage profile in libbanshee ; \
+       cd libbanshee || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libbanshee"; \
+           libsrcdir="$$s/libbanshee";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libbanshee"; \
+           libsrcdir="$$s/libbanshee";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stageprofile-libbanshee
+
+maybe-all-stageprofile-libbanshee: all-stageprofile-libbanshee
+all-stageprofile-libbanshee: configure-stageprofile-libbanshee
+       $(MAKE) stageprofile-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd libbanshee && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-generate"  && \
+       $(STAMP) ../all-stageprofile-libbanshee
+@endif libbanshee-bootstrap
+
+maybe-configure-stageprofile-libiberty:
+maybe-all-stageprofile-libiberty:
+
+@if libiberty-bootstrap
+maybe-configure-stageprofile-libiberty: configure-stageprofile-libiberty
+configure-stageprofile-libiberty:  maybe-all-stage1-libiberty 
+       $(MAKE) stageprofile-start
+       @if [ -f stageprofile-libiberty/Makefile ] ; then \
+         $(STAMP) configure-stageprofile-libiberty ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage profile in libiberty ; \
+       cd libiberty || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libiberty"; \
+           libsrcdir="$$s/libiberty";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libiberty"; \
+           libsrcdir="$$s/libiberty";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stageprofile-libiberty
+
+maybe-all-stageprofile-libiberty: all-stageprofile-libiberty
+all-stageprofile-libiberty: configure-stageprofile-libiberty
+       $(MAKE) stageprofile-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd libiberty && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-generate"  && \
+       $(STAMP) ../all-stageprofile-libiberty
+@endif libiberty-bootstrap
+
+maybe-configure-stageprofile-zlib:
+maybe-all-stageprofile-zlib:
+
+@if zlib-bootstrap
+maybe-configure-stageprofile-zlib: configure-stageprofile-zlib
+configure-stageprofile-zlib:  maybe-all-stage1-zlib 
+       $(MAKE) stageprofile-start
+       @if [ -f stageprofile-zlib/Makefile ] ; then \
+         $(STAMP) configure-stageprofile-zlib ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage profile in zlib ; \
+       cd zlib || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/zlib"; \
+           libsrcdir="$$s/zlib";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/zlib"; \
+           libsrcdir="$$s/zlib";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stageprofile-zlib
+
+maybe-all-stageprofile-zlib: all-stageprofile-zlib
+all-stageprofile-zlib: configure-stageprofile-zlib
+       $(MAKE) stageprofile-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd zlib && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-generate"  && \
+       $(STAMP) ../all-stageprofile-zlib
+@endif zlib-bootstrap
+
+
+# FIXME: Will not need to be conditional when toplevel bootstrap is the
+# only possibility, but now it conflicts with no-bootstrap rules
+@if gcc-bootstrap
+
+
+
+
+.PHONY: restageprofile touch-stageprofile distclean-stageprofile
+
+# Rules to wipe a stage and all the following ones, used for cleanstrap
+distclean-stage1:: distclean-stageprofile 
+distclean-stageprofile::
+       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
+       rm -rf configure-stageprofile-* all-stageprofile-* stageprofile-* 
+
+# Rules to renew the timestamp on a stage and all the following ones
+touch-stage1:: touch-stageprofile 
+touch-stageprofile::
+       @case `echo configure-stageprofile-*` in \
+         'configure-stageprofile-*') ;; \
+         *) \
+           echo '$(STAMP)' configure-stageprofile-* && \
+           $(STAMP) configure-stageprofile-* ;; \
+       esac ; \
+       case `echo all-stageprofile-*` in \
+         'all-stageprofile-*') ;; \
+         *) \
+           echo '$(STAMP)' all-stageprofile-* && \
+           $(STAMP) all-stageprofile-* ;; \
+       esac
 
 # After building a stage, touch the following ones
-restage1:: touch-stage2 
-restage2::
-       rm -rf all-stage2-gcc 
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS)  all-stage2-gcc 
+restage1:: touch-stageprofile 
+restageprofile::
+       rm -rf all-stageprofile-* 
+       $(MAKE) $(RECURSE_FLAGS_TO_PASS)  all-stageprofile 
 
 
+@endif gcc-bootstrap
 
 
-.PHONY: stage3-start stage3-end
+.PHONY: stagefeedback-start stagefeedback-end
 
-stage3-start::
+stagefeedback-start::
        [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
-       echo stage3 > stage_current ; \
-       echo stage3 > stage_last ; \
-       [ -d stage3-gcc ] || mkdir stage3-gcc; \
-       set stage3-gcc gcc ; @CREATE_LINK_TO_DIR@  ; \
-       set stage2-gcc prev-gcc ; @CREATE_LINK_TO_DIR@ 
+       echo stagefeedback > stage_current ; \
+       echo stagefeedback > stage_last
+@if bfd
+       [ -d stagefeedback-bfd ] || mkdir stagefeedback-bfd; \
+       set stagefeedback-bfd bfd ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-bfd prev-bfd ; @CREATE_LINK_TO_DIR@ 
+@endif bfd
+@if opcodes
+       [ -d stagefeedback-opcodes ] || mkdir stagefeedback-opcodes; \
+       set stagefeedback-opcodes opcodes ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-opcodes prev-opcodes ; @CREATE_LINK_TO_DIR@ 
+@endif opcodes
+@if binutils
+       [ -d stagefeedback-binutils ] || mkdir stagefeedback-binutils; \
+       set stagefeedback-binutils binutils ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-binutils prev-binutils ; @CREATE_LINK_TO_DIR@ 
+@endif binutils
+@if gas
+       [ -d stagefeedback-gas ] || mkdir stagefeedback-gas; \
+       set stagefeedback-gas gas ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-gas prev-gas ; @CREATE_LINK_TO_DIR@ 
+@endif gas
+@if gcc
+       [ -d stagefeedback-gcc ] || mkdir stagefeedback-gcc; \
+       set stagefeedback-gcc gcc ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-gcc prev-gcc ; @CREATE_LINK_TO_DIR@ 
+@endif gcc
+@if intl
+       [ -d stagefeedback-intl ] || mkdir stagefeedback-intl; \
+       set stagefeedback-intl intl ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-intl prev-intl ; @CREATE_LINK_TO_DIR@ 
+@endif intl
+@if ld
+       [ -d stagefeedback-ld ] || mkdir stagefeedback-ld; \
+       set stagefeedback-ld ld ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-ld prev-ld ; @CREATE_LINK_TO_DIR@ 
+@endif ld
+@if libcpp
+       [ -d stagefeedback-libcpp ] || mkdir stagefeedback-libcpp; \
+       set stagefeedback-libcpp libcpp ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-libcpp prev-libcpp ; @CREATE_LINK_TO_DIR@ 
+@endif libcpp
+@if libbanshee
+       [ -d stagefeedback-libbanshee ] || mkdir stagefeedback-libbanshee; \
+       set stagefeedback-libbanshee libbanshee ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-libbanshee prev-libbanshee ; @CREATE_LINK_TO_DIR@ 
+@endif libbanshee
+@if libiberty
+       [ -d stagefeedback-libiberty ] || mkdir stagefeedback-libiberty; \
+       set stagefeedback-libiberty libiberty ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-libiberty prev-libiberty ; @CREATE_LINK_TO_DIR@ 
+@endif libiberty
+@if zlib
+       [ -d stagefeedback-zlib ] || mkdir stagefeedback-zlib; \
+       set stagefeedback-zlib zlib ; @CREATE_LINK_TO_DIR@  ; \
+       set stage1-zlib prev-zlib ; @CREATE_LINK_TO_DIR@ 
+@endif zlib
 
-stage3-end::
-       rm -f stage_current ; \
-       set gcc stage3-gcc ; @UNDO_LINK_TO_DIR@  ; \
-       set prev-gcc stage2-gcc ; @UNDO_LINK_TO_DIR@ 
+stagefeedback-end::
+       rm -f stage_current
+@if bfd
+       set bfd stagefeedback-bfd ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-bfd stage1-bfd ; @UNDO_LINK_TO_DIR@ 
+@endif bfd
+@if opcodes
+       set opcodes stagefeedback-opcodes ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-opcodes stage1-opcodes ; @UNDO_LINK_TO_DIR@ 
+@endif opcodes
+@if binutils
+       set binutils stagefeedback-binutils ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-binutils stage1-binutils ; @UNDO_LINK_TO_DIR@ 
+@endif binutils
+@if gas
+       set gas stagefeedback-gas ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-gas stage1-gas ; @UNDO_LINK_TO_DIR@ 
+@endif gas
+@if gcc
+       set gcc stagefeedback-gcc ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-gcc stage1-gcc ; @UNDO_LINK_TO_DIR@ 
+@endif gcc
+@if intl
+       set intl stagefeedback-intl ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-intl stage1-intl ; @UNDO_LINK_TO_DIR@ 
+@endif intl
+@if ld
+       set ld stagefeedback-ld ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-ld stage1-ld ; @UNDO_LINK_TO_DIR@ 
+@endif ld
+@if libcpp
+       set libcpp stagefeedback-libcpp ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-libcpp stage1-libcpp ; @UNDO_LINK_TO_DIR@ 
+@endif libcpp
+@if libbanshee
+       set libbanshee stagefeedback-libbanshee ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-libbanshee stage1-libbanshee ; @UNDO_LINK_TO_DIR@ 
+@endif libbanshee
+@if libiberty
+       set libiberty stagefeedback-libiberty ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-libiberty stage1-libiberty ; @UNDO_LINK_TO_DIR@ 
+@endif libiberty
+@if zlib
+       set zlib stagefeedback-zlib ; @UNDO_LINK_TO_DIR@  ; \
+       set prev-zlib stage1-zlib ; @UNDO_LINK_TO_DIR@ 
+@endif zlib
 
-# Bubble a bugfix through all the stages up to stage 3.  They
+# Bubble a bugfix through all the stages up to stage feedback.  They
 # are remade, but not reconfigured.  The next stage (if any) will not
 # be reconfigured as well.
-.PHONY: stage3-bubble
-stage3-bubble:: stage2-bubble
-       @if [ -f all-stage3-gcc ] ; then \
-         echo Remaking stage 3 ; \
-         rm -f all-stage3-gcc ; \
+.PHONY: stagefeedback-bubble
+stagefeedback-bubble:: stage1-bubble
+       @case `echo all-stagefeedback-*` in \
+         'all-stagefeedback-*') ;; \
+         *) echo Remaking stage feedback ; rm -f all-stagefeedback-* ;; \
+       esac ; \
+       $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stagefeedback
+
+.PHONY: all-stagefeedback
+all-stagefeedback:     \
+  maybe-all-stagefeedback-bfd \
+  maybe-all-stagefeedback-opcodes \
+  maybe-all-stagefeedback-binutils             \
+  maybe-all-stagefeedback-gas \
+  maybe-all-stagefeedback-gcc        \
+  maybe-all-stagefeedback-intl   \
+  maybe-all-stagefeedback-ld \
+  maybe-all-stagefeedback-libcpp  \
+  maybe-all-stagefeedback-libbanshee \
+  maybe-all-stagefeedback-libiberty                        \
+  maybe-all-stagefeedback-zlib       
+
+
+maybe-configure-stagefeedback-bfd:
+maybe-all-stagefeedback-bfd:
+
+@if bfd-bootstrap
+maybe-configure-stagefeedback-bfd: configure-stagefeedback-bfd
+configure-stagefeedback-bfd:  maybe-all-stage1-bfd 
+       $(MAKE) stagefeedback-start
+       @if [ -f stagefeedback-bfd/Makefile ] ; then \
+         $(STAMP) configure-stagefeedback-bfd ; \
+         exit 0; \
+       else \
+         true ; \
        fi ; \
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stage3-gcc
-
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage feedback in bfd ; \
+       cd bfd || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/bfd"; \
+           libsrcdir="$$s/bfd";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/bfd"; \
+           libsrcdir="$$s/bfd";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stagefeedback-bfd
 
-stage2-bubble::
-       @if [ -f configure-stage3-gcc ] ; then \
-         $(STAMP) configure-stage3-gcc ; \
-       fi
+maybe-all-stagefeedback-bfd: all-stagefeedback-bfd
+all-stagefeedback-bfd: configure-stagefeedback-bfd
+       $(MAKE) stagefeedback-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd bfd && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-use"  && \
+       $(STAMP) ../all-stagefeedback-bfd
+@endif bfd-bootstrap
 
+maybe-configure-stagefeedback-opcodes:
+maybe-all-stagefeedback-opcodes:
 
-configure-stage3-gcc:  all-stage2-gcc 
-       $(MAKE) stage3-start
-       @if [ -f stage3-gcc/Makefile ] ; then \
-         $(STAMP) configure-stage3-gcc ; \
+@if opcodes-bootstrap
+maybe-configure-stagefeedback-opcodes: configure-stagefeedback-opcodes
+configure-stagefeedback-opcodes:  maybe-all-stage1-opcodes 
+       $(MAKE) stagefeedback-start
+       @if [ -f stagefeedback-opcodes/Makefile ] ; then \
+         $(STAMP) configure-stagefeedback-opcodes ; \
          exit 0; \
        else \
          true ; \
@@ -28424,132 +31845,187 @@ configure-stage3-gcc:  all-stage2-gcc
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
        $(STAGE_HOST_EXPORTS)  \
-       echo Configuring stage 3 in gcc ; \
-       cd gcc || exit 1; \
+       echo Configuring stage feedback in opcodes ; \
+       cd opcodes || exit 1; \
        case $(srcdir) in \
          \.) \
            srcdiroption="--srcdir=."; \
            libsrcdir=".";; \
          /* | [A-Za-z]:[\\/]*) \
-           srcdiroption="--srcdir=$(srcdir)/gcc"; \
-           libsrcdir="$$s/gcc";; \
+           srcdiroption="--srcdir=$(srcdir)/opcodes"; \
+           libsrcdir="$$s/opcodes";; \
          *) \
-           srcdiroption="--srcdir=../$(srcdir)/gcc"; \
-           libsrcdir="$$s/gcc";; \
+           srcdiroption="--srcdir=../$(srcdir)/opcodes"; \
+           libsrcdir="$$s/opcodes";; \
        esac; \
        $(SHELL) $${libsrcdir}/configure \
          $(HOST_CONFIGARGS) $${srcdiroption} \
-         @stage2_werror_flag@ && \
-         $(STAMP) ../configure-stage3-gcc
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stagefeedback-opcodes
 
-all-stage3-gcc: configure-stage3-gcc
-       $(MAKE) stage3-start
+maybe-all-stagefeedback-opcodes: all-stagefeedback-opcodes
+all-stagefeedback-opcodes: configure-stagefeedback-opcodes
+       $(MAKE) stagefeedback-start
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
        $(STAGE_HOST_EXPORTS)  \
-       cd gcc && \
-       $(MAKE) $(GCC_FLAGS_TO_PASS)  \
+       cd opcodes && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
                $(POSTSTAGE1_FLAGS_TO_PASS)  \
-                && $(STAMP) ../all-stage3-gcc
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-use"  && \
+       $(STAMP) ../all-stagefeedback-opcodes
+@endif opcodes-bootstrap
 
+maybe-configure-stagefeedback-binutils:
+maybe-all-stagefeedback-binutils:
 
-compare: all-stage3-gcc
-       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
-       @r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       rm -f .bad_compare ; \
-       cd stage3-gcc; \
-       files=`find . -name "*$(objext)" -print` ; \
-       cd .. ; \
-       for file in $${files} ; do \
-         f1=$$r/stage2-gcc/$$file; f2=$$r/stage3-gcc/$$file; \
-         @do_compare@ > /dev/null 2>&1; \
-         test $$? -eq 1 && echo $$file differs >> .bad_compare || true; \
-       done ; \
-       if [ -f .bad_compare ]; then \
-         echo "Bootstrap comparison failure!"; \
-         cat .bad_compare; \
-         exit 1; \
+@if binutils-bootstrap
+maybe-configure-stagefeedback-binutils: configure-stagefeedback-binutils
+configure-stagefeedback-binutils:  maybe-all-stage1-binutils 
+       $(MAKE) stagefeedback-start
+       @if [ -f stagefeedback-binutils/Makefile ] ; then \
+         $(STAMP) configure-stagefeedback-binutils ; \
+         exit 0; \
        else \
-         true; \
+         true ; \
        fi ; \
-       $(STAMP) compare
-
-
-
-.PHONY: bootstrap
-bootstrap:
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS) stage3-bubble  compare  all
-
-
-.PHONY: restage3 touch-stage3 distclean-stage3
-
-# Rules to wipe a stage and all the following ones, used for cleanstrap
-distclean-stage2:: distclean-stage3 
-distclean-stage3::
-       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
-       rm -rf configure-stage3-gcc all-stage3-gcc stage3-gcc compare 
-
-# Rules to renew the timestamp on a stage and all the following ones
-touch-stage2:: touch-stage3 
-touch-stage3::
-       @[ -f configure-stage3-gcc ] && \
-         echo '$(STAMP) configure-stage3-gcc' && \
-         $(STAMP) configure-stage3-gcc; \
-       [ -f all-stage3-gcc ] && \
-         echo '$(STAMP) all-stage3-gcc' && \
-         $(STAMP) all-stage3-gcc; \
-       :
-
-# After building a stage, touch the following ones
-restage2:: touch-stage3 
-restage3::
-       rm -rf all-stage3-gcc compare 
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS) compare 
-
-
-.PHONY: cleanstrap
-cleanstrap: distclean-stage1 bootstrap
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage feedback in binutils ; \
+       cd binutils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/binutils"; \
+           libsrcdir="$$s/binutils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/binutils"; \
+           libsrcdir="$$s/binutils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stagefeedback-binutils
 
+maybe-all-stagefeedback-binutils: all-stagefeedback-binutils
+all-stagefeedback-binutils: configure-stagefeedback-binutils
+       $(MAKE) stagefeedback-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd binutils && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-use"  && \
+       $(STAMP) ../all-stagefeedback-binutils
+@endif binutils-bootstrap
 
+maybe-configure-stagefeedback-gas:
+maybe-all-stagefeedback-gas:
 
-.PHONY: stage4-start stage4-end
+@if gas-bootstrap
+maybe-configure-stagefeedback-gas: configure-stagefeedback-gas
+configure-stagefeedback-gas:  maybe-all-stage1-gas 
+       $(MAKE) stagefeedback-start
+       @if [ -f stagefeedback-gas/Makefile ] ; then \
+         $(STAMP) configure-stagefeedback-gas ; \
+         exit 0; \
+       else \
+         true ; \
+       fi ; \
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage feedback in gas ; \
+       cd gas || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gas"; \
+           libsrcdir="$$s/gas";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gas"; \
+           libsrcdir="$$s/gas";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stagefeedback-gas
 
-stage4-start::
-       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
-       echo stage4 > stage_current ; \
-       echo stage4 > stage_last ; \
-       [ -d stage4-gcc ] || mkdir stage4-gcc; \
-       set stage4-gcc gcc ; @CREATE_LINK_TO_DIR@  ; \
-       set stage3-gcc prev-gcc ; @CREATE_LINK_TO_DIR@ 
+maybe-all-stagefeedback-gas: all-stagefeedback-gas
+all-stagefeedback-gas: configure-stagefeedback-gas
+       $(MAKE) stagefeedback-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd gas && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-use"  && \
+       $(STAMP) ../all-stagefeedback-gas
+@endif gas-bootstrap
 
-stage4-end::
-       rm -f stage_current ; \
-       set gcc stage4-gcc ; @UNDO_LINK_TO_DIR@  ; \
-       set prev-gcc stage3-gcc ; @UNDO_LINK_TO_DIR@ 
+maybe-configure-stagefeedback-gcc:
+maybe-all-stagefeedback-gcc:
 
-# Bubble a bugfix through all the stages up to stage 4.  They
-# are remade, but not reconfigured.  The next stage (if any) will not
-# be reconfigured as well.
-.PHONY: stage4-bubble
-stage4-bubble:: stage3-bubble
-       @if [ -f all-stage4-gcc ] ; then \
-         echo Remaking stage 4 ; \
-         rm -f all-stage4-gcc ; \
+@if gcc-bootstrap
+maybe-configure-stagefeedback-gcc: configure-stagefeedback-gcc
+configure-stagefeedback-gcc:  maybe-all-stage1-gcc 
+       $(MAKE) stagefeedback-start
+       @if [ -f stagefeedback-gcc/Makefile ] ; then \
+         $(STAMP) configure-stagefeedback-gcc ; \
+         exit 0; \
+       else \
+         true ; \
        fi ; \
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stage4-gcc
-
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage feedback in gcc ; \
+       cd gcc || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gcc"; \
+           libsrcdir="$$s/gcc";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gcc"; \
+           libsrcdir="$$s/gcc";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stagefeedback-gcc
 
-stage3-bubble::
-       @if [ -f configure-stage4-gcc ] ; then \
-         $(STAMP) configure-stage4-gcc ; \
-       fi
+maybe-all-stagefeedback-gcc: all-stagefeedback-gcc
+all-stagefeedback-gcc: configure-stagefeedback-gcc
+       $(MAKE) stagefeedback-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd gcc && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-use" $(EXTRA_GCC_FLAGS) && \
+       $(STAMP) ../all-stagefeedback-gcc
+@endif gcc-bootstrap
 
+maybe-configure-stagefeedback-intl:
+maybe-all-stagefeedback-intl:
 
-configure-stage4-gcc:  all-stage3-gcc 
-       $(MAKE) stage4-start
-       @if [ -f stage4-gcc/Makefile ] ; then \
-         $(STAMP) configure-stage4-gcc ; \
+@if intl-bootstrap
+maybe-configure-stagefeedback-intl: configure-stagefeedback-intl
+configure-stagefeedback-intl:  maybe-all-stage1-intl 
+       $(MAKE) stagefeedback-start
+       @if [ -f stagefeedback-intl/Makefile ] ; then \
+         $(STAMP) configure-stagefeedback-intl ; \
          exit 0; \
        else \
          true ; \
@@ -28557,129 +32033,140 @@ configure-stage4-gcc:  all-stage3-gcc
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
        $(STAGE_HOST_EXPORTS)  \
-       echo Configuring stage 4 in gcc ; \
-       cd gcc || exit 1; \
+       echo Configuring stage feedback in intl ; \
+       cd intl || exit 1; \
        case $(srcdir) in \
          \.) \
            srcdiroption="--srcdir=."; \
            libsrcdir=".";; \
          /* | [A-Za-z]:[\\/]*) \
-           srcdiroption="--srcdir=$(srcdir)/gcc"; \
-           libsrcdir="$$s/gcc";; \
+           srcdiroption="--srcdir=$(srcdir)/intl"; \
+           libsrcdir="$$s/intl";; \
          *) \
-           srcdiroption="--srcdir=../$(srcdir)/gcc"; \
-           libsrcdir="$$s/gcc";; \
+           srcdiroption="--srcdir=../$(srcdir)/intl"; \
+           libsrcdir="$$s/intl";; \
        esac; \
        $(SHELL) $${libsrcdir}/configure \
          $(HOST_CONFIGARGS) $${srcdiroption} \
-         @stage2_werror_flag@ && \
-         $(STAMP) ../configure-stage4-gcc
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stagefeedback-intl
 
-all-stage4-gcc: configure-stage4-gcc
-       $(MAKE) stage4-start
+maybe-all-stagefeedback-intl: all-stagefeedback-intl
+all-stagefeedback-intl: configure-stagefeedback-intl
+       $(MAKE) stagefeedback-start
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
        $(STAGE_HOST_EXPORTS)  \
-       cd gcc && \
-       $(MAKE) $(GCC_FLAGS_TO_PASS)  \
+       cd intl && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
                $(POSTSTAGE1_FLAGS_TO_PASS)  \
-                && $(STAMP) ../all-stage4-gcc
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-use"  && \
+       $(STAMP) ../all-stagefeedback-intl
+@endif intl-bootstrap
 
+maybe-configure-stagefeedback-ld:
+maybe-all-stagefeedback-ld:
 
-compare3: all-stage4-gcc
-       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
-       @r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       rm -f .bad_compare ; \
-       cd stage4-gcc; \
-       files=`find . -name "*$(objext)" -print` ; \
-       cd .. ; \
-       for file in $${files} ; do \
-         f1=$$r/stage3-gcc/$$file; f2=$$r/stage4-gcc/$$file; \
-         @do_compare@ > /dev/null 2>&1; \
-         test $$? -eq 1 && echo $$file differs >> .bad_compare || true; \
-       done ; \
-       if [ -f .bad_compare ]; then \
-         echo "Bootstrap comparison failure!"; \
-         cat .bad_compare; \
-         exit 1; \
+@if ld-bootstrap
+maybe-configure-stagefeedback-ld: configure-stagefeedback-ld
+configure-stagefeedback-ld:  maybe-all-stage1-ld 
+       $(MAKE) stagefeedback-start
+       @if [ -f stagefeedback-ld/Makefile ] ; then \
+         $(STAMP) configure-stagefeedback-ld ; \
+         exit 0; \
        else \
-         true; \
+         true ; \
        fi ; \
-       $(STAMP) compare3
-
-
-
-.PHONY: bootstrap4
-bootstrap4:
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS) stage4-bubble  compare3  all
-
-
-.PHONY: restage4 touch-stage4 distclean-stage4
-
-# Rules to wipe a stage and all the following ones, used for cleanstrap
-distclean-stage3:: distclean-stage4 
-distclean-stage4::
-       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
-       rm -rf configure-stage4-gcc all-stage4-gcc stage4-gcc compare3 
-
-# Rules to renew the timestamp on a stage and all the following ones
-touch-stage3:: touch-stage4 
-touch-stage4::
-       @[ -f configure-stage4-gcc ] && \
-         echo '$(STAMP) configure-stage4-gcc' && \
-         $(STAMP) configure-stage4-gcc; \
-       [ -f all-stage4-gcc ] && \
-         echo '$(STAMP) all-stage4-gcc' && \
-         $(STAMP) all-stage4-gcc; \
-       :
-
-# After building a stage, touch the following ones
-restage3:: touch-stage4 
-restage4::
-       rm -rf all-stage4-gcc compare3 
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS) compare3 
-
-
-
-
-.PHONY: stageprofile-start stageprofile-end
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage feedback in ld ; \
+       cd ld || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/ld"; \
+           libsrcdir="$$s/ld";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/ld"; \
+           libsrcdir="$$s/ld";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stagefeedback-ld
 
-stageprofile-start::
-       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
-       echo stageprofile > stage_current ; \
-       echo stageprofile > stage_last ; \
-       [ -d stageprofile-gcc ] || mkdir stageprofile-gcc; \
-       set stageprofile-gcc gcc ; @CREATE_LINK_TO_DIR@  ; \
-       set stage1-gcc prev-gcc ; @CREATE_LINK_TO_DIR@ 
+maybe-all-stagefeedback-ld: all-stagefeedback-ld
+all-stagefeedback-ld: configure-stagefeedback-ld
+       $(MAKE) stagefeedback-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd ld && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-use"  && \
+       $(STAMP) ../all-stagefeedback-ld
+@endif ld-bootstrap
 
-stageprofile-end::
-       rm -f stage_current ; \
-       set gcc stageprofile-gcc ; @UNDO_LINK_TO_DIR@  ; \
-       set prev-gcc stage1-gcc ; @UNDO_LINK_TO_DIR@ 
+maybe-configure-stagefeedback-libcpp:
+maybe-all-stagefeedback-libcpp:
 
-# Bubble a bugfix through all the stages up to stage profile.  They
-# are remade, but not reconfigured.  The next stage (if any) will not
-# be reconfigured as well.
-.PHONY: stageprofile-bubble
-stageprofile-bubble:: stage1-bubble
-       @if [ -f all-stageprofile-gcc ] ; then \
-         echo Remaking stage profile ; \
-         rm -f all-stageprofile-gcc ; \
+@if libcpp-bootstrap
+maybe-configure-stagefeedback-libcpp: configure-stagefeedback-libcpp
+configure-stagefeedback-libcpp:  maybe-all-stage1-libcpp 
+       $(MAKE) stagefeedback-start
+       @if [ -f stagefeedback-libcpp/Makefile ] ; then \
+         $(STAMP) configure-stagefeedback-libcpp ; \
+         exit 0; \
+       else \
+         true ; \
        fi ; \
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stageprofile-gcc
-
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage feedback in libcpp ; \
+       cd libcpp || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libcpp"; \
+           libsrcdir="$$s/libcpp";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libcpp"; \
+           libsrcdir="$$s/libcpp";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stagefeedback-libcpp
 
-stage1-bubble::
-       @if [ -f configure-stageprofile-gcc ] ; then \
-         $(STAMP) configure-stageprofile-gcc ; \
-       fi
+maybe-all-stagefeedback-libcpp: all-stagefeedback-libcpp
+all-stagefeedback-libcpp: configure-stagefeedback-libcpp
+       $(MAKE) stagefeedback-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd libcpp && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-use"  && \
+       $(STAMP) ../all-stagefeedback-libcpp
+@endif libcpp-bootstrap
 
+maybe-configure-stagefeedback-libbanshee:
+maybe-all-stagefeedback-libbanshee:
 
-configure-stageprofile-gcc:  all-stage1-gcc 
-       $(MAKE) stageprofile-start
-       @if [ -f stageprofile-gcc/Makefile ] ; then \
-         $(STAMP) configure-stageprofile-gcc ; \
+@if libbanshee-bootstrap
+maybe-configure-stagefeedback-libbanshee: configure-stagefeedback-libbanshee
+configure-stagefeedback-libbanshee:  maybe-all-stage1-libbanshee 
+       $(MAKE) stagefeedback-start
+       @if [ -f stagefeedback-libbanshee/Makefile ] ; then \
+         $(STAMP) configure-stagefeedback-libbanshee ; \
          exit 0; \
        else \
          true ; \
@@ -28687,103 +32174,93 @@ configure-stageprofile-gcc:  all-stage1-gcc
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
        $(STAGE_HOST_EXPORTS)  \
-       echo Configuring stage profile in gcc ; \
-       cd gcc || exit 1; \
+       echo Configuring stage feedback in libbanshee ; \
+       cd libbanshee || exit 1; \
        case $(srcdir) in \
          \.) \
            srcdiroption="--srcdir=."; \
            libsrcdir=".";; \
          /* | [A-Za-z]:[\\/]*) \
-           srcdiroption="--srcdir=$(srcdir)/gcc"; \
-           libsrcdir="$$s/gcc";; \
+           srcdiroption="--srcdir=$(srcdir)/libbanshee"; \
+           libsrcdir="$$s/libbanshee";; \
          *) \
-           srcdiroption="--srcdir=../$(srcdir)/gcc"; \
-           libsrcdir="$$s/gcc";; \
+           srcdiroption="--srcdir=../$(srcdir)/libbanshee"; \
+           libsrcdir="$$s/libbanshee";; \
        esac; \
        $(SHELL) $${libsrcdir}/configure \
          $(HOST_CONFIGARGS) $${srcdiroption} \
-         @stage2_werror_flag@ && \
-         $(STAMP) ../configure-stageprofile-gcc
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stagefeedback-libbanshee
 
-all-stageprofile-gcc: configure-stageprofile-gcc
-       $(MAKE) stageprofile-start
+maybe-all-stagefeedback-libbanshee: all-stagefeedback-libbanshee
+all-stagefeedback-libbanshee: configure-stagefeedback-libbanshee
+       $(MAKE) stagefeedback-start
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
        $(STAGE_HOST_EXPORTS)  \
-       cd gcc && \
-       $(MAKE) $(GCC_FLAGS_TO_PASS)  \
+       cd libbanshee && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
                $(POSTSTAGE1_FLAGS_TO_PASS)  \
-               CFLAGS="$(BOOT_CFLAGS) -fprofile-generate" && $(STAMP) ../all-stageprofile-gcc
-
-
-
-
-
-.PHONY: restageprofile touch-stageprofile distclean-stageprofile
-
-# Rules to wipe a stage and all the following ones, used for cleanstrap
-distclean-stage1:: distclean-stageprofile 
-distclean-stageprofile::
-       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
-       rm -rf configure-stageprofile-gcc all-stageprofile-gcc stageprofile-gcc 
-
-# Rules to renew the timestamp on a stage and all the following ones
-touch-stage1:: touch-stageprofile 
-touch-stageprofile::
-       @[ -f configure-stageprofile-gcc ] && \
-         echo '$(STAMP) configure-stageprofile-gcc' && \
-         $(STAMP) configure-stageprofile-gcc; \
-       [ -f all-stageprofile-gcc ] && \
-         echo '$(STAMP) all-stageprofile-gcc' && \
-         $(STAMP) all-stageprofile-gcc; \
-       :
-
-# After building a stage, touch the following ones
-restage1:: touch-stageprofile 
-restageprofile::
-       rm -rf all-stageprofile-gcc 
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS)  all-stageprofile-gcc 
-
-
-
-
-.PHONY: stagefeedback-start stagefeedback-end
-
-stagefeedback-start::
-       [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
-       echo stagefeedback > stage_current ; \
-       echo stagefeedback > stage_last ; \
-       [ -d stagefeedback-gcc ] || mkdir stagefeedback-gcc; \
-       set stagefeedback-gcc gcc ; @CREATE_LINK_TO_DIR@  ; \
-       set stage1-gcc prev-gcc ; @CREATE_LINK_TO_DIR@ 
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-use"  && \
+       $(STAMP) ../all-stagefeedback-libbanshee
+@endif libbanshee-bootstrap
 
-stagefeedback-end::
-       rm -f stage_current ; \
-       set gcc stagefeedback-gcc ; @UNDO_LINK_TO_DIR@  ; \
-       set prev-gcc stage1-gcc ; @UNDO_LINK_TO_DIR@ 
+maybe-configure-stagefeedback-libiberty:
+maybe-all-stagefeedback-libiberty:
 
-# Bubble a bugfix through all the stages up to stage feedback.  They
-# are remade, but not reconfigured.  The next stage (if any) will not
-# be reconfigured as well.
-.PHONY: stagefeedback-bubble
-stagefeedback-bubble:: stage1-bubble
-       @if [ -f all-stagefeedback-gcc ] ; then \
-         echo Remaking stage feedback ; \
-         rm -f all-stagefeedback-gcc ; \
+@if libiberty-bootstrap
+maybe-configure-stagefeedback-libiberty: configure-stagefeedback-libiberty
+configure-stagefeedback-libiberty:  maybe-all-stage1-libiberty 
+       $(MAKE) stagefeedback-start
+       @if [ -f stagefeedback-libiberty/Makefile ] ; then \
+         $(STAMP) configure-stagefeedback-libiberty ; \
+         exit 0; \
+       else \
+         true ; \
        fi ; \
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stagefeedback-gcc
-
+       r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       echo Configuring stage feedback in libiberty ; \
+       cd libiberty || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libiberty"; \
+           libsrcdir="$$s/libiberty";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libiberty"; \
+           libsrcdir="$$s/libiberty";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stagefeedback-libiberty
 
-stage1-bubble::
-       @if [ -f configure-stagefeedback-gcc ] ; then \
-         $(STAMP) configure-stagefeedback-gcc ; \
-       fi
+maybe-all-stagefeedback-libiberty: all-stagefeedback-libiberty
+all-stagefeedback-libiberty: configure-stagefeedback-libiberty
+       $(MAKE) stagefeedback-start
+       @r=`${PWD_COMMAND}`; export r; \
+       s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
+       $(STAGE_HOST_EXPORTS)  \
+       cd libiberty && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
+               $(POSTSTAGE1_FLAGS_TO_PASS)  \
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-use"  && \
+       $(STAMP) ../all-stagefeedback-libiberty
+@endif libiberty-bootstrap
 
+maybe-configure-stagefeedback-zlib:
+maybe-all-stagefeedback-zlib:
 
-configure-stagefeedback-gcc:  all-stage1-gcc 
+@if zlib-bootstrap
+maybe-configure-stagefeedback-zlib: configure-stagefeedback-zlib
+configure-stagefeedback-zlib:  maybe-all-stage1-zlib 
        $(MAKE) stagefeedback-start
-       @if [ -f stagefeedback-gcc/Makefile ] ; then \
-         $(STAMP) configure-stagefeedback-gcc ; \
+       @if [ -f stagefeedback-zlib/Makefile ] ; then \
+         $(STAMP) configure-stagefeedback-zlib ; \
          exit 0; \
        else \
          true ; \
@@ -28791,34 +32268,41 @@ configure-stagefeedback-gcc:  all-stage1-gcc
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
        $(STAGE_HOST_EXPORTS)  \
-       echo Configuring stage feedback in gcc ; \
-       cd gcc || exit 1; \
+       echo Configuring stage feedback in zlib ; \
+       cd zlib || exit 1; \
        case $(srcdir) in \
          \.) \
            srcdiroption="--srcdir=."; \
            libsrcdir=".";; \
          /* | [A-Za-z]:[\\/]*) \
-           srcdiroption="--srcdir=$(srcdir)/gcc"; \
-           libsrcdir="$$s/gcc";; \
+           srcdiroption="--srcdir=$(srcdir)/zlib"; \
+           libsrcdir="$$s/zlib";; \
          *) \
-           srcdiroption="--srcdir=../$(srcdir)/gcc"; \
-           libsrcdir="$$s/gcc";; \
+           srcdiroption="--srcdir=../$(srcdir)/zlib"; \
+           libsrcdir="$$s/zlib";; \
        esac; \
        $(SHELL) $${libsrcdir}/configure \
          $(HOST_CONFIGARGS) $${srcdiroption} \
-         @stage2_werror_flag@ && \
-         $(STAMP) ../configure-stagefeedback-gcc
+         @stage2_werror_flag@  && \
+         $(STAMP) ../configure-stagefeedback-zlib
 
-all-stagefeedback-gcc: configure-stagefeedback-gcc
+maybe-all-stagefeedback-zlib: all-stagefeedback-zlib
+all-stagefeedback-zlib: configure-stagefeedback-zlib
        $(MAKE) stagefeedback-start
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s;  \
        $(STAGE_HOST_EXPORTS)  \
-       cd gcc && \
-       $(MAKE) $(GCC_FLAGS_TO_PASS)  \
+       cd zlib && \
+       $(MAKE) $(FLAGS_TO_PASS)  \
                $(POSTSTAGE1_FLAGS_TO_PASS)  \
-               CFLAGS="$(BOOT_CFLAGS) -fprofile-use" && $(STAMP) ../all-stagefeedback-gcc
+               CFLAGS="$(BOOT_CFLAGS) -fprofile-use"  && \
+       $(STAMP) ../all-stagefeedback-zlib
+@endif zlib-bootstrap
+
 
+# FIXME: Will not need to be conditional when toplevel bootstrap is the
+# only possibility, but now it conflicts with no-bootstrap rules
+@if gcc-bootstrap
 
 
 
@@ -28829,26 +32313,32 @@ all-stagefeedback-gcc: configure-stagefeedback-gcc
 distclean-stage1:: distclean-stagefeedback 
 distclean-stagefeedback::
        [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
-       rm -rf configure-stagefeedback-gcc all-stagefeedback-gcc stagefeedback-gcc 
+       rm -rf configure-stagefeedback-* all-stagefeedback-* stagefeedback-* 
 
 # Rules to renew the timestamp on a stage and all the following ones
 touch-stage1:: touch-stagefeedback 
 touch-stagefeedback::
-       @[ -f configure-stagefeedback-gcc ] && \
-         echo '$(STAMP) configure-stagefeedback-gcc' && \
-         $(STAMP) configure-stagefeedback-gcc; \
-       [ -f all-stagefeedback-gcc ] && \
-         echo '$(STAMP) all-stagefeedback-gcc' && \
-         $(STAMP) all-stagefeedback-gcc; \
-       :
+       @case `echo configure-stagefeedback-*` in \
+         'configure-stagefeedback-*') ;; \
+         *) \
+           echo '$(STAMP)' configure-stagefeedback-* && \
+           $(STAMP) configure-stagefeedback-* ;; \
+       esac ; \
+       case `echo all-stagefeedback-*` in \
+         'all-stagefeedback-*') ;; \
+         *) \
+           echo '$(STAMP)' all-stagefeedback-* && \
+           $(STAMP) all-stagefeedback-* ;; \
+       esac
 
 # After building a stage, touch the following ones
 restage1:: touch-stagefeedback 
 restagefeedback::
-       rm -rf all-stagefeedback-gcc 
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS)  all-stagefeedback-gcc 
+       rm -rf all-stagefeedback-* 
+       $(MAKE) $(RECURSE_FLAGS_TO_PASS)  all-stagefeedback 
 
 
+@endif gcc-bootstrap
 
 
 
@@ -28859,7 +32349,10 @@ stagefeedback-start::
          { find . -type d | sort | sed 's,.*,$(SHELL) '"$$s"'/mkinstalldirs "../gcc/&",' | $(SHELL); } && \
          { find . -name '*.*da' | sed 's,.*,$(LN) -f "&" "../gcc/&",' | $(SHELL); }
 
-profiledbootstrap: all-prebootstrap configure-gcc
+# FIXME: Will not need to be conditional when toplevel bootstrap is the
+# only possibility, but now it conflicts with no-bootstrap rules
+@if gcc-bootstrap
+profiledbootstrap:
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
@@ -28877,7 +32370,6 @@ profiledbootstrap: all-prebootstrap configure-gcc
        $(HOST_EXPORTS) \
        echo "Building feedback based compiler"; \
        $(MAKE) stagefeedback-bubble stagefeedback-end
-
 @endif gcc-bootstrap
 
 # --------------------------------------
@@ -29011,8 +32503,6 @@ configure-stage3-gcc: maybe-configure-stage3-ld
 configure-stage4-gcc: maybe-configure-stage4-ld
 configure-stageprofile-gcc: maybe-configure-stageprofile-ld
 configure-stagefeedback-gcc: maybe-configure-stagefeedback-ld
-configure-gcc: maybe-configure-bison
-configure-gcc: maybe-configure-flex
 all-gcc: all-libiberty
 
 all-stage1-gcc: all-stage1-libiberty
@@ -29029,10 +32519,42 @@ all-stage3-gcc: maybe-all-stage3-intl
 all-stage4-gcc: maybe-all-stage4-intl
 all-stageprofile-gcc: maybe-all-stageprofile-intl
 all-stagefeedback-gcc: maybe-all-stagefeedback-intl
-all-gcc: maybe-all-texinfo
-all-gcc: maybe-all-bison
-all-gcc: maybe-all-byacc
-all-gcc: maybe-all-flex
+all-gcc: maybe-all-build-texinfo
+
+all-stage1-gcc: maybe-all-build-texinfo
+all-stage2-gcc: maybe-all-build-texinfo
+all-stage3-gcc: maybe-all-build-texinfo
+all-stage4-gcc: maybe-all-build-texinfo
+all-stageprofile-gcc: maybe-all-build-texinfo
+all-stagefeedback-gcc: maybe-all-build-texinfo
+all-prebootstrap: maybe-all-build-texinfo
+all-gcc: maybe-all-build-bison
+
+all-stage1-gcc: maybe-all-build-bison
+all-stage2-gcc: maybe-all-build-bison
+all-stage3-gcc: maybe-all-build-bison
+all-stage4-gcc: maybe-all-build-bison
+all-stageprofile-gcc: maybe-all-build-bison
+all-stagefeedback-gcc: maybe-all-build-bison
+all-prebootstrap: maybe-all-build-bison
+all-gcc: maybe-all-build-byacc
+
+all-stage1-gcc: maybe-all-build-byacc
+all-stage2-gcc: maybe-all-build-byacc
+all-stage3-gcc: maybe-all-build-byacc
+all-stage4-gcc: maybe-all-build-byacc
+all-stageprofile-gcc: maybe-all-build-byacc
+all-stagefeedback-gcc: maybe-all-build-byacc
+all-prebootstrap: maybe-all-build-byacc
+all-gcc: maybe-all-build-flex
+
+all-stage1-gcc: maybe-all-build-flex
+all-stage2-gcc: maybe-all-build-flex
+all-stage3-gcc: maybe-all-build-flex
+all-stage4-gcc: maybe-all-build-flex
+all-stageprofile-gcc: maybe-all-build-flex
+all-stagefeedback-gcc: maybe-all-build-flex
+all-prebootstrap: maybe-all-build-flex
 all-gcc: maybe-all-binutils
 
 all-stage1-gcc: maybe-all-stage1-binutils
@@ -29082,6 +32604,14 @@ all-stage4-gcc: all-stage4-libcpp
 all-stageprofile-gcc: all-stageprofile-libcpp
 all-stagefeedback-gcc: all-stagefeedback-libcpp
 all-gcc: maybe-all-build-libiberty
+
+all-stage1-gcc: maybe-all-build-libiberty
+all-stage2-gcc: maybe-all-build-libiberty
+all-stage3-gcc: maybe-all-build-libiberty
+all-stage4-gcc: maybe-all-build-libiberty
+all-stageprofile-gcc: maybe-all-build-libiberty
+all-stagefeedback-gcc: maybe-all-build-libiberty
+all-prebootstrap: maybe-all-build-libiberty
 configure-libcpp: configure-libiberty
 
 configure-stage1-libcpp: configure-stage1-libiberty
@@ -29122,8 +32652,8 @@ all-gdb: maybe-all-libiberty
 all-gdb: maybe-all-opcodes
 all-gdb: maybe-all-bfd
 all-gdb: maybe-all-readline
-all-gdb: maybe-all-bison
-all-gdb: maybe-all-byacc
+all-gdb: maybe-all-build-bison
+all-gdb: maybe-all-build-byacc
 all-gdb: maybe-all-sim
 install-gdb: maybe-install-tcl
 install-gdb: maybe-install-tk
@@ -29182,9 +32712,33 @@ all-stage3-binutils: maybe-all-stage3-bfd
 all-stage4-binutils: maybe-all-stage4-bfd
 all-stageprofile-binutils: maybe-all-stageprofile-bfd
 all-stagefeedback-binutils: maybe-all-stagefeedback-bfd
-all-binutils: maybe-all-flex
-all-binutils: maybe-all-bison
-all-binutils: maybe-all-byacc
+all-binutils: maybe-all-build-flex
+
+all-stage1-binutils: maybe-all-build-flex
+all-stage2-binutils: maybe-all-build-flex
+all-stage3-binutils: maybe-all-build-flex
+all-stage4-binutils: maybe-all-build-flex
+all-stageprofile-binutils: maybe-all-build-flex
+all-stagefeedback-binutils: maybe-all-build-flex
+all-prebootstrap: maybe-all-build-flex
+all-binutils: maybe-all-build-bison
+
+all-stage1-binutils: maybe-all-build-bison
+all-stage2-binutils: maybe-all-build-bison
+all-stage3-binutils: maybe-all-build-bison
+all-stage4-binutils: maybe-all-build-bison
+all-stageprofile-binutils: maybe-all-build-bison
+all-stagefeedback-binutils: maybe-all-build-bison
+all-prebootstrap: maybe-all-build-bison
+all-binutils: maybe-all-build-byacc
+
+all-stage1-binutils: maybe-all-build-byacc
+all-stage2-binutils: maybe-all-build-byacc
+all-stage3-binutils: maybe-all-build-byacc
+all-stage4-binutils: maybe-all-build-byacc
+all-stageprofile-binutils: maybe-all-build-byacc
+all-stagefeedback-binutils: maybe-all-build-byacc
+all-prebootstrap: maybe-all-build-byacc
 all-binutils: maybe-all-intl
 
 all-stage1-binutils: maybe-all-stage1-intl
@@ -29255,9 +32809,33 @@ all-stage3-ld: maybe-all-stage3-opcodes
 all-stage4-ld: maybe-all-stage4-opcodes
 all-stageprofile-ld: maybe-all-stageprofile-opcodes
 all-stagefeedback-ld: maybe-all-stagefeedback-opcodes
-all-ld: maybe-all-bison
-all-ld: maybe-all-byacc
-all-ld: maybe-all-flex
+all-ld: maybe-all-build-bison
+
+all-stage1-ld: maybe-all-build-bison
+all-stage2-ld: maybe-all-build-bison
+all-stage3-ld: maybe-all-build-bison
+all-stage4-ld: maybe-all-build-bison
+all-stageprofile-ld: maybe-all-build-bison
+all-stagefeedback-ld: maybe-all-build-bison
+all-prebootstrap: maybe-all-build-bison
+all-ld: maybe-all-build-byacc
+
+all-stage1-ld: maybe-all-build-byacc
+all-stage2-ld: maybe-all-build-byacc
+all-stage3-ld: maybe-all-build-byacc
+all-stage4-ld: maybe-all-build-byacc
+all-stageprofile-ld: maybe-all-build-byacc
+all-stagefeedback-ld: maybe-all-build-byacc
+all-prebootstrap: maybe-all-build-byacc
+all-ld: maybe-all-build-flex
+
+all-stage1-ld: maybe-all-build-flex
+all-stage2-ld: maybe-all-build-flex
+all-stage3-ld: maybe-all-build-flex
+all-stage4-ld: maybe-all-build-flex
+all-stageprofile-ld: maybe-all-build-flex
+all-stagefeedback-ld: maybe-all-build-flex
+all-prebootstrap: maybe-all-build-flex
 all-ld: maybe-all-intl
 
 all-stage1-ld: maybe-all-stage1-intl
@@ -29309,41 +32887,41 @@ all-sim: maybe-all-opcodes
 all-sim: maybe-all-readline
 all-sim: maybe-configure-gdb
 all-fastjar: maybe-all-zlib
-all-fastjar: maybe-all-texinfo
+all-fastjar: maybe-all-build-texinfo
 all-fastjar: maybe-all-libiberty
 all-autoconf: maybe-all-m4
-all-autoconf: maybe-all-texinfo
+all-autoconf: maybe-all-build-texinfo
 all-automake: maybe-all-m4
-all-automake: maybe-all-texinfo
+all-automake: maybe-all-build-texinfo
 all-automake: maybe-all-autoconf
 all-bison: maybe-all-intl
-all-bison: maybe-all-texinfo
+all-bison: maybe-all-build-texinfo
 all-diff: maybe-all-intl
-all-diff: maybe-all-texinfo
+all-diff: maybe-all-build-texinfo
 all-fileutils: maybe-all-intl
-all-fileutils: maybe-all-texinfo
-all-flex: maybe-all-bison
-all-flex: maybe-all-byacc
+all-fileutils: maybe-all-build-texinfo
+all-flex: maybe-all-build-bison
+all-flex: maybe-all-build-byacc
 all-flex: maybe-all-intl
 all-flex: maybe-all-m4
-all-flex: maybe-all-texinfo
+all-flex: maybe-all-build-texinfo
 all-gzip: maybe-all-intl
 all-gzip: maybe-all-zlib
-all-gzip: maybe-all-texinfo
+all-gzip: maybe-all-build-texinfo
 all-hello: maybe-all-intl
-all-hello: maybe-all-texinfo
+all-hello: maybe-all-build-texinfo
 all-m4: maybe-all-intl
-all-m4: maybe-all-texinfo
+all-m4: maybe-all-build-texinfo
 all-make: maybe-all-intl
-all-make: maybe-all-texinfo
-all-patch: maybe-all-texinfo
-all-make: maybe-all-texinfo
+all-make: maybe-all-build-texinfo
+all-patch: maybe-all-build-texinfo
+all-make: maybe-all-build-texinfo
 all-prms: maybe-all-libiberty
-all-recode: maybe-all-texinfo
-all-sed: maybe-all-texinfo
+all-recode: maybe-all-build-texinfo
+all-sed: maybe-all-build-texinfo
 all-send-pr: maybe-all-prms
-all-tar: maybe-all-texinfo
-all-uudecode: maybe-all-texinfo
+all-tar: maybe-all-build-texinfo
+all-uudecode: maybe-all-build-texinfo
 configure-target-boehm-gc: maybe-configure-target-qthreads
 configure-target-fastjar: maybe-configure-target-zlib
 all-target-fastjar: maybe-all-target-zlib
@@ -29364,16 +32942,8 @@ all-target-winsup: maybe-all-target-libiberty
 all-target-winsup: maybe-all-target-libtermcap
 
 
-# Now build the prebootstrap dependencies.
-
-all-prebootstrap: maybe-all-bison
-all-prebootstrap: maybe-all-byacc
-all-prebootstrap: maybe-all-flex
-all-prebootstrap: maybe-all-texinfo
-
-# Unless toplevel bootstrap is going, bootstrapped packages are actually
-# prebootstrapped, with the exception of gcc.  Another wart that will go
-# away with toplevel bootstrap.
+# Non-toplevel bootstrap rules must depend on several packages, to be built
+# before gcc.  Another wart that will go away, hopefully soon.
 @if gcc-no-bootstrap
 
 all-prebootstrap: maybe-all-bfd
index dee4cee..27ab1fb 100644 (file)
@@ -243,43 +243,40 @@ CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
 
 CXX_FOR_BUILD = $(CXX)
 
-# Path to the build directory for a Canadian cross, empty otherwise.
-BUILD_DIR_PREFIX = @BUILD_DIR_PREFIX@
-
 # Special variables passed down in EXTRA_GCC_FLAGS.  They are defined
 # here so that they can be overridden by Makefile fragments.
 BUILD_PREFIX = @BUILD_PREFIX@
 BUILD_PREFIX_1 = @BUILD_PREFIX_1@
 
 CONFIGURED_BISON = @CONFIGURED_BISON@
-BISON = `if [ -f $$r/$(BUILD_DIR_PREFIX)/bison/bison ] ; then \
-           echo $$r/$(BUILD_DIR_PREFIX)/bison/bison -L $$s/bison/ ; \
+BISON = `if [ -f $$r/$(BUILD_SUBDIR)/bison/tests/bison ] ; then \
+           echo $$r/$(BUILD_SUBDIR)/bison/tests/bison ; \
         else \
            echo ${CONFIGURED_BISON} ; \
         fi`
 
 CONFIGURED_YACC = @CONFIGURED_YACC@
-YACC = `if [ -f $$s/$(BUILD_DIR_PREFIX)/bison/bison ] ; then \
-           echo $$r/$(BUILD_DIR_PREFIX)/bison/bison -y -L $$s/bison/ ; \
-       elif [ -f $$s/$(BUILD_DIR_PREFIX)/byacc/byacc ] ; then \
-           echo $$r/$(BUILD_DIR_PREFIX)/byacc/byacc ; \
+YACC = `if [ -f $$r/$(BUILD_SUBDIR)/bison/tests/bison ] ; then \
+           echo $$r/$(BUILD_SUBDIR)/bison/tests/bison -y ; \
+       elif [ -f $$r/$(BUILD_SUBDIR)/byacc/byacc ] ; then \
+           echo $$r/$(BUILD_SUBDIR)/byacc/byacc ; \
        else \
            echo ${CONFIGURED_YACC} ; \
        fi`
 
 CONFIGURED_FLEX = @CONFIGURED_FLEX@
-FLEX = `if [ -f $$r/$(BUILD_DIR_PREFIX)/flex/flex ] ; \
-       then echo $$r/$(BUILD_DIR_PREFIX)/flex/flex ; \
+FLEX = `if [ -f $$r/$(BUILD_SUBDIR)/flex/flex ] ; \
+       then echo $$r/$(BUILD_SUBDIR)/flex/flex ; \
        else echo ${CONFIGURED_FLEX} ; fi`
 
 CONFIGURED_LEX = @CONFIGURED_LEX@
-LEX = `if [ -f $$r/$(BUILD_DIR_PREFIX)/flex/flex ] ; \
-       then echo $$r/$(BUILD_DIR_PREFIX)/flex/flex ; \
+LEX = `if [ -f $$r/$(BUILD_SUBDIR)/flex/flex ] ; \
+       then echo $$r/$(BUILD_SUBDIR)/flex/flex ; \
        else echo ${CONFIGURED_LEX} ; fi`
 
 CONFIGURED_M4 = @CONFIGURED_M4@
-M4 = `if [ -f $$r/$(BUILD_DIR_PREFIX)/m4/m4 ] ; \
-       then echo $$r/$(BUILD_DIR_PREFIX)/m4/m4 ; \
+M4 = `if [ -f $$r/$(BUILD_SUBDIR)/m4/m4 ] ; \
+       then echo $$r/$(BUILD_SUBDIR)/m4/m4 ; \
        else echo ${CONFIGURED_M4} ; fi`
 
 # For an installed makeinfo, we require it to be from texinfo 4.2 or
@@ -287,8 +284,8 @@ M4 = `if [ -f $$r/$(BUILD_DIR_PREFIX)/m4/m4 ] ; \
 # makeinfo even if only the Makefile is there, because Texinfo builds its
 # manual when made, and it requires its own version.
 CONFIGURED_MAKEINFO = @CONFIGURED_MAKEINFO@
-MAKEINFO = `if [ -f $$r/$(BUILD_DIR_PREFIX)/texinfo/makeinfo/Makefile ] ; \
-       then echo $$r/$(BUILD_DIR_PREFIX)/texinfo/makeinfo/makeinfo ; \
+MAKEINFO = `if [ -f $$r/$(BUILD_SUBDIR)/texinfo/makeinfo/Makefile ] ; \
+       then echo $$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo ; \
        else if (${CONFIGURED_MAKEINFO} --version \
          | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[2-9]|[5-9])') >/dev/null 2>&1; \
         then echo ${CONFIGURED_MAKEINFO}; else echo $$s/missing makeinfo; fi; fi`
@@ -603,7 +600,7 @@ configure-target: [+
 
 # The target built for a native non-bootstrap build.
 .PHONY: all
-all: unstage all-build all-host all-target stage
+all: unstage all-host all-target stage
 
 .PHONY: all-build
 all-build: [+
@@ -864,12 +861,14 @@ configure-build-[+module+]:
 .PHONY: all-build-[+module+] maybe-all-build-[+module+]
 maybe-all-build-[+module+]:
 @if build-[+module+]
+TARGET-build-[+module+]=[+ IF target +][+target+][+ ELSE +]all[+ ENDIF target +]
 maybe-all-build-[+module+]: all-build-[+module+]
 all-build-[+module+]: configure-build-[+module+]
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(BUILD_EXPORTS) \
-       (cd $(BUILD_SUBDIR)/[+module+] && $(MAKE) [+extra_make_flags+] all)
+       (cd $(BUILD_SUBDIR)/[+module+] && \
+         $(MAKE) [+extra_make_flags+] $(TARGET-build-[+module+]))
 @endif build-[+module+]
 [+ ENDFOR build_modules +]
 
@@ -882,7 +881,8 @@ maybe-configure-[+module+]:
 @if [+module+]
 maybe-configure-[+module+]: configure-[+module+]
 configure-[+module+]:
-       @test ! -f [+module+]/Makefile || exit 0; \
+       @[+ IF bootstrap +]test -f stage_last && exit 0; \
+       [+ ENDIF bootstrap +]test ! -f [+module+]/Makefile || exit 0; \
        [ -d [+module+] ] || mkdir [+module+]; \
        r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
@@ -910,7 +910,8 @@ maybe-all-[+module+]:
 @if [+module+]
 maybe-all-[+module+]: all-[+module+]
 all-[+module+]: configure-[+module+]
-       @r=`${PWD_COMMAND}`; export r; \
+       @[+ IF bootstrap +]test -f stage_last && exit 0; \
+       [+ ENDIF bootstrap +]r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
@@ -937,10 +938,8 @@ check-[+module+]:
          s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
          $(SET_LIB_PATH) \
          $(HOST_EXPORTS) \
-         (cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+ 
-           IF with_x 
-             +] $(X11_FLAGS_TO_PASS)[+ 
-           ENDIF with_x +] [+extra_make_flags+] check); \
+         (cd [+module+] && $(MAKE) $(FLAGS_TO_PASS) [+ 
+           extra_make_flags+] check); \
        fi
 [+ ELSE check +]
 check-[+module+]:
@@ -949,9 +948,7 @@ check-[+module+]:
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
        (cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+ 
-         IF with_x 
-           +] $(X11_FLAGS_TO_PASS)[+ 
-         ENDIF with_x +] [+extra_make_flags+] check)
+         extra_make_flags+] check)
 [+ ENDIF no_check +]
 @endif [+module+]
 
@@ -968,9 +965,7 @@ install-[+module+]: installdirs
        $(SET_LIB_PATH) \
        $(HOST_EXPORTS) \
        (cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+ 
-         IF with_x 
-           +] $(X11_FLAGS_TO_PASS)[+ 
-         ENDIF with_x +] [+extra_make_flags+] install)
+         extra_make_flags+] install)
 [+ ENDIF no_install +]
 @endif [+module+]
 
@@ -1080,6 +1075,7 @@ ENDIF raw_cxx +]
 .PHONY: all-target-[+module+] maybe-all-target-[+module+]
 maybe-all-target-[+module+]:
 @if target-[+module+]
+TARGET-target-[+module+]=[+ IF target +][+target+][+ ELSE +]all[+ ENDIF target +]
 maybe-all-target-[+module+]: all-target-[+module+]
 all-target-[+module+]: configure-target-[+module+]
        @r=`${PWD_COMMAND}`; export r; \
@@ -1095,7 +1091,7 @@ ENDIF raw_cxx +]
            IF raw_cxx 
          +] 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' [+ 
            ENDIF raw_cxx 
-         +] [+extra_make_flags+] all)
+         +] [+extra_make_flags+] $(TARGET-target-[+module+]))
 @endif target-[+module+]
 
 .PHONY: check-target-[+module+] maybe-check-target-[+module+]
@@ -1249,7 +1245,7 @@ profiledbootstrap: all-prebootstrap configure-gcc
        $(MAKE) $(RECURSE_FLAGS_TO_PASS) all
 
 .PHONY: cross
-cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
+cross: all-build all-gas all-ld
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
@@ -1322,7 +1318,6 @@ stage:
        @$(MAKE) `cat stage_current`-end
 @endif gcc-bootstrap
 
-@if gcc-bootstrap
 # We name the build directories for the various stages "stage1-gcc",
 # "stage2-gcc","stage3-gcc", etc.
 
@@ -1360,12 +1355,6 @@ STAGE1_LANGUAGES=@stage1_languages@
 # We only want to compare .o files, so set this!
 objext = .o
 
-# Real targets act phony if they depend on phony targets; this hack
-# prevents gratuitous rebuilding of stage 1.
-prebootstrap:
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-prebootstrap
-       $(STAMP) prebootstrap
-
 # Flags to pass to stage2 and later makes.
 BOOT_CFLAGS= -g -O2
 POSTSTAGE1_FLAGS_TO_PASS = \
@@ -1389,39 +1378,46 @@ POSTSTAGE1_FLAGS_TO_PASS = \
 stage[+id+]-start::
        [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
        echo stage[+id+] > stage_current ; \
-       echo stage[+id+] > stage_last ; \
-       [ -d stage[+id+]-gcc ] || mkdir stage[+id+]-gcc; \
-       set stage[+id+]-gcc gcc ; @CREATE_LINK_TO_DIR@ [+ IF prev +] ; \
-       set stage[+prev+]-gcc prev-gcc ; @CREATE_LINK_TO_DIR@ [+ ENDIF prev +]
+       echo stage[+id+] > stage_last[+ FOR host_modules +][+ IF bootstrap +]
+@if [+ module +]
+       [ -d stage[+id+]-[+module+] ] || mkdir stage[+id+]-[+module+]; \
+       set stage[+id+]-[+module+] [+module+] ; @CREATE_LINK_TO_DIR@ [+ IF prev +] ; \
+       set stage[+prev+]-[+module+] prev-[+module+] ; @CREATE_LINK_TO_DIR@ [+ ENDIF prev +]
+@endif [+ module +][+ ENDIF bootstrap +][+ ENDFOR host_modules +]
 
 stage[+id+]-end::
-       rm -f stage_current ; \
-       set gcc stage[+id+]-gcc ; @UNDO_LINK_TO_DIR@ [+ IF prev +] ; \
-       set prev-gcc stage[+prev+]-gcc ; @UNDO_LINK_TO_DIR@ [+ ENDIF prev +]
+       rm -f stage_current[+ FOR host_modules +][+ IF bootstrap +]
+@if [+ module +]
+       set [+module+] stage[+id+]-[+module+] ; @UNDO_LINK_TO_DIR@ [+ IF prev +] ; \
+       set prev-[+module+] stage[+prev+]-[+module+] ; @UNDO_LINK_TO_DIR@ [+ ENDIF prev +]
+@endif [+ module +][+ ENDIF bootstrap +][+ ENDFOR host_modules +]
 
 # Bubble a bugfix through all the stages up to stage [+id+].  They
 # are remade, but not reconfigured.  The next stage (if any) will not
 # be reconfigured as well.
 .PHONY: stage[+id+]-bubble
 stage[+id+]-bubble:: [+ IF prev +]stage[+prev+]-bubble[+ ENDIF +]
-       @if [ -f all-stage[+id+]-gcc ] ; then \
-         echo Remaking stage [+id+] ; \
-         rm -f all-stage[+id+]-gcc ; \
-       fi ; \
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stage[+id+]-gcc
-
-[+ IF prev +]
-stage[+prev+]-bubble::
-       @if [ -f configure-stage[+id+]-gcc ] ; then \
-         $(STAMP) configure-stage[+id+]-gcc ; \
-       fi
-[+ ENDIF prev +]
-
-configure-stage[+id+]-gcc: [+ IF prev +] all-stage[+prev+]-gcc [+
-         ELSE +] prebootstrap [+ ENDIF prev +]
+       @case `echo all-stage[+id+]-*` in \
+         'all-stage[+id+]-*') ;; \
+         *) echo Remaking stage [+id+] ; rm -f all-stage[+id+]-* ;; \
+       esac ; \
+       $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stage[+id+]
+
+.PHONY: all-stage[+id+]
+all-stage[+id+]: [+ FOR host_modules +][+ IF bootstrap +]\
+  maybe-all-stage[+id+]-[+module+][+
+ENDIF bootstrap+] [+ ENDFOR host_modules +]
+
+[+ FOR host_modules +][+ IF bootstrap +]
+maybe-configure-stage[+id+]-[+module+]:
+maybe-all-stage[+id+]-[+module+]:
+
+@if [+module+]-bootstrap
+maybe-configure-stage[+id+]-[+module+]: configure-stage[+id+]-[+module+]
+configure-stage[+id+]-[+module+]: [+ IF prev +] maybe-all-stage[+prev+]-[+module+] [+ ENDIF prev +]
        $(MAKE) stage[+id+]-start
-       @if [ -f stage[+id+]-gcc/Makefile ] ; then \
-         $(STAMP) configure-stage[+id+]-gcc ; \
+       @if [ -f stage[+id+]-[+module+]/Makefile ] ; then \
+         $(STAMP) configure-stage[+id+]-[+module+] ; \
          exit 0; \
        else \
          true ; \
@@ -1430,35 +1426,42 @@ configure-stage[+id+]-gcc: [+ IF prev +] all-stage[+prev+]-gcc [+
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; [+ IF prev +] \
        $(STAGE_HOST_EXPORTS) [+ ELSE prev +] \
        $(HOST_EXPORTS) [+ ENDIF prev +] \
-       echo Configuring stage [+id+] in gcc ; \
-       cd gcc || exit 1; \
+       echo Configuring stage [+id+] in [+module+] ; \
+       cd [+module+] || exit 1; \
        case $(srcdir) in \
          \.) \
            srcdiroption="--srcdir=."; \
            libsrcdir=".";; \
          /* | [A-Za-z]:[\\/]*) \
-           srcdiroption="--srcdir=$(srcdir)/gcc"; \
-           libsrcdir="$$s/gcc";; \
+           srcdiroption="--srcdir=$(srcdir)/[+module+]"; \
+           libsrcdir="$$s/[+module+]";; \
          *) \
-           srcdiroption="--srcdir=../$(srcdir)/gcc"; \
-           libsrcdir="$$s/gcc";; \
+           srcdiroption="--srcdir=../$(srcdir)/[+module+]"; \
+           libsrcdir="$$s/[+module+]";; \
        esac; \
        $(SHELL) $${libsrcdir}/configure \
          $(HOST_CONFIGARGS) $${srcdiroption} \
-         [+extra_configure_flags+] && \
-         $(STAMP) ../configure-stage[+id+]-gcc
+         [+stage_configure_flags+] [+extra_configure_flags+] && \
+         $(STAMP) ../configure-stage[+id+]-[+module+]
 
-all-stage[+id+]-gcc: configure-stage[+id+]-gcc
+maybe-all-stage[+id+]-[+module+]: all-stage[+id+]-[+module+]
+all-stage[+id+]-[+module+]: configure-stage[+id+]-[+module+]
        $(MAKE) stage[+id+]-start
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; [+ IF prev +] \
        $(STAGE_HOST_EXPORTS) [+ ELSE prev +] \
        $(HOST_EXPORTS) [+ ENDIF prev +] \
-       cd gcc && \
-       $(MAKE) $(GCC_FLAGS_TO_PASS) [+ IF prev +] \
+       cd [+module+] && \
+       $(MAKE) $(FLAGS_TO_PASS) [+ IF prev +] \
                $(POSTSTAGE1_FLAGS_TO_PASS) [+ ENDIF prev +] \
-               [+extra_make_flags+] && $(STAMP) ../all-stage[+id+]-gcc
+               [+stage_make_flags+] [+extra_make_flags+] && \
+       $(STAMP) ../all-stage[+id+]-[+module+]
+@endif [+module+]-bootstrap
+[+ ENDIF bootstrap +][+ ENDFOR host_modules +]
 
+# FIXME: Will not need to be conditional when toplevel bootstrap is the
+# only possibility, but now it conflicts with no-bootstrap rules
+@if gcc-bootstrap
 [+ IF compare-target +]
 [+compare-target+]: all-stage[+id+]-gcc
        [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
@@ -1485,8 +1488,7 @@ all-stage[+id+]-gcc: configure-stage[+id+]-gcc
 
 [+ IF bootstrap-target +]
 .PHONY: [+bootstrap-target+]
-[+bootstrap-target+]:
-       $(MAKE) $(RECURSE_FLAGS_TO_PASS) stage[+id+]-bubble [+
+[+bootstrap-target+]: stage[+id+]-bubble [+
          IF compare-target +] [+compare-target+] [+
          ENDIF compare-target +] all
 [+ ENDIF bootstrap-target +]
@@ -1497,33 +1499,39 @@ all-stage[+id+]-gcc: configure-stage[+id+]-gcc
 [+ IF prev +]distclean-stage[+prev+]:: distclean-stage[+id+] [+ ENDIF prev +]
 distclean-stage[+id+]::
        [ -f stage_current ] && $(MAKE) `cat stage_current`-end || :
-       rm -rf configure-stage[+id+]-gcc all-stage[+id+]-gcc stage[+id+]-gcc [+
+       rm -rf configure-stage[+id+]-* all-stage[+id+]-* stage[+id+]-* [+
          IF compare-target +][+compare-target+] [+ ENDIF compare-target +]
 
 # Rules to renew the timestamp on a stage and all the following ones
 [+ IF prev +]touch-stage[+prev+]:: touch-stage[+id+] [+ ENDIF prev +]
 touch-stage[+id+]::
-       @[ -f configure-stage[+id+]-gcc ] && \
-         echo '$(STAMP) configure-stage[+id+]-gcc' && \
-         $(STAMP) configure-stage[+id+]-gcc; \
-       [ -f all-stage[+id+]-gcc ] && \
-         echo '$(STAMP) all-stage[+id+]-gcc' && \
-         $(STAMP) all-stage[+id+]-gcc; \
-       :
+       @case `echo configure-stage[+id+]-*` in \
+         'configure-stage[+id+]-*') ;; \
+         *) \
+           echo '$(STAMP)' configure-stage[+id+]-* && \
+           $(STAMP) configure-stage[+id+]-* ;; \
+       esac ; \
+       case `echo all-stage[+id+]-*` in \
+         'all-stage[+id+]-*') ;; \
+         *) \
+           echo '$(STAMP)' all-stage[+id+]-* && \
+           $(STAMP) all-stage[+id+]-* ;; \
+       esac
 
 # After building a stage, touch the following ones
 [+ IF prev +]restage[+prev+]:: touch-stage[+id+] [+ ENDIF prev +]
 restage[+id+]::
-       rm -rf all-stage[+id+]-gcc [+
+       rm -rf all-stage[+id+]-* [+
          IF compare-target +][+compare-target+] [+ ENDIF compare-target +]
        $(MAKE) $(RECURSE_FLAGS_TO_PASS) [+
          IF compare-target +][+compare-target+] [+
-         ELSE +] all-stage[+id+]-gcc [+ ENDIF compare-target +]
+         ELSE +] all-stage[+id+] [+ ENDIF compare-target +]
 
 [+ IF cleanstrap-target +]
 .PHONY: [+cleanstrap-target+]
 [+cleanstrap-target+]: distclean-stage1 [+bootstrap-target+]
 [+ ENDIF cleanstrap-target +]
+@endif gcc-bootstrap
 
 [+ ENDFOR bootstrap-stage +]
 
@@ -1534,7 +1542,10 @@ stagefeedback-start::
          { find . -type d | sort | sed 's,.*,$(SHELL) '"$$s"'/mkinstalldirs "../gcc/&",' | $(SHELL); } && \
          { find . -name '*.*da' | sed 's,.*,$(LN) -f "&" "../gcc/&",' | $(SHELL); }
 
-profiledbootstrap: all-prebootstrap configure-gcc
+# FIXME: Will not need to be conditional when toplevel bootstrap is the
+# only possibility, but now it conflicts with no-bootstrap rules
+@if gcc-bootstrap
+profiledbootstrap:
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
        $(SET_LIB_PATH) \
@@ -1552,7 +1563,6 @@ profiledbootstrap: all-prebootstrap configure-gcc
        $(HOST_EXPORTS) \
        echo "Building feedback based compiler"; \
        $(MAKE) stagefeedback-bubble stagefeedback-end
-
 @endif gcc-bootstrap
 
 # --------------------------------------
@@ -1589,10 +1599,10 @@ configure-target-[+module+]: maybe-all-target-newlib maybe-all-target-libgloss
       )))
 
    ;; make-dep builds a dependency from the MODULE and ON AutoGen vars.
-   (define make-dep (lambda (module-kind)
+   (define make-dep (lambda (module-kind on-kind)
       (string-append
          (dep-target module-kind "module" #t) ": "
-         (dep-target module-kind "on" (exist? "hard")))))
+         (dep-target on-kind "on" (exist? "hard")))))
 
    ;; dep-subtarget extracts everything up to the first dash in the given
    ;; AutoGen variable, for example it extracts "all-" out of "all-gcc".
@@ -1620,23 +1630,21 @@ configure-target-[+module+]: maybe-all-target-newlib maybe-all-target-libgloss
    ;; or if the LHS module is not bootstrapped.  It returns "bootstrap" for
    ;; configure or build dependencies between bootstrapped modules; it returns
    ;; "prebootstrap" for configure or build dependencies of bootstrapped
-   ;; modules on a non-bootstrapped modules (e.g. gcc on bison).  All this
+   ;; modules on a build module (e.g. all-gcc on all-build-bison).  All this
    ;; is only necessary for host modules.
    (define dep-kind (lambda ()
-      (if (or (= (dep-subtarget "on") "install-")
-             (=* (dep-module "on") "build-")
-             (=* (dep-module "on") "target-"))
-          "normal"
+      (if (and (hash-ref boot-modules (dep-module "module"))
+              (=* (dep-module "on") "build-"))
+         "prebootstrap"
 
-          (if (hash-ref boot-modules (dep-module "module"))
-              (if (hash-ref boot-modules (dep-module "on"))
-                 "bootstrap"
-                 "prebootstrap")
-             "normal"))))
+         (if (or (= (dep-subtarget "on") "install-")
+                 (=* (dep-module "on") "target-")
+                 (not (hash-ref boot-modules (dep-module "module"))))
+              "normal"
+             "bootstrap"))))
 
    ;; We now build the hash table that is used by dep-kind.
    (define boot-modules (make-hash-table 113))
-   (define preboot-modules (make-hash-table 37))
 +]
 
 [+ FOR host_modules +][+
@@ -1649,27 +1657,22 @@ configure-target-[+module+]: maybe-all-target-newlib maybe-all-target-libgloss
 # to check for bootstrap/prebootstrap dependencies.  To resolve
 # prebootstrap dependencies, prebootstrap modules are gathered in
 # a hash table.
-[+ FOR dependencies +][+ (make-dep "") +]
-[+ CASE (dep-kind) +][+
-   == "prebootstrap"
-     +][+ (hash-create-handle! preboot-modules (dep-module "on") #t) "" +][+
-   == "bootstrap"
+[+ FOR dependencies +][+ (make-dep "" "") +]
+[+ CASE (dep-kind) +]
+[+ == "prebootstrap"
      +][+ FOR bootstrap_stage +]
-[+ (make-dep (dep-stage)) +][+
+[+ (make-dep (dep-stage) "") +][+
+       ENDFOR bootstrap_stage +]
+all-prebootstrap: [+ (dep-target "" "on" (exist? "hard")) +]
+[+ == "bootstrap"
+     +][+ FOR bootstrap_stage +]
+[+ (make-dep (dep-stage) (dep-stage)) +][+
        ENDFOR bootstrap_stage +]
 [+ ESAC +][+
 ENDFOR dependencies +]
 
-# Now build the prebootstrap dependencies.
-[+ FOR host_modules +][+
-   IF (hash-ref preboot-modules (get "module")) +]
-all-prebootstrap: maybe-all-[+module+][+
-   ENDIF +][+
-ENDFOR host_modules +]
-
-# Unless toplevel bootstrap is going, bootstrapped packages are actually
-# prebootstrapped, with the exception of gcc.  Another wart that will go
-# away with toplevel bootstrap.
+# Non-toplevel bootstrap rules must depend on several packages, to be built
+# before gcc.  Another wart that will go away, hopefully soon.
 @if gcc-no-bootstrap
 [+ FOR host_modules +][+
    IF (and (not (= (get "module") "gcc"))
index 8c67b35..3cc6d2b 100755 (executable)
--- a/configure
+++ b/configure
@@ -939,9 +939,11 @@ target_tools="target-examples target-groff target-gperf target-rda"
 configdirs=`echo ${host_libs} ${host_tools}`
 target_configdirs=`echo ${target_libraries} ${target_tools}`
 
-# Only make build modules if build != host.
+# Only make build libraries if build != host.
 if test ${host_alias} != ${build_alias} ; then
   build_configdirs=`echo ${build_libs} ${build_tools}`
+else
+  build_configdirs=`echo ${build_tools}`
 fi
 
 ################################################################################
@@ -1769,7 +1771,6 @@ if test "${build}" != "${host}" ; then
   CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-c++}
   GCJ_FOR_TARGET=${GCJ_FOR_TARGET-${target_alias}-gcj}
   GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}}
-  BUILD_DIR_PREFIX=${build_subdir}
   BUILD_PREFIX=${build_alias}-
   BUILD_PREFIX_1=${build_alias}-
 
@@ -1784,7 +1785,6 @@ else
 
   CC_FOR_BUILD="\$(CC)"
   GCC_FOR_TARGET="\$(USUAL_GCC_FOR_TARGET)"
-  BUILD_DIR_PREFIX=
   BUILD_PREFIX=
   BUILD_PREFIX_1=loser-
 
@@ -3504,7 +3504,6 @@ done
 
 
 
-
 # Build module lists & subconfigure args.
 
 
@@ -3531,7 +3530,7 @@ test -n "$target_alias" && ncn_target_tool_prefix=$target_alias-
   # Extract the first word of "${ncn_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}ar; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3535: checking for $ac_word" >&5
+echo "configure:3534: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3564,7 +3563,7 @@ if test -z "$ac_cv_prog_AR" ; then
     # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3568: checking for $ac_word" >&5
+echo "configure:3567: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3603,7 +3602,7 @@ fi
   # Extract the first word of "${ncn_tool_prefix}as", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}as; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3607: checking for $ac_word" >&5
+echo "configure:3606: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3636,7 +3635,7 @@ if test -z "$ac_cv_prog_AS" ; then
     # Extract the first word of "as", so it can be a program name with args.
 set dummy as; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3640: checking for $ac_word" >&5
+echo "configure:3639: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AS'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3675,7 +3674,7 @@ fi
   # Extract the first word of "${ncn_tool_prefix}dlltool", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}dlltool; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3679: checking for $ac_word" >&5
+echo "configure:3678: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3708,7 +3707,7 @@ if test -z "$ac_cv_prog_DLLTOOL" ; then
     # Extract the first word of "dlltool", so it can be a program name with args.
 set dummy dlltool; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3712: checking for $ac_word" >&5
+echo "configure:3711: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_DLLTOOL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3747,7 +3746,7 @@ fi
   # Extract the first word of "${ncn_tool_prefix}ld", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}ld; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3751: checking for $ac_word" >&5
+echo "configure:3750: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3780,7 +3779,7 @@ if test -z "$ac_cv_prog_LD" ; then
     # Extract the first word of "ld", so it can be a program name with args.
 set dummy ld; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3784: checking for $ac_word" >&5
+echo "configure:3783: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_LD'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3819,7 +3818,7 @@ fi
   # Extract the first word of "${ncn_tool_prefix}nm", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}nm; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3823: checking for $ac_word" >&5
+echo "configure:3822: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_NM'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3852,7 +3851,7 @@ if test -z "$ac_cv_prog_NM" ; then
     # Extract the first word of "nm", so it can be a program name with args.
 set dummy nm; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3856: checking for $ac_word" >&5
+echo "configure:3855: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_NM'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3891,7 +3890,7 @@ fi
   # Extract the first word of "${ncn_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3895: checking for $ac_word" >&5
+echo "configure:3894: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3924,7 +3923,7 @@ if test -z "$ac_cv_prog_RANLIB" ; then
     # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3928: checking for $ac_word" >&5
+echo "configure:3927: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3963,7 +3962,7 @@ fi
   # Extract the first word of "${ncn_tool_prefix}windres", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}windres; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3967: checking for $ac_word" >&5
+echo "configure:3966: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3996,7 +3995,7 @@ if test -z "$ac_cv_prog_WINDRES" ; then
     # Extract the first word of "windres", so it can be a program name with args.
 set dummy windres; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4000: checking for $ac_word" >&5
+echo "configure:3999: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_WINDRES'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4035,7 +4034,7 @@ fi
   # Extract the first word of "${ncn_tool_prefix}objcopy", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}objcopy; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4039: checking for $ac_word" >&5
+echo "configure:4038: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4068,7 +4067,7 @@ if test -z "$ac_cv_prog_OBJCOPY" ; then
     # Extract the first word of "objcopy", so it can be a program name with args.
 set dummy objcopy; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4072: checking for $ac_word" >&5
+echo "configure:4071: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJCOPY'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4107,7 +4106,7 @@ fi
   # Extract the first word of "${ncn_tool_prefix}objdump", so it can be a program name with args.
 set dummy ${ncn_tool_prefix}objdump; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4111: checking for $ac_word" >&5
+echo "configure:4110: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4140,7 +4139,7 @@ if test -z "$ac_cv_prog_OBJDUMP" ; then
     # Extract the first word of "objdump", so it can be a program name with args.
 set dummy objdump; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4144: checking for $ac_word" >&5
+echo "configure:4143: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJDUMP'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4186,7 +4185,7 @@ fi
   # Extract the first word of "${ncn_target_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ncn_target_tool_prefix}ar; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4190: checking for $ac_word" >&5
+echo "configure:4189: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_AR_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4219,7 +4218,7 @@ if test -z "$ac_cv_prog_CONFIGURED_AR_FOR_TARGET" ; then
     # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4223: checking for $ac_word" >&5
+echo "configure:4222: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_AR_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4258,7 +4257,7 @@ fi
   # Extract the first word of "${ncn_target_tool_prefix}as", so it can be a program name with args.
 set dummy ${ncn_target_tool_prefix}as; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4262: checking for $ac_word" >&5
+echo "configure:4261: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_AS_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4291,7 +4290,7 @@ if test -z "$ac_cv_prog_CONFIGURED_AS_FOR_TARGET" ; then
     # Extract the first word of "as", so it can be a program name with args.
 set dummy as; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4295: checking for $ac_word" >&5
+echo "configure:4294: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_AS_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4330,7 +4329,7 @@ fi
   # Extract the first word of "${ncn_target_tool_prefix}dlltool", so it can be a program name with args.
 set dummy ${ncn_target_tool_prefix}dlltool; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4334: checking for $ac_word" >&5
+echo "configure:4333: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4363,7 +4362,7 @@ if test -z "$ac_cv_prog_CONFIGURED_DLLTOOL_FOR_TARGET" ; then
     # Extract the first word of "dlltool", so it can be a program name with args.
 set dummy dlltool; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4367: checking for $ac_word" >&5
+echo "configure:4366: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4402,7 +4401,7 @@ fi
   # Extract the first word of "${ncn_target_tool_prefix}ld", so it can be a program name with args.
 set dummy ${ncn_target_tool_prefix}ld; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4406: checking for $ac_word" >&5
+echo "configure:4405: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_LD_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4435,7 +4434,7 @@ if test -z "$ac_cv_prog_CONFIGURED_LD_FOR_TARGET" ; then
     # Extract the first word of "ld", so it can be a program name with args.
 set dummy ld; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4439: checking for $ac_word" >&5
+echo "configure:4438: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_LD_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4474,7 +4473,7 @@ fi
   # Extract the first word of "${ncn_target_tool_prefix}nm", so it can be a program name with args.
 set dummy ${ncn_target_tool_prefix}nm; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4478: checking for $ac_word" >&5
+echo "configure:4477: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_NM_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4507,7 +4506,7 @@ if test -z "$ac_cv_prog_CONFIGURED_NM_FOR_TARGET" ; then
     # Extract the first word of "nm", so it can be a program name with args.
 set dummy nm; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4511: checking for $ac_word" >&5
+echo "configure:4510: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_NM_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4546,7 +4545,7 @@ fi
   # Extract the first word of "${ncn_target_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ncn_target_tool_prefix}ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4550: checking for $ac_word" >&5
+echo "configure:4549: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_RANLIB_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4579,7 +4578,7 @@ if test -z "$ac_cv_prog_CONFIGURED_RANLIB_FOR_TARGET" ; then
     # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4583: checking for $ac_word" >&5
+echo "configure:4582: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_RANLIB_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4618,7 +4617,7 @@ fi
   # Extract the first word of "${ncn_target_tool_prefix}windres", so it can be a program name with args.
 set dummy ${ncn_target_tool_prefix}windres; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4622: checking for $ac_word" >&5
+echo "configure:4621: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CONFIGURED_WINDRES_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4651,7 +4650,7 @@ if test -z "$ac_cv_prog_CONFIGURED_WINDRES_FOR_TARGET" ; then
     # Extract the first word of "windres", so it can be a program name with args.
 set dummy windres; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4655: checking for $ac_word" >&5
+echo "configure:4654: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_CONFIGURED_WINDRES_FOR_TARGET'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4736,7 +4735,7 @@ RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
 NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
 
 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:4740: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:4739: checking whether to enable maintainer-specific portions of Makefiles" >&5
 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
 if test "${enable_maintainer_mode+set}" = set; then
   enableval="$enable_maintainer_mode"
@@ -4783,7 +4782,7 @@ esac
 # gcc for stageN-gcc and stage-prev for stage(N-1).  In case this is not
 # possible, however, we can resort to mv.
 echo $ac_n "checking if symbolic links between directories work""... $ac_c" 1>&6
-echo "configure:4787: checking if symbolic links between directories work" >&5
+echo "configure:4786: checking if symbolic links between directories work" >&5
 if eval "test \"`echo '$''{'gcc_cv_prog_ln_s_dir'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5025,7 +5024,6 @@ s%@alphaieee_frag@%%g
 s%@ospace_frag@%%g
 s%@SET_LIB_PATH@%$SET_LIB_PATH%g
 s%@RPATH_ENVVAR@%$RPATH_ENVVAR%g
-s%@BUILD_DIR_PREFIX@%$BUILD_DIR_PREFIX%g
 s%@BUILD_PREFIX@%$BUILD_PREFIX%g
 s%@BUILD_PREFIX_1@%$BUILD_PREFIX_1%g
 s%@gcc_version_trigger@%$gcc_version_trigger%g
index 67ad4e5..67de498 100644 (file)
@@ -184,9 +184,11 @@ target_tools="target-examples target-groff target-gperf target-rda"
 configdirs=`echo ${host_libs} ${host_tools}`
 target_configdirs=`echo ${target_libraries} ${target_tools}`
 
-# Only make build modules if build != host.
+# Only make build libraries if build != host.
 if test ${host_alias} != ${build_alias} ; then
   build_configdirs=`echo ${build_libs} ${build_tools}`
+else
+  build_configdirs=`echo ${build_tools}`
 fi
 
 ################################################################################
@@ -985,7 +987,6 @@ if test "${build}" != "${host}" ; then
   CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-c++}
   GCJ_FOR_TARGET=${GCJ_FOR_TARGET-${target_alias}-gcj}
   GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}}
-  BUILD_DIR_PREFIX=${build_subdir}
   BUILD_PREFIX=${build_alias}-
   BUILD_PREFIX_1=${build_alias}-
 
@@ -1000,7 +1001,6 @@ else
 
   CC_FOR_BUILD="\$(CC)"
   GCC_FOR_TARGET="\$(USUAL_GCC_FOR_TARGET)"
-  BUILD_DIR_PREFIX=
   BUILD_PREFIX=
   BUILD_PREFIX_1=loser-
 
@@ -2089,7 +2089,6 @@ AC_SUBST_FILE(ospace_frag)
 # Miscellanea: directories, flags, etc.
 AC_SUBST(SET_LIB_PATH)
 AC_SUBST(RPATH_ENVVAR)
-AC_SUBST(BUILD_DIR_PREFIX)
 AC_SUBST(BUILD_PREFIX)
 AC_SUBST(BUILD_PREFIX_1)
 AC_SUBST(gcc_version_trigger)
index e7e7961..7f581a9 100644 (file)
@@ -1,3 +1,22 @@
+2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
+
+       * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
+       No need to check if in a cross configuration.
+       * configure: Regenerate.
+
+       * calls.c (precompute_register_parameters):
+       Inline preserve_subexpressions_p ().
+       * expmed.c (expand_mult_const, emit_store_flag): Likewise.
+       * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
+       Likewise.
+       * expr.c (get_subtarget): Likewise.
+       * rtl.h (preserve_subexpressions_p): Remove.
+       * stmt.c (preserve_subexpressions_p): Remove.
+
+       * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
+       TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
+       Abort on gimplified cases.
+
 2004-08-16  James E Wilson  <wilson@specifixinc.com>
 
        * tree.h (VECTOR_FLOAT_TYPE_P): New.
        Check for arificial variables, not is_gimple_tmp_var.
        * tree-ssa-live.c (var_union): Likewise.
 
+>>>>>>> 2.4930
 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
 
        * calls.c (load_register_parameters): Remove spurious FIXME token.
index ef6da5d..3552737 100644 (file)
@@ -691,7 +691,7 @@ precompute_register_parameters (int num_actuals, struct arg_data *args, int *reg
            && args[i].mode != BLKmode
            && rtx_cost (args[i].value, SET) > COSTS_N_INSNS (1)
            && ((SMALL_REGISTER_CLASSES && *reg_parm_seen)
-               || preserve_subexpressions_p ()))
+               || optimize))
          args[i].value = copy_to_mode_reg (args[i].mode, args[i].value);
       }
 }
index 0328df5..f8a0b00 100644 (file)
@@ -2666,17 +2666,18 @@ function_arg (CUMULATIVE_ARGS *cum,     /* current arg information */
       && GET_MODE_CLASS (TYPE_MODE (type)) != MODE_VECTOR_FLOAT)
     {
       enum machine_mode innermode = TYPE_MODE (TREE_TYPE (type));
-      mode = TREE_CODE (TREE_TYPE (type)) == REAL_TYPE
-            ? MIN_MODE_VECTOR_FLOAT : MIN_MODE_VECTOR_INT;
+      enum machine_mode newmode
+       = TREE_CODE (TREE_TYPE (type)) == REAL_TYPE
+         ? MIN_MODE_VECTOR_FLOAT : MIN_MODE_VECTOR_INT;
 
       /* Get the mode which has this inner mode and number of units.  */
-      while (GET_MODE_NUNITS (mode) != TYPE_VECTOR_SUBPARTS (type)
-            || GET_MODE_INNER (mode) != innermode)
-       {
-         mode = GET_MODE_WIDER_MODE (mode);
-         if (mode == VOIDmode)
-           abort ();
-       }
+      for (; newmode != VOIDmode; newmode = GET_MODE_WIDER_MODE (newmode))
+       if (GET_MODE_NUNITS (newmode) == TYPE_VECTOR_SUBPARTS (type)
+           && GET_MODE_INNER (newmode) == innermode)
+         {
+           mode = newmode;
+           break;
+         }
     }
 
   /* Handle a hidden AL argument containing number of registers for varargs
index 2fb43f8..8cae074 100755 (executable)
@@ -1030,7 +1030,7 @@ esac
     else
       echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
     fi
-    cd $ac_popdir
+    cd "$ac_popdir"
   done
 fi
 
@@ -2379,8 +2379,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2438,8 +2437,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2555,8 +2553,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2610,8 +2607,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2656,8 +2652,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2701,8 +2696,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3108,8 +3102,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3180,8 +3173,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3240,8 +3232,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3307,8 +3298,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3378,8 +3368,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3449,8 +3438,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3520,8 +3508,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-        { ac_try='test -z "$ac_c_werror_flag"
-                        || test ! -s conftest.err'
+        { ac_try='test -z "$ac_c_werror_flag"                   || test ! -s conftest.err'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (ev