* ld-mips-elf/mips-elf.exp: Remove branch-misc-2 test.
[deliverable/binutils-gdb.git] / Makefile.in
index 2834c81714cbf553cc9dc0a2b1d8ff6fa8477ae1..47e51921e4305f4c5aee9812f65a456a0859f541 100644 (file)
@@ -109,7 +109,7 @@ INSTALL_DATA = $(INSTALL) -m 644
 AS = @AS@
 AR = @AR@
 AR_FLAGS = rc
-CC = cc
+CC = @CC@
 
 # Special variables passed down in EXTRA_GCC_FLAGS.  They are defined
 # here so that they can be overridden by Makefile fragments.
@@ -117,9 +117,8 @@ BUILD_CC = $(CC_FOR_BUILD)
 BUILD_PREFIX = @BUILD_PREFIX@
 BUILD_PREFIX_1 = @BUILD_PREFIX_1@
 
-# These flag values are normally overridden by the configure script.
-CFLAGS = -g
-CXXFLAGS = -g -O2
+CFLAGS = @CFLAGS@
+CXXFLAGS = @CXXFLAGS@
 
 LDFLAGS = 
 LIBCFLAGS = $(CFLAGS)
@@ -134,7 +133,7 @@ LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
 PICFLAG = 
 PICFLAG_FOR_TARGET = 
 
-CXX = c++
+CXX = @CXX@
 
 # Use -O2 to stress test the compiler.
 LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
@@ -219,14 +218,18 @@ TARGET_SUBDIR = @target_subdir@
 BUILD_CONFIGDIRS = libiberty
 BUILD_SUBDIR = @build_subdir@
 
-# This is set by the configure script to the arguments to use when configuring
-# directories built for the target.
-TARGET_CONFIGARGS = @target_configargs@
-
 # This is set by the configure script to the arguments to use when configuring
 # directories built for the build system.
 BUILD_CONFIGARGS = @build_configargs@
 
+# This is set by the configure script to the arguments to use when configuring
+# directories built for the host system.
+HOST_CONFIGARGS = @host_configargs@
+
+# This is set by the configure script to the arguments to use when configuring
+# directories built for the target.
+TARGET_CONFIGARGS = @target_configargs@
+
 # This is set by configure to REALLY_SET_LIB_PATH if --enable-shared
 # was used.
 SET_LIB_PATH = @SET_LIB_PATH@
@@ -253,7 +256,9 @@ REALLY_SET_LIB_PATH = \
 FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@
 CC_FOR_TARGET = @CC_FOR_TARGET@
 CXX_FOR_TARGET = @CXX_FOR_TARGET@
+RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@
 CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
+RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@
 GCJ_FOR_TARGET = @GCJ_FOR_TARGET@
 
 # If GCC_FOR_TARGET is not overriden on the command line, then this
@@ -436,7 +441,8 @@ BASE_FLAGS_TO_PASS = \
 # so we pass these variables down unchanged.  They must not contain
 # single nor double quotes.
 RECURSE_FLAGS = \
-       CXX_FOR_TARGET='$(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)'
+       CXX_FOR_TARGET='$(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)' \
+       RAW_CXX_FOR_TARGET='$(RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)' \
 
 # Flags to pass down to most sub-makes, in which we're building with
 # the host environment.
@@ -519,39 +525,8 @@ EXTRA_GCC_FLAGS = \
 
 GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS)
 
-# This is a list of the targets for all of the modules which are compiled
-# using the build machine's native compiler.  Configure edits the second
-# macro for build!=host builds.
-ALL_BUILD_MODULES_LIST = \
-       all-build-libiberty
-ALL_BUILD_MODULES = @all_build_modules@
-
-# This is a list of the configure targets for all of the modules which
-# are compiled using the native tools.
-CONFIGURE_BUILD_MODULES = \
-       configure-build-libiberty
-
-# This is a list of the configure targets for all of the modules which
-# are compiled using the target tools.
-CONFIGURE_TARGET_MODULES = \
-       configure-target-libstdc++-v3 \
-       configure-target-newlib \
-       configure-target-libf2c \
-       configure-target-libobjc \
-       configure-target-libtermcap \
-       configure-target-winsup \
-       configure-target-libgloss \
-       configure-target-libiberty \
-       configure-target-gperf \
-       configure-target-examples \
-       configure-target-libffi \
-       configure-target-libjava \
-       configure-target-zlib \
-       configure-target-boehm-gc \
-       configure-target-qthreads \
-       configure-target-rda 
-
-configure-target: $(CONFIGURE_TARGET_MODULES)
+configure-host: @configure_host_modules@
+configure-target: @configure_target_modules@
 
 # This is a list of the targets for which we can do a clean-{target}.
 CLEAN_MODULES = \
@@ -615,7 +590,7 @@ CLEAN_MODULES = \
        clean-wdiff \
        clean-zip \
        clean-zlib \
-       clean-utils 
+       clean-utils
 
 # All of the target modules that can be cleaned
 CLEAN_TARGET_MODULES = \
@@ -633,7 +608,7 @@ CLEAN_TARGET_MODULES = \
        clean-target-zlib \
        clean-target-boehm-gc \
        clean-target-qthreads \
-       clean-target-rda 
+       clean-target-rda
 
 # All of the x11 modules that can be cleaned
 CLEAN_X11_MODULES = \
@@ -651,6 +626,7 @@ all.normal: @all_build_modules@ \
        @all_host_modules@ \
        @all_target_modules@
 
+all-host: @all_host_modules@
 all-target: @all_target_modules@
 
 # Do a target for all the subdirectories.  A ``make do-X'' will do a
@@ -1195,7 +1171,7 @@ mail-report-with-warnings.log: warning.log
 
 # Installation targets.
 
-.PHONY: install uninstall source-vault binary-vault vault-install
+.PHONY: install uninstall
 install: installdirs @install_host_modules@ @install_target_modules@
 
 install-target: @install_target_modules@
@@ -1203,21 +1179,6 @@ install-target: @install_target_modules@
 uninstall:
        @echo "the uninstall target is not supported in this tree"
 
-source-vault:
-       $(MAKE) -f ./release/Build-A-Release \
-               host=$(host_alias) source-vault
-
-binary-vault:
-       $(MAKE) -f ./release/Build-A-Release \
-               host=$(host_alias) target=$(target_alias)
-
-vault-install:
-       @if [ -f ./release/vault-install ] ; then \
-         ./release/vault-install $(host_alias) $(target_alias) ; \
-       else \
-         true ; \
-       fi
-
 .PHONY: install.all
 install.all: install-no-fixedincludes
        @if [ -f ./gcc/Makefile ] ; then \
@@ -1235,49 +1196,46 @@ install.all: install-no-fixedincludes
 install-no-fixedincludes: installdirs @install_host_modules_nogcc@ \
        @install_target_modules@ gcc-no-fixedincludes
 
-# Install the gcc headers files, but not the fixed include files,
-# which Cygnus is not allowed to distribute.  This rule is very
-# dependent on the workings of the gcc Makefile.in.
-.PHONY: gcc-no-fixedincludes
-gcc-no-fixedincludes:
-       @if [ -f ./gcc/Makefile ]; then \
-         rm -rf gcc/tmp-include; \
-         mv gcc/include gcc/tmp-include 2>/dev/null; \
-         mkdir gcc/include; \
-         cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \
-         touch gcc/stmp-fixinc gcc/include/fixed; \
-         rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \
-         r=`${PWD}`; export r; \
-         s=`cd $(srcdir); ${PWD}` ; export s; \
-         $(SET_LIB_PATH) \
-         (cd ./gcc; \
-          $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
-         rm -rf gcc/include; \
-         mv gcc/tmp-include gcc/include 2>/dev/null; \
-       else true; fi
+### other supporting targets
 
-# These rules are used to build the modules which are built with the
-# build machine's native compiler.
+MAKEDIRS= \
+       $(DESTDIR)$(prefix) \
+       $(DESTDIR)$(exec_prefix)
+.PHONY: installdirs
+installdirs: mkinstalldirs
+       $(SHELL) $(srcdir)/mkinstalldirs $(MAKEDIRS)
 
-.PHONY: all-build-libiberty
-all-build-libiberty:
-       @if [ -f ./libiberty/Makefile ] ; then \
-         r=`${PWD}`; export r; \
-         s=`cd $(srcdir); ${PWD}`; export s; \
-         (cd $(BUILD_SUBDIR)/libiberty && $(MAKE) all); \
-       else \
-         true; \
+dir.info: do-install-info
+       if [ -f $(srcdir)/texinfo/gen-info-dir ] ; then \
+         $(srcdir)/texinfo/gen-info-dir $(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \
+         mv -f dir.info.new dir.info ; \
+       else true ; \
        fi
 
-.PHONY: configure-build-libiberty
-configure-build-libiberty:
-       @if [ ! -d $(BUILD_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(BUILD_SUBDIR)/libiberty/Makefile ] ; then \
-         true; \
-       elif echo " $(BUILD_CONFIGDIRS) " | grep " libiberty " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/libiberty ]; then \
-           [ -d $(BUILD_SUBDIR)/libiberty ] || mkdir $(BUILD_SUBDIR)/libiberty;\
+dist:
+       @echo "Building a full distribution of this tree isn't done"
+       @echo "via 'make dist'.  Check out the etc/ subdirectory" 
+
+etags tags: TAGS
+
+# Right now this just builds TAGS in each subdirectory.  emacs19 has the
+# ability to use several tags files at once, so there is probably no need
+# to combine them into one big TAGS file (like CVS 1.3 does).  We could
+# (if we felt like it) have this Makefile write a piece of elisp which
+# the user could load to tell emacs19 where all the TAGS files we just
+# built are.
+TAGS: do-TAGS
+
+
+# --------------------------------------
+# Modules which run on the build machine
+# --------------------------------------
+
+.PHONY: configure-build-libiberty maybe-configure-build-libiberty
+maybe-configure-build-libiberty:
+configure-build-libiberty: $(BUILD_SUBDIR)/libiberty/Makefile
+$(BUILD_SUBDIR)/libiberty/Makefile: config.status
+       @[ -d $(BUILD_SUBDIR)/libiberty ] || mkdir $(BUILD_SUBDIR)/libiberty;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            AR="$(AR_FOR_BUILD)"; export AR; \
@@ -1328,572 +1286,962 @@ configure-build-libiberty:
              srcdiroption="--srcdir=$${topdir}/libiberty"; \
              libsrcdir="$$s/libiberty"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(BUILD_CONFIGARGS) $${srcdiroption} \
-               --with-build-subdir="$(BUILD_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(BUILD_CONFIGARGS) $${srcdiroption} \
-               --with-build-subdir="$(BUILD_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir libiberty || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(BUILD_CONFIGARGS) $${srcdiroption} \
+             --with-build-subdir="$(BUILD_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-build-libiberty maybe-all-build-libiberty
+maybe-all-build-libiberty:
+all-build-libiberty: configure-build-libiberty
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         (cd $(BUILD_SUBDIR)/libiberty && $(MAKE) all)
 
 
-# These rules are used to build the modules which use FLAGS_TO_PASS.  To
-# build a target all-X means to cd to X and make all.
+# --------------------------------------
+# Modules which run on the host machine
+# --------------------------------------
 
-.PHONY: all-ash
-all-ash:
-       @dir=ash; \
-       if [ -f ./ash/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-ash maybe-configure-ash
+maybe-configure-ash:
+configure-ash: ash/Makefile
+
+ash/Makefile: config.status
+       @[ -d ash ] || mkdir ash; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in ash; \
+       cd ash || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/ash"; \
+           libsrcdir="$$s/ash";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/ash"; \
+           libsrcdir="$$s/ash";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-ash maybe-all-ash
+maybe-all-ash:
+all-ash: configure-ash
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd ash; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd ash; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-ash
 check-ash:
-       @dir=ash; \
-       if [ -f ./ash/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd ash; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd ash; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-ash
+.PHONY: install-ash maybe-install-ash
+maybe-install-ash:
 install-ash: installdirs
-       @dir=ash; \
-       if [ -f ./ash/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd ash; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd ash; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-autoconf
-all-autoconf:
-       @dir=autoconf; \
-       if [ -f ./autoconf/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-autoconf maybe-configure-autoconf
+maybe-configure-autoconf:
+configure-autoconf: autoconf/Makefile
+
+autoconf/Makefile: config.status
+       @[ -d autoconf ] || mkdir autoconf; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in autoconf; \
+       cd autoconf || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/autoconf"; \
+           libsrcdir="$$s/autoconf";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/autoconf"; \
+           libsrcdir="$$s/autoconf";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-autoconf maybe-all-autoconf
+maybe-all-autoconf:
+all-autoconf: configure-autoconf
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd autoconf; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd autoconf; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-autoconf
 check-autoconf:
-       @dir=autoconf; \
-       if [ -f ./autoconf/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd autoconf; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd autoconf; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-autoconf
+.PHONY: install-autoconf maybe-install-autoconf
+maybe-install-autoconf:
 install-autoconf: installdirs
-       @dir=autoconf; \
-       if [ -f ./autoconf/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd autoconf; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd autoconf; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-automake
-all-automake:
-       @dir=automake; \
-       if [ -f ./automake/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-automake maybe-configure-automake
+maybe-configure-automake:
+configure-automake: automake/Makefile
+
+automake/Makefile: config.status
+       @[ -d automake ] || mkdir automake; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in automake; \
+       cd automake || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/automake"; \
+           libsrcdir="$$s/automake";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/automake"; \
+           libsrcdir="$$s/automake";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-automake maybe-all-automake
+maybe-all-automake:
+all-automake: configure-automake
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd automake; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd automake; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-automake
 check-automake:
-       @dir=automake; \
-       if [ -f ./automake/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd automake; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd automake; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-automake
+.PHONY: install-automake maybe-install-automake
+maybe-install-automake:
 install-automake: installdirs
-       @dir=automake; \
-       if [ -f ./automake/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd automake; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd automake; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-bash
-all-bash:
-       @dir=bash; \
-       if [ -f ./bash/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-bash maybe-configure-bash
+maybe-configure-bash:
+configure-bash: bash/Makefile
+
+bash/Makefile: config.status
+       @[ -d bash ] || mkdir bash; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in bash; \
+       cd bash || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/bash"; \
+           libsrcdir="$$s/bash";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/bash"; \
+           libsrcdir="$$s/bash";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-bash maybe-all-bash
+maybe-all-bash:
+all-bash: configure-bash
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd bash; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd bash; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-bash
 check-bash:
-       @dir=bash; \
-       if [ -f ./bash/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd bash; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd bash; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-bash
+.PHONY: install-bash maybe-install-bash
+maybe-install-bash:
 install-bash: installdirs
-       @dir=bash; \
-       if [ -f ./bash/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd bash; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd bash; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-bfd
-all-bfd:
-       @dir=bfd; \
-       if [ -f ./bfd/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-bfd maybe-configure-bfd
+maybe-configure-bfd:
+configure-bfd: bfd/Makefile
+
+bfd/Makefile: config.status
+       @[ -d bfd ] || mkdir bfd; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring 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} \
+         || exit 1
+
+.PHONY: all-bfd maybe-all-bfd
+maybe-all-bfd:
+all-bfd: configure-bfd
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd bfd; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd bfd; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-bfd
 check-bfd:
-       @dir=bfd; \
-       if [ -f ./bfd/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd bfd; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd bfd; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-bfd
+.PHONY: install-bfd maybe-install-bfd
+maybe-install-bfd:
 install-bfd: installdirs
-       @dir=bfd; \
-       if [ -f ./bfd/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd bfd; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd bfd; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-opcodes
-all-opcodes:
-       @dir=opcodes; \
-       if [ -f ./opcodes/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-opcodes maybe-configure-opcodes
+maybe-configure-opcodes:
+configure-opcodes: opcodes/Makefile
+
+opcodes/Makefile: config.status
+       @[ -d opcodes ] || mkdir opcodes; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring 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} \
+         || exit 1
+
+.PHONY: all-opcodes maybe-all-opcodes
+maybe-all-opcodes:
+all-opcodes: configure-opcodes
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd opcodes; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd opcodes; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-opcodes
 check-opcodes:
-       @dir=opcodes; \
-       if [ -f ./opcodes/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd opcodes; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd opcodes; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-opcodes
+.PHONY: install-opcodes maybe-install-opcodes
+maybe-install-opcodes:
 install-opcodes: installdirs
-       @dir=opcodes; \
-       if [ -f ./opcodes/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd opcodes; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd opcodes; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-binutils
-all-binutils:
-       @dir=binutils; \
-       if [ -f ./binutils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-binutils maybe-configure-binutils
+maybe-configure-binutils:
+configure-binutils: binutils/Makefile
+
+binutils/Makefile: config.status
+       @[ -d binutils ] || mkdir binutils; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring 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} \
+         || exit 1
+
+.PHONY: all-binutils maybe-all-binutils
+maybe-all-binutils:
+all-binutils: configure-binutils
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd binutils; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd binutils; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-binutils
 check-binutils:
-       @dir=binutils; \
-       if [ -f ./binutils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd binutils; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd binutils; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-binutils
+.PHONY: install-binutils maybe-install-binutils
+maybe-install-binutils:
 install-binutils: installdirs
-       @dir=binutils; \
-       if [ -f ./binutils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd binutils; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd binutils; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-bison
-all-bison:
-       @dir=bison; \
-       if [ -f ./bison/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-bison maybe-configure-bison
+maybe-configure-bison:
+configure-bison: bison/Makefile
+
+bison/Makefile: config.status
+       @[ -d bison ] || mkdir bison; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in bison; \
+       cd bison || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/bison"; \
+           libsrcdir="$$s/bison";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/bison"; \
+           libsrcdir="$$s/bison";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-bison maybe-all-bison
+maybe-all-bison:
+all-bison: configure-bison
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd bison; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd bison; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-bison
 # This module is only tested in a native toolchain.
 check-bison:
        @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
-         dir=bison; \
-         if [ -f ./bison/Makefile ] ; then \
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
            (cd bison; $(MAKE) $(FLAGS_TO_PASS) check); \
-         else \
-           true; \
-         fi; \
        fi
 
 
 
-.PHONY: install-bison
+.PHONY: install-bison maybe-install-bison
+maybe-install-bison:
 install-bison: installdirs
-       @dir=bison; \
-       if [ -f ./bison/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd bison; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd bison; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-byacc
-all-byacc:
-       @dir=byacc; \
-       if [ -f ./byacc/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-byacc maybe-configure-byacc
+maybe-configure-byacc:
+configure-byacc: byacc/Makefile
+
+byacc/Makefile: config.status
+       @[ -d byacc ] || mkdir byacc; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in byacc; \
+       cd byacc || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/byacc"; \
+           libsrcdir="$$s/byacc";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/byacc"; \
+           libsrcdir="$$s/byacc";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-byacc maybe-all-byacc
+maybe-all-byacc:
+all-byacc: configure-byacc
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd byacc; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd byacc; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-byacc
 # This module is only tested in a native toolchain.
 check-byacc:
        @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
-         dir=byacc; \
-         if [ -f ./byacc/Makefile ] ; then \
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
            (cd byacc; $(MAKE) $(FLAGS_TO_PASS) check); \
-         else \
-           true; \
-         fi; \
        fi
 
 
 
-.PHONY: install-byacc
+.PHONY: install-byacc maybe-install-byacc
+maybe-install-byacc:
 install-byacc: installdirs
-       @dir=byacc; \
-       if [ -f ./byacc/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd byacc; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd byacc; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-bzip2
-all-bzip2:
-       @dir=bzip2; \
-       if [ -f ./bzip2/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-bzip2 maybe-configure-bzip2
+maybe-configure-bzip2:
+configure-bzip2: bzip2/Makefile
+
+bzip2/Makefile: config.status
+       @[ -d bzip2 ] || mkdir bzip2; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in bzip2; \
+       cd bzip2 || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/bzip2"; \
+           libsrcdir="$$s/bzip2";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/bzip2"; \
+           libsrcdir="$$s/bzip2";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-bzip2 maybe-all-bzip2
+maybe-all-bzip2:
+all-bzip2: configure-bzip2
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd bzip2; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd bzip2; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-bzip2
 check-bzip2:
-       @dir=bzip2; \
-       if [ -f ./bzip2/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd bzip2; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd bzip2; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-bzip2
+.PHONY: install-bzip2 maybe-install-bzip2
+maybe-install-bzip2:
 install-bzip2: installdirs
-       @dir=bzip2; \
-       if [ -f ./bzip2/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd bzip2; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd bzip2; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-db
-all-db:
-       @dir=db; \
-       if [ -f ./db/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-db maybe-configure-db
+maybe-configure-db:
+configure-db: db/Makefile
+
+db/Makefile: config.status
+       @[ -d db ] || mkdir db; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in db; \
+       cd db || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/db"; \
+           libsrcdir="$$s/db";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/db"; \
+           libsrcdir="$$s/db";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-db maybe-all-db
+maybe-all-db:
+all-db: configure-db
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd db; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd db; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-db
 check-db:
-       @dir=db; \
-       if [ -f ./db/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd db; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd db; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-db
+.PHONY: install-db maybe-install-db
+maybe-install-db:
 install-db: installdirs
-       @dir=db; \
-       if [ -f ./db/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd db; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd db; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-dejagnu
-all-dejagnu:
-       @dir=dejagnu; \
-       if [ -f ./dejagnu/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-dejagnu maybe-configure-dejagnu
+maybe-configure-dejagnu:
+configure-dejagnu: dejagnu/Makefile
+
+dejagnu/Makefile: config.status
+       @[ -d dejagnu ] || mkdir dejagnu; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in dejagnu; \
+       cd dejagnu || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/dejagnu"; \
+           libsrcdir="$$s/dejagnu";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/dejagnu"; \
+           libsrcdir="$$s/dejagnu";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-dejagnu maybe-all-dejagnu
+maybe-all-dejagnu:
+all-dejagnu: configure-dejagnu
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd dejagnu; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd dejagnu; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-dejagnu
 check-dejagnu:
-       @dir=dejagnu; \
-       if [ -f ./dejagnu/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd dejagnu; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd dejagnu; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-dejagnu
+.PHONY: install-dejagnu maybe-install-dejagnu
+maybe-install-dejagnu:
 install-dejagnu: installdirs
-       @dir=dejagnu; \
-       if [ -f ./dejagnu/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd dejagnu; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd dejagnu; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-diff
-all-diff:
-       @dir=diff; \
-       if [ -f ./diff/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-diff maybe-configure-diff
+maybe-configure-diff:
+configure-diff: diff/Makefile
+
+diff/Makefile: config.status
+       @[ -d diff ] || mkdir diff; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in diff; \
+       cd diff || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/diff"; \
+           libsrcdir="$$s/diff";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/diff"; \
+           libsrcdir="$$s/diff";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-diff maybe-all-diff
+maybe-all-diff:
+all-diff: configure-diff
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd diff; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd diff; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-diff
 check-diff:
-       @dir=diff; \
-       if [ -f ./diff/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd diff; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd diff; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-diff
+.PHONY: install-diff maybe-install-diff
+maybe-install-diff:
 install-diff: installdirs
-       @dir=diff; \
-       if [ -f ./diff/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd diff; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd diff; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-dosutils
-all-dosutils:
-       @dir=dosutils; \
-       if [ -f ./dosutils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-dosutils maybe-configure-dosutils
+maybe-configure-dosutils:
+configure-dosutils: dosutils/Makefile
+
+dosutils/Makefile: config.status
+       @[ -d dosutils ] || mkdir dosutils; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in dosutils; \
+       cd dosutils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/dosutils"; \
+           libsrcdir="$$s/dosutils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/dosutils"; \
+           libsrcdir="$$s/dosutils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-dosutils maybe-all-dosutils
+maybe-all-dosutils:
+all-dosutils: configure-dosutils
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd dosutils; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd dosutils; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-dosutils
@@ -1901,996 +2249,1701 @@ check-dosutils:
 
 
 
-.PHONY: install-dosutils
+.PHONY: install-dosutils maybe-install-dosutils
+maybe-install-dosutils:
 install-dosutils: installdirs
-       @dir=dosutils; \
-       if [ -f ./dosutils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd dosutils; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd dosutils; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-etc
-all-etc:
-       @dir=etc; \
-       if [ -f ./etc/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-etc maybe-configure-etc
+maybe-configure-etc:
+configure-etc: etc/Makefile
+
+etc/Makefile: config.status
+       @[ -d etc ] || mkdir etc; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in etc; \
+       cd etc || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/etc"; \
+           libsrcdir="$$s/etc";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/etc"; \
+           libsrcdir="$$s/etc";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-etc maybe-all-etc
+maybe-all-etc:
+all-etc: configure-etc
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd etc; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd etc; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-etc
 check-etc:
-       @dir=etc; \
-       if [ -f ./etc/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd etc; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd etc; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-etc
+.PHONY: install-etc maybe-install-etc
+maybe-install-etc:
 install-etc: installdirs
-       @dir=etc; \
-       if [ -f ./etc/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd etc; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd etc; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-fastjar
-all-fastjar:
-       @dir=fastjar; \
-       if [ -f ./fastjar/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-fastjar maybe-configure-fastjar
+maybe-configure-fastjar:
+configure-fastjar: fastjar/Makefile
+
+fastjar/Makefile: config.status
+       @[ -d fastjar ] || mkdir fastjar; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in fastjar; \
+       cd fastjar || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/fastjar"; \
+           libsrcdir="$$s/fastjar";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/fastjar"; \
+           libsrcdir="$$s/fastjar";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-fastjar maybe-all-fastjar
+maybe-all-fastjar:
+all-fastjar: configure-fastjar
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd fastjar; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd fastjar; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-fastjar
 # This module is only tested in a native toolchain.
 check-fastjar:
        @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
-         dir=fastjar; \
-         if [ -f ./fastjar/Makefile ] ; then \
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
            (cd fastjar; $(MAKE) $(FLAGS_TO_PASS) check); \
-         else \
-           true; \
-         fi; \
        fi
 
 
 
-.PHONY: install-fastjar
+.PHONY: install-fastjar maybe-install-fastjar
+maybe-install-fastjar:
 install-fastjar: installdirs
-       @dir=fastjar; \
-       if [ -f ./fastjar/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd fastjar; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd fastjar; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-fileutils
-all-fileutils:
-       @dir=fileutils; \
-       if [ -f ./fileutils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-fileutils maybe-configure-fileutils
+maybe-configure-fileutils:
+configure-fileutils: fileutils/Makefile
+
+fileutils/Makefile: config.status
+       @[ -d fileutils ] || mkdir fileutils; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in fileutils; \
+       cd fileutils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/fileutils"; \
+           libsrcdir="$$s/fileutils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/fileutils"; \
+           libsrcdir="$$s/fileutils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-fileutils maybe-all-fileutils
+maybe-all-fileutils:
+all-fileutils: configure-fileutils
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd fileutils; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd fileutils; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-fileutils
 check-fileutils:
-       @dir=fileutils; \
-       if [ -f ./fileutils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd fileutils; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd fileutils; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-fileutils
+.PHONY: install-fileutils maybe-install-fileutils
+maybe-install-fileutils:
 install-fileutils: installdirs
-       @dir=fileutils; \
-       if [ -f ./fileutils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd fileutils; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd fileutils; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-findutils
-all-findutils:
-       @dir=findutils; \
-       if [ -f ./findutils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-findutils maybe-configure-findutils
+maybe-configure-findutils:
+configure-findutils: findutils/Makefile
+
+findutils/Makefile: config.status
+       @[ -d findutils ] || mkdir findutils; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in findutils; \
+       cd findutils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/findutils"; \
+           libsrcdir="$$s/findutils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/findutils"; \
+           libsrcdir="$$s/findutils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-findutils maybe-all-findutils
+maybe-all-findutils:
+all-findutils: configure-findutils
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd findutils; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd findutils; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-findutils
 check-findutils:
-       @dir=findutils; \
-       if [ -f ./findutils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd findutils; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd findutils; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-findutils
+.PHONY: install-findutils maybe-install-findutils
+maybe-install-findutils:
 install-findutils: installdirs
-       @dir=findutils; \
-       if [ -f ./findutils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd findutils; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd findutils; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-find
-all-find:
-       @dir=find; \
-       if [ -f ./find/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-find maybe-configure-find
+maybe-configure-find:
+configure-find: find/Makefile
+
+find/Makefile: config.status
+       @[ -d find ] || mkdir find; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in find; \
+       cd find || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/find"; \
+           libsrcdir="$$s/find";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/find"; \
+           libsrcdir="$$s/find";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-find maybe-all-find
+maybe-all-find:
+all-find: configure-find
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd find; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd find; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-find
 check-find:
-       @dir=find; \
-       if [ -f ./find/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd find; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd find; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-find
+.PHONY: install-find maybe-install-find
+maybe-install-find:
 install-find: installdirs
-       @dir=find; \
-       if [ -f ./find/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd find; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd find; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-flex
-all-flex:
-       @dir=flex; \
-       if [ -f ./flex/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-flex maybe-configure-flex
+maybe-configure-flex:
+configure-flex: flex/Makefile
+
+flex/Makefile: config.status
+       @[ -d flex ] || mkdir flex; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in flex; \
+       cd flex || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/flex"; \
+           libsrcdir="$$s/flex";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/flex"; \
+           libsrcdir="$$s/flex";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-flex maybe-all-flex
+maybe-all-flex:
+all-flex: configure-flex
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd flex; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd flex; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-flex
 # This module is only tested in a native toolchain.
 check-flex:
        @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
-         dir=flex; \
-         if [ -f ./flex/Makefile ] ; then \
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
            (cd flex; $(MAKE) $(FLAGS_TO_PASS) check); \
-         else \
-           true; \
-         fi; \
        fi
 
 
 
-.PHONY: install-flex
+.PHONY: install-flex maybe-install-flex
+maybe-install-flex:
 install-flex: installdirs
-       @dir=flex; \
-       if [ -f ./flex/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd flex; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd flex; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-gas
-all-gas:
-       @dir=gas; \
-       if [ -f ./gas/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-gas maybe-configure-gas
+maybe-configure-gas:
+configure-gas: gas/Makefile
+
+gas/Makefile: config.status
+       @[ -d gas ] || mkdir gas; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring 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} \
+         || exit 1
+
+.PHONY: all-gas maybe-all-gas
+maybe-all-gas:
+all-gas: configure-gas
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gas; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd gas; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-gas
 check-gas:
-       @dir=gas; \
-       if [ -f ./gas/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gas; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd gas; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-gas
+.PHONY: install-gas maybe-install-gas
+maybe-install-gas:
 install-gas: installdirs
-       @dir=gas; \
-       if [ -f ./gas/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gas; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd gas; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-gawk
-all-gawk:
-       @dir=gawk; \
-       if [ -f ./gawk/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-gawk maybe-configure-gawk
+maybe-configure-gawk:
+configure-gawk: gawk/Makefile
+
+gawk/Makefile: config.status
+       @[ -d gawk ] || mkdir gawk; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in gawk; \
+       cd gawk || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gawk"; \
+           libsrcdir="$$s/gawk";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gawk"; \
+           libsrcdir="$$s/gawk";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-gawk maybe-all-gawk
+maybe-all-gawk:
+all-gawk: configure-gawk
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gawk; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd gawk; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-gawk
 check-gawk:
-       @dir=gawk; \
-       if [ -f ./gawk/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gawk; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd gawk; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-gawk
+.PHONY: install-gawk maybe-install-gawk
+maybe-install-gawk:
 install-gawk: installdirs
-       @dir=gawk; \
-       if [ -f ./gawk/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gawk; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd gawk; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-gettext
-all-gettext:
-       @dir=gettext; \
-       if [ -f ./gettext/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-gettext maybe-configure-gettext
+maybe-configure-gettext:
+configure-gettext: gettext/Makefile
+
+gettext/Makefile: config.status
+       @[ -d gettext ] || mkdir gettext; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in gettext; \
+       cd gettext || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gettext"; \
+           libsrcdir="$$s/gettext";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gettext"; \
+           libsrcdir="$$s/gettext";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-gettext maybe-all-gettext
+maybe-all-gettext:
+all-gettext: configure-gettext
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gettext; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd gettext; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-gettext
 check-gettext:
-       @dir=gettext; \
-       if [ -f ./gettext/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gettext; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd gettext; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-gettext
+.PHONY: install-gettext maybe-install-gettext
+maybe-install-gettext:
 install-gettext: installdirs
-       @dir=gettext; \
-       if [ -f ./gettext/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gettext; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd gettext; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-gnuserv
-all-gnuserv:
-       @dir=gnuserv; \
-       if [ -f ./gnuserv/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-gnuserv maybe-configure-gnuserv
+maybe-configure-gnuserv:
+configure-gnuserv: gnuserv/Makefile
+
+gnuserv/Makefile: config.status
+       @[ -d gnuserv ] || mkdir gnuserv; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in gnuserv; \
+       cd gnuserv || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gnuserv"; \
+           libsrcdir="$$s/gnuserv";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gnuserv"; \
+           libsrcdir="$$s/gnuserv";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-gnuserv maybe-all-gnuserv
+maybe-all-gnuserv:
+all-gnuserv: configure-gnuserv
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gnuserv; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd gnuserv; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-gnuserv
 check-gnuserv:
-       @dir=gnuserv; \
-       if [ -f ./gnuserv/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gnuserv; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd gnuserv; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-gnuserv
+.PHONY: install-gnuserv maybe-install-gnuserv
+maybe-install-gnuserv:
 install-gnuserv: installdirs
-       @dir=gnuserv; \
-       if [ -f ./gnuserv/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gnuserv; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd gnuserv; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-gprof
-all-gprof:
-       @dir=gprof; \
-       if [ -f ./gprof/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-gprof maybe-configure-gprof
+maybe-configure-gprof:
+configure-gprof: gprof/Makefile
+
+gprof/Makefile: config.status
+       @[ -d gprof ] || mkdir gprof; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in gprof; \
+       cd gprof || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gprof"; \
+           libsrcdir="$$s/gprof";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gprof"; \
+           libsrcdir="$$s/gprof";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-gprof maybe-all-gprof
+maybe-all-gprof:
+all-gprof: configure-gprof
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gprof; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd gprof; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-gprof
 check-gprof:
-       @dir=gprof; \
-       if [ -f ./gprof/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gprof; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd gprof; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-gprof
+.PHONY: install-gprof maybe-install-gprof
+maybe-install-gprof:
 install-gprof: installdirs
-       @dir=gprof; \
-       if [ -f ./gprof/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gprof; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd gprof; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-grep
-all-grep:
-       @dir=grep; \
-       if [ -f ./grep/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-grep maybe-configure-grep
+maybe-configure-grep:
+configure-grep: grep/Makefile
+
+grep/Makefile: config.status
+       @[ -d grep ] || mkdir grep; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in grep; \
+       cd grep || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/grep"; \
+           libsrcdir="$$s/grep";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/grep"; \
+           libsrcdir="$$s/grep";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-grep maybe-all-grep
+maybe-all-grep:
+all-grep: configure-grep
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd grep; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd grep; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-grep
 check-grep:
-       @dir=grep; \
-       if [ -f ./grep/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd grep; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd grep; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-grep
+.PHONY: install-grep maybe-install-grep
+maybe-install-grep:
 install-grep: installdirs
-       @dir=grep; \
-       if [ -f ./grep/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd grep; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd grep; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-gzip
-all-gzip:
-       @dir=gzip; \
-       if [ -f ./gzip/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-gzip maybe-configure-gzip
+maybe-configure-gzip:
+configure-gzip: gzip/Makefile
+
+gzip/Makefile: config.status
+       @[ -d gzip ] || mkdir gzip; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in gzip; \
+       cd gzip || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gzip"; \
+           libsrcdir="$$s/gzip";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gzip"; \
+           libsrcdir="$$s/gzip";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-gzip maybe-all-gzip
+maybe-all-gzip:
+all-gzip: configure-gzip
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gzip; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd gzip; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-gzip
 check-gzip:
-       @dir=gzip; \
-       if [ -f ./gzip/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gzip; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd gzip; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-gzip
+.PHONY: install-gzip maybe-install-gzip
+maybe-install-gzip:
 install-gzip: installdirs
-       @dir=gzip; \
-       if [ -f ./gzip/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gzip; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd gzip; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-hello
-all-hello:
-       @dir=hello; \
-       if [ -f ./hello/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-hello maybe-configure-hello
+maybe-configure-hello:
+configure-hello: hello/Makefile
+
+hello/Makefile: config.status
+       @[ -d hello ] || mkdir hello; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in hello; \
+       cd hello || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/hello"; \
+           libsrcdir="$$s/hello";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/hello"; \
+           libsrcdir="$$s/hello";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-hello maybe-all-hello
+maybe-all-hello:
+all-hello: configure-hello
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd hello; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd hello; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-hello
 check-hello:
-       @dir=hello; \
-       if [ -f ./hello/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd hello; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd hello; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-hello
+.PHONY: install-hello maybe-install-hello
+maybe-install-hello:
 install-hello: installdirs
-       @dir=hello; \
-       if [ -f ./hello/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd hello; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd hello; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-indent
-all-indent:
-       @dir=indent; \
-       if [ -f ./indent/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-indent maybe-configure-indent
+maybe-configure-indent:
+configure-indent: indent/Makefile
+
+indent/Makefile: config.status
+       @[ -d indent ] || mkdir indent; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in indent; \
+       cd indent || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/indent"; \
+           libsrcdir="$$s/indent";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/indent"; \
+           libsrcdir="$$s/indent";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-indent maybe-all-indent
+maybe-all-indent:
+all-indent: configure-indent
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd indent; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd indent; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-indent
 check-indent:
-       @dir=indent; \
-       if [ -f ./indent/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd indent; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd indent; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-indent
+.PHONY: install-indent maybe-install-indent
+maybe-install-indent:
 install-indent: installdirs
-       @dir=indent; \
-       if [ -f ./indent/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd indent; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd indent; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-intl
-all-intl:
-       @dir=intl; \
-       if [ -f ./intl/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-intl maybe-configure-intl
+maybe-configure-intl:
+configure-intl: intl/Makefile
+
+intl/Makefile: config.status
+       @[ -d intl ] || mkdir intl; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring 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} \
+         || exit 1
+
+.PHONY: all-intl maybe-all-intl
+maybe-all-intl:
+all-intl: configure-intl
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd intl; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd intl; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-intl
 check-intl:
-       @dir=intl; \
-       if [ -f ./intl/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd intl; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd intl; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-intl
+.PHONY: install-intl maybe-install-intl
+maybe-install-intl:
 install-intl: installdirs
-       @dir=intl; \
-       if [ -f ./intl/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd intl; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd intl; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-tcl
-all-tcl:
-       @dir=tcl; \
-       if [ -f ./tcl/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-tcl maybe-configure-tcl
+maybe-configure-tcl:
+configure-tcl: tcl/Makefile
+
+tcl/Makefile: config.status
+       @[ -d tcl ] || mkdir tcl; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in tcl; \
+       cd tcl || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/tcl"; \
+           libsrcdir="$$s/tcl";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/tcl"; \
+           libsrcdir="$$s/tcl";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-tcl maybe-all-tcl
+maybe-all-tcl:
+all-tcl: configure-tcl
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd tcl; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd tcl; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-tcl
 check-tcl:
-       @dir=tcl; \
-       if [ -f ./tcl/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd tcl; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd tcl; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-tcl
+.PHONY: install-tcl maybe-install-tcl
+maybe-install-tcl:
 install-tcl: installdirs
-       @dir=tcl; \
-       if [ -f ./tcl/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd tcl; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd tcl; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-itcl
-all-itcl:
-       @dir=itcl; \
-       if [ -f ./itcl/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-itcl maybe-configure-itcl
+maybe-configure-itcl:
+configure-itcl: itcl/Makefile
+
+itcl/Makefile: config.status
+       @[ -d itcl ] || mkdir itcl; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in itcl; \
+       cd itcl || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/itcl"; \
+           libsrcdir="$$s/itcl";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/itcl"; \
+           libsrcdir="$$s/itcl";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-itcl maybe-all-itcl
+maybe-all-itcl:
+all-itcl: configure-itcl
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd itcl; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd itcl; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-itcl
 check-itcl:
-       @dir=itcl; \
-       if [ -f ./itcl/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd itcl; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd itcl; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-itcl
+.PHONY: install-itcl maybe-install-itcl
+maybe-install-itcl:
 install-itcl: installdirs
-       @dir=itcl; \
-       if [ -f ./itcl/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd itcl; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd itcl; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-ld
-all-ld:
-       @dir=ld; \
-       if [ -f ./ld/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-ld maybe-configure-ld
+maybe-configure-ld:
+configure-ld: ld/Makefile
+
+ld/Makefile: config.status
+       @[ -d ld ] || mkdir ld; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring 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} \
+         || exit 1
+
+.PHONY: all-ld maybe-all-ld
+maybe-all-ld:
+all-ld: configure-ld
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd ld; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd ld; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-ld
 check-ld:
-       @dir=ld; \
-       if [ -f ./ld/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd ld; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd ld; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-ld
+.PHONY: install-ld maybe-install-ld
+maybe-install-ld:
 install-ld: installdirs
-       @dir=ld; \
-       if [ -f ./ld/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd ld; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd ld; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-libgui
-all-libgui:
-       @dir=libgui; \
-       if [ -f ./libgui/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-libgui maybe-configure-libgui
+maybe-configure-libgui:
+configure-libgui: libgui/Makefile
+
+libgui/Makefile: config.status
+       @[ -d libgui ] || mkdir libgui; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in libgui; \
+       cd libgui || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libgui"; \
+           libsrcdir="$$s/libgui";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libgui"; \
+           libsrcdir="$$s/libgui";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-libgui maybe-all-libgui
+maybe-all-libgui:
+all-libgui: configure-libgui
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd libgui; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd libgui; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-libgui
 check-libgui:
-       @dir=libgui; \
-       if [ -f ./libgui/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd libgui; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd libgui; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-libgui
+.PHONY: install-libgui maybe-install-libgui
+maybe-install-libgui:
 install-libgui: installdirs
-       @dir=libgui; \
-       if [ -f ./libgui/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd libgui; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd libgui; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-libiberty
-all-libiberty:
-       @dir=libiberty; \
-       if [ -f ./libiberty/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-libiberty maybe-configure-libiberty
+maybe-configure-libiberty:
+configure-libiberty: libiberty/Makefile
+
+libiberty/Makefile: config.status
+       @[ -d libiberty ] || mkdir libiberty; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring 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} \
+         || exit 1
+
+.PHONY: all-libiberty maybe-all-libiberty
+maybe-all-libiberty:
+all-libiberty: configure-libiberty
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd libiberty; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd libiberty; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-libiberty
 check-libiberty:
-       @dir=libiberty; \
-       if [ -f ./libiberty/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd libiberty; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd libiberty; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-libiberty
+.PHONY: install-libiberty maybe-install-libiberty
+maybe-install-libiberty:
 install-libiberty: installdirs
-       @dir=libiberty; \
-       if [ -f ./libiberty/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd libiberty; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd libiberty; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-libtool
-all-libtool:
-       @dir=libtool; \
-       if [ -f ./libtool/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-libtool maybe-configure-libtool
+maybe-configure-libtool:
+configure-libtool: libtool/Makefile
+
+libtool/Makefile: config.status
+       @[ -d libtool ] || mkdir libtool; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in libtool; \
+       cd libtool || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libtool"; \
+           libsrcdir="$$s/libtool";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libtool"; \
+           libsrcdir="$$s/libtool";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-libtool maybe-all-libtool
+maybe-all-libtool:
+all-libtool: configure-libtool
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd libtool; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd libtool; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-libtool
 check-libtool:
-       @dir=libtool; \
-       if [ -f ./libtool/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd libtool; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd libtool; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-libtool
+.PHONY: install-libtool maybe-install-libtool
+maybe-install-libtool:
 install-libtool: installdirs
-       @dir=libtool; \
-       if [ -f ./libtool/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd libtool; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd libtool; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-m4
-all-m4:
-       @dir=m4; \
-       if [ -f ./m4/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-m4 maybe-configure-m4
+maybe-configure-m4:
+configure-m4: m4/Makefile
+
+m4/Makefile: config.status
+       @[ -d m4 ] || mkdir m4; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in m4; \
+       cd m4 || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/m4"; \
+           libsrcdir="$$s/m4";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/m4"; \
+           libsrcdir="$$s/m4";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-m4 maybe-all-m4
+maybe-all-m4:
+all-m4: configure-m4
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd m4; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd m4; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-m4
 check-m4:
-       @dir=m4; \
-       if [ -f ./m4/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd m4; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd m4; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-m4
+.PHONY: install-m4 maybe-install-m4
+maybe-install-m4:
 install-m4: installdirs
-       @dir=m4; \
-       if [ -f ./m4/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd m4; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd m4; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-make
-all-make:
-       @dir=make; \
-       if [ -f ./make/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-make maybe-configure-make
+maybe-configure-make:
+configure-make: make/Makefile
+
+make/Makefile: config.status
+       @[ -d make ] || mkdir make; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in make; \
+       cd make || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/make"; \
+           libsrcdir="$$s/make";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/make"; \
+           libsrcdir="$$s/make";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-make maybe-all-make
+maybe-all-make:
+all-make: configure-make
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd make; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd make; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-make
 check-make:
-       @dir=make; \
-       if [ -f ./make/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd make; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd make; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-make
+.PHONY: install-make maybe-install-make
+maybe-install-make:
 install-make: installdirs
-       @dir=make; \
-       if [ -f ./make/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd make; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd make; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-mmalloc
-all-mmalloc:
-       @dir=mmalloc; \
-       if [ -f ./mmalloc/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-mmalloc maybe-configure-mmalloc
+maybe-configure-mmalloc:
+configure-mmalloc: mmalloc/Makefile
+
+mmalloc/Makefile: config.status
+       @[ -d mmalloc ] || mkdir mmalloc; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in mmalloc; \
+       cd mmalloc || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/mmalloc"; \
+           libsrcdir="$$s/mmalloc";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/mmalloc"; \
+           libsrcdir="$$s/mmalloc";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-mmalloc maybe-all-mmalloc
+maybe-all-mmalloc:
+all-mmalloc: configure-mmalloc
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd mmalloc; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd mmalloc; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-mmalloc
@@ -2898,230 +3951,403 @@ check-mmalloc:
 
 
 
-.PHONY: install-mmalloc
+.PHONY: install-mmalloc maybe-install-mmalloc
+maybe-install-mmalloc:
 install-mmalloc: installdirs
-       @dir=mmalloc; \
-       if [ -f ./mmalloc/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd mmalloc; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd mmalloc; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-patch
-all-patch:
-       @dir=patch; \
-       if [ -f ./patch/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-patch maybe-configure-patch
+maybe-configure-patch:
+configure-patch: patch/Makefile
+
+patch/Makefile: config.status
+       @[ -d patch ] || mkdir patch; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in patch; \
+       cd patch || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/patch"; \
+           libsrcdir="$$s/patch";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/patch"; \
+           libsrcdir="$$s/patch";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-patch maybe-all-patch
+maybe-all-patch:
+all-patch: configure-patch
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd patch; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd patch; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-patch
 check-patch:
-       @dir=patch; \
-       if [ -f ./patch/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd patch; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd patch; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-patch
+.PHONY: install-patch maybe-install-patch
+maybe-install-patch:
 install-patch: installdirs
-       @dir=patch; \
-       if [ -f ./patch/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd patch; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd patch; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-perl
-all-perl:
-       @dir=perl; \
-       if [ -f ./perl/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-perl maybe-configure-perl
+maybe-configure-perl:
+configure-perl: perl/Makefile
+
+perl/Makefile: config.status
+       @[ -d perl ] || mkdir perl; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in perl; \
+       cd perl || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/perl"; \
+           libsrcdir="$$s/perl";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/perl"; \
+           libsrcdir="$$s/perl";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-perl maybe-all-perl
+maybe-all-perl:
+all-perl: configure-perl
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd perl; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd perl; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-perl
 check-perl:
-       @dir=perl; \
-       if [ -f ./perl/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd perl; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd perl; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-perl
+.PHONY: install-perl maybe-install-perl
+maybe-install-perl:
 install-perl: installdirs
-       @dir=perl; \
-       if [ -f ./perl/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd perl; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd perl; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-prms
-all-prms:
-       @dir=prms; \
-       if [ -f ./prms/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-prms maybe-configure-prms
+maybe-configure-prms:
+configure-prms: prms/Makefile
+
+prms/Makefile: config.status
+       @[ -d prms ] || mkdir prms; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in prms; \
+       cd prms || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/prms"; \
+           libsrcdir="$$s/prms";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/prms"; \
+           libsrcdir="$$s/prms";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-prms maybe-all-prms
+maybe-all-prms:
+all-prms: configure-prms
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd prms; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd prms; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-prms
 check-prms:
-       @dir=prms; \
-       if [ -f ./prms/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd prms; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd prms; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-prms
+.PHONY: install-prms maybe-install-prms
+maybe-install-prms:
 install-prms: installdirs
-       @dir=prms; \
-       if [ -f ./prms/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd prms; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd prms; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-rcs
-all-rcs:
-       @dir=rcs; \
-       if [ -f ./rcs/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-rcs maybe-configure-rcs
+maybe-configure-rcs:
+configure-rcs: rcs/Makefile
+
+rcs/Makefile: config.status
+       @[ -d rcs ] || mkdir rcs; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in rcs; \
+       cd rcs || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/rcs"; \
+           libsrcdir="$$s/rcs";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/rcs"; \
+           libsrcdir="$$s/rcs";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-rcs maybe-all-rcs
+maybe-all-rcs:
+all-rcs: configure-rcs
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd rcs; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd rcs; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-rcs
 check-rcs:
-       @dir=rcs; \
-       if [ -f ./rcs/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd rcs; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd rcs; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-rcs
+.PHONY: install-rcs maybe-install-rcs
+maybe-install-rcs:
 install-rcs: installdirs
-       @dir=rcs; \
-       if [ -f ./rcs/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd rcs; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd rcs; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-readline
-all-readline:
-       @dir=readline; \
-       if [ -f ./readline/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-readline maybe-configure-readline
+maybe-configure-readline:
+configure-readline: readline/Makefile
+
+readline/Makefile: config.status
+       @[ -d readline ] || mkdir readline; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in readline; \
+       cd readline || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/readline"; \
+           libsrcdir="$$s/readline";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/readline"; \
+           libsrcdir="$$s/readline";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-readline maybe-all-readline
+maybe-all-readline:
+all-readline: configure-readline
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd readline; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd readline; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-readline
 check-readline:
-       @dir=readline; \
-       if [ -f ./readline/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd readline; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd readline; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-readline
+.PHONY: install-readline maybe-install-readline
+maybe-install-readline:
 install-readline: installdirs
-       @dir=readline; \
-       if [ -f ./readline/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd readline; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd readline; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-release
-all-release:
-       @dir=release; \
-       if [ -f ./release/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-release maybe-configure-release
+maybe-configure-release:
+configure-release: release/Makefile
+
+release/Makefile: config.status
+       @[ -d release ] || mkdir release; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in release; \
+       cd release || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/release"; \
+           libsrcdir="$$s/release";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/release"; \
+           libsrcdir="$$s/release";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-release maybe-all-release
+maybe-all-release:
+all-release: configure-release
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd release; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd release; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-release
@@ -3129,575 +4355,1010 @@ check-release:
 
 
 
-.PHONY: install-release
+.PHONY: install-release maybe-install-release
+maybe-install-release:
 install-release:
 
 
-.PHONY: all-recode
-all-recode:
-       @dir=recode; \
-       if [ -f ./recode/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-recode maybe-configure-recode
+maybe-configure-recode:
+configure-recode: recode/Makefile
+
+recode/Makefile: config.status
+       @[ -d recode ] || mkdir recode; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in recode; \
+       cd recode || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/recode"; \
+           libsrcdir="$$s/recode";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/recode"; \
+           libsrcdir="$$s/recode";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-recode maybe-all-recode
+maybe-all-recode:
+all-recode: configure-recode
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd recode; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd recode; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-recode
 check-recode:
-       @dir=recode; \
-       if [ -f ./recode/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd recode; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd recode; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-recode
+.PHONY: install-recode maybe-install-recode
+maybe-install-recode:
 install-recode: installdirs
-       @dir=recode; \
-       if [ -f ./recode/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd recode; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd recode; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-sed
-all-sed:
-       @dir=sed; \
-       if [ -f ./sed/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-sed maybe-configure-sed
+maybe-configure-sed:
+configure-sed: sed/Makefile
+
+sed/Makefile: config.status
+       @[ -d sed ] || mkdir sed; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in sed; \
+       cd sed || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/sed"; \
+           libsrcdir="$$s/sed";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/sed"; \
+           libsrcdir="$$s/sed";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-sed maybe-all-sed
+maybe-all-sed:
+all-sed: configure-sed
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd sed; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd sed; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-sed
 check-sed:
-       @dir=sed; \
-       if [ -f ./sed/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd sed; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd sed; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-sed
+.PHONY: install-sed maybe-install-sed
+maybe-install-sed:
 install-sed: installdirs
-       @dir=sed; \
-       if [ -f ./sed/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd sed; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd sed; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-send-pr
-all-send-pr:
-       @dir=send-pr; \
-       if [ -f ./send-pr/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-send-pr maybe-configure-send-pr
+maybe-configure-send-pr:
+configure-send-pr: send-pr/Makefile
+
+send-pr/Makefile: config.status
+       @[ -d send-pr ] || mkdir send-pr; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in send-pr; \
+       cd send-pr || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/send-pr"; \
+           libsrcdir="$$s/send-pr";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/send-pr"; \
+           libsrcdir="$$s/send-pr";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-send-pr maybe-all-send-pr
+maybe-all-send-pr:
+all-send-pr: configure-send-pr
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd send-pr; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd send-pr; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-send-pr
 check-send-pr:
-       @dir=send-pr; \
-       if [ -f ./send-pr/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd send-pr; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd send-pr; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-send-pr
+.PHONY: install-send-pr maybe-install-send-pr
+maybe-install-send-pr:
 install-send-pr: installdirs
-       @dir=send-pr; \
-       if [ -f ./send-pr/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd send-pr; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd send-pr; $(MAKE) $(FLAGS_TO_PASS) install)
+
 
+.PHONY: configure-shellutils maybe-configure-shellutils
+maybe-configure-shellutils:
+configure-shellutils: shellutils/Makefile
+
+shellutils/Makefile: config.status
+       @[ -d shellutils ] || mkdir shellutils; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in shellutils; \
+       cd shellutils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/shellutils"; \
+           libsrcdir="$$s/shellutils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/shellutils"; \
+           libsrcdir="$$s/shellutils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
 
-.PHONY: all-shellutils
-all-shellutils:
-       @dir=shellutils; \
-       if [ -f ./shellutils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: all-shellutils maybe-all-shellutils
+maybe-all-shellutils:
+all-shellutils: configure-shellutils
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd shellutils; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd shellutils; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-shellutils
 check-shellutils:
-       @dir=shellutils; \
-       if [ -f ./shellutils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd shellutils; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd shellutils; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-shellutils
+.PHONY: install-shellutils maybe-install-shellutils
+maybe-install-shellutils:
 install-shellutils: installdirs
-       @dir=shellutils; \
-       if [ -f ./shellutils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd shellutils; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd shellutils; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-sid
-all-sid:
-       @dir=sid; \
-       if [ -f ./sid/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-sid maybe-configure-sid
+maybe-configure-sid:
+configure-sid: sid/Makefile
+
+sid/Makefile: config.status
+       @[ -d sid ] || mkdir sid; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in sid; \
+       cd sid || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/sid"; \
+           libsrcdir="$$s/sid";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/sid"; \
+           libsrcdir="$$s/sid";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-sid maybe-all-sid
+maybe-all-sid:
+all-sid: configure-sid
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd sid; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd sid; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-sid
 check-sid:
-       @dir=sid; \
-       if [ -f ./sid/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd sid; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd sid; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-sid
+.PHONY: install-sid maybe-install-sid
+maybe-install-sid:
 install-sid: installdirs
-       @dir=sid; \
-       if [ -f ./sid/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd sid; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd sid; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-sim
-all-sim:
-       @dir=sim; \
-       if [ -f ./sim/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-sim maybe-configure-sim
+maybe-configure-sim:
+configure-sim: sim/Makefile
+
+sim/Makefile: config.status
+       @[ -d sim ] || mkdir sim; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in sim; \
+       cd sim || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/sim"; \
+           libsrcdir="$$s/sim";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/sim"; \
+           libsrcdir="$$s/sim";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-sim maybe-all-sim
+maybe-all-sim:
+all-sim: configure-sim
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd sim; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd sim; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-sim
 check-sim:
-       @dir=sim; \
-       if [ -f ./sim/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd sim; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd sim; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-sim
+.PHONY: install-sim maybe-install-sim
+maybe-install-sim:
 install-sim: installdirs
-       @dir=sim; \
-       if [ -f ./sim/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd sim; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd sim; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-snavigator
-all-snavigator:
-       @dir=snavigator; \
-       if [ -f ./snavigator/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-snavigator maybe-configure-snavigator
+maybe-configure-snavigator:
+configure-snavigator: snavigator/Makefile
+
+snavigator/Makefile: config.status
+       @[ -d snavigator ] || mkdir snavigator; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in snavigator; \
+       cd snavigator || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/snavigator"; \
+           libsrcdir="$$s/snavigator";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/snavigator"; \
+           libsrcdir="$$s/snavigator";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-snavigator maybe-all-snavigator
+maybe-all-snavigator:
+all-snavigator: configure-snavigator
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd snavigator; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd snavigator; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-snavigator
 check-snavigator:
-       @dir=snavigator; \
-       if [ -f ./snavigator/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd snavigator; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd snavigator; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-snavigator
+.PHONY: install-snavigator maybe-install-snavigator
+maybe-install-snavigator:
 install-snavigator: installdirs
-       @dir=snavigator; \
-       if [ -f ./snavigator/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd snavigator; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd snavigator; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-tar
-all-tar:
-       @dir=tar; \
-       if [ -f ./tar/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-tar maybe-configure-tar
+maybe-configure-tar:
+configure-tar: tar/Makefile
+
+tar/Makefile: config.status
+       @[ -d tar ] || mkdir tar; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in tar; \
+       cd tar || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/tar"; \
+           libsrcdir="$$s/tar";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/tar"; \
+           libsrcdir="$$s/tar";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-tar maybe-all-tar
+maybe-all-tar:
+all-tar: configure-tar
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd tar; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd tar; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-tar
 check-tar:
-       @dir=tar; \
-       if [ -f ./tar/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd tar; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd tar; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-tar
+.PHONY: install-tar maybe-install-tar
+maybe-install-tar:
 install-tar: installdirs
-       @dir=tar; \
-       if [ -f ./tar/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd tar; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd tar; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-texinfo
-all-texinfo:
-       @dir=texinfo; \
-       if [ -f ./texinfo/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-texinfo maybe-configure-texinfo
+maybe-configure-texinfo:
+configure-texinfo: texinfo/Makefile
+
+texinfo/Makefile: config.status
+       @[ -d texinfo ] || mkdir texinfo; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in texinfo; \
+       cd texinfo || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/texinfo"; \
+           libsrcdir="$$s/texinfo";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/texinfo"; \
+           libsrcdir="$$s/texinfo";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-texinfo maybe-all-texinfo
+maybe-all-texinfo:
+all-texinfo: configure-texinfo
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd texinfo; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd texinfo; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-texinfo
 check-texinfo:
-       @dir=texinfo; \
-       if [ -f ./texinfo/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd texinfo; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd texinfo; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-texinfo
+.PHONY: install-texinfo maybe-install-texinfo
+maybe-install-texinfo:
 install-texinfo:
 
 
-.PHONY: all-textutils
-all-textutils:
-       @dir=textutils; \
-       if [ -f ./textutils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-textutils maybe-configure-textutils
+maybe-configure-textutils:
+configure-textutils: textutils/Makefile
+
+textutils/Makefile: config.status
+       @[ -d textutils ] || mkdir textutils; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in textutils; \
+       cd textutils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/textutils"; \
+           libsrcdir="$$s/textutils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/textutils"; \
+           libsrcdir="$$s/textutils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-textutils maybe-all-textutils
+maybe-all-textutils:
+all-textutils: configure-textutils
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd textutils; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd textutils; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-textutils
 check-textutils:
-       @dir=textutils; \
-       if [ -f ./textutils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd textutils; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd textutils; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-textutils
+.PHONY: install-textutils maybe-install-textutils
+maybe-install-textutils:
 install-textutils: installdirs
-       @dir=textutils; \
-       if [ -f ./textutils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd textutils; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd textutils; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-time
-all-time:
-       @dir=time; \
-       if [ -f ./time/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-time maybe-configure-time
+maybe-configure-time:
+configure-time: time/Makefile
+
+time/Makefile: config.status
+       @[ -d time ] || mkdir time; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in time; \
+       cd time || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/time"; \
+           libsrcdir="$$s/time";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/time"; \
+           libsrcdir="$$s/time";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-time maybe-all-time
+maybe-all-time:
+all-time: configure-time
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd time; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd time; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-time
 check-time:
-       @dir=time; \
-       if [ -f ./time/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd time; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd time; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-time
+.PHONY: install-time maybe-install-time
+maybe-install-time:
 install-time: installdirs
-       @dir=time; \
-       if [ -f ./time/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd time; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd time; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-uudecode
-all-uudecode:
-       @dir=uudecode; \
-       if [ -f ./uudecode/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-uudecode maybe-configure-uudecode
+maybe-configure-uudecode:
+configure-uudecode: uudecode/Makefile
+
+uudecode/Makefile: config.status
+       @[ -d uudecode ] || mkdir uudecode; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in uudecode; \
+       cd uudecode || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/uudecode"; \
+           libsrcdir="$$s/uudecode";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/uudecode"; \
+           libsrcdir="$$s/uudecode";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-uudecode maybe-all-uudecode
+maybe-all-uudecode:
+all-uudecode: configure-uudecode
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd uudecode; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd uudecode; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-uudecode
 check-uudecode:
-       @dir=uudecode; \
-       if [ -f ./uudecode/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd uudecode; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd uudecode; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-uudecode
+.PHONY: install-uudecode maybe-install-uudecode
+maybe-install-uudecode:
 install-uudecode: installdirs
-       @dir=uudecode; \
-       if [ -f ./uudecode/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd uudecode; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd uudecode; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-wdiff
-all-wdiff:
-       @dir=wdiff; \
-       if [ -f ./wdiff/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-wdiff maybe-configure-wdiff
+maybe-configure-wdiff:
+configure-wdiff: wdiff/Makefile
+
+wdiff/Makefile: config.status
+       @[ -d wdiff ] || mkdir wdiff; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in wdiff; \
+       cd wdiff || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/wdiff"; \
+           libsrcdir="$$s/wdiff";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/wdiff"; \
+           libsrcdir="$$s/wdiff";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-wdiff maybe-all-wdiff
+maybe-all-wdiff:
+all-wdiff: configure-wdiff
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd wdiff; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd wdiff; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-wdiff
 check-wdiff:
-       @dir=wdiff; \
-       if [ -f ./wdiff/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd wdiff; $(MAKE) $(FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd wdiff; $(MAKE) $(FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-wdiff
+.PHONY: install-wdiff maybe-install-wdiff
+maybe-install-wdiff:
 install-wdiff: installdirs
-       @dir=wdiff; \
-       if [ -f ./wdiff/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd wdiff; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd wdiff; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-zip
-all-zip:
-       @dir=zip; \
-       if [ -f ./zip/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-zip maybe-configure-zip
+maybe-configure-zip:
+configure-zip: zip/Makefile
+
+zip/Makefile: config.status
+       @[ -d zip ] || mkdir zip; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in zip; \
+       cd zip || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/zip"; \
+           libsrcdir="$$s/zip";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/zip"; \
+           libsrcdir="$$s/zip";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-zip maybe-all-zip
+maybe-all-zip:
+all-zip: configure-zip
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd zip; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd zip; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-zip
 # This module is only tested in a native toolchain.
 check-zip:
        @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
-         dir=zip; \
-         if [ -f ./zip/Makefile ] ; then \
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
            (cd zip; $(MAKE) $(FLAGS_TO_PASS) check); \
-         else \
-           true; \
-         fi; \
        fi
 
 
 
-.PHONY: install-zip
+.PHONY: install-zip maybe-install-zip
+maybe-install-zip:
 install-zip: installdirs
-       @dir=zip; \
-       if [ -f ./zip/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd zip; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd zip; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-zlib
-all-zlib:
-       @dir=zlib; \
-       if [ -f ./zlib/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-zlib maybe-configure-zlib
+maybe-configure-zlib:
+configure-zlib: zlib/Makefile
+
+zlib/Makefile: config.status
+       @[ -d zlib ] || mkdir zlib; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring 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} \
+         || exit 1
+
+.PHONY: all-zlib maybe-all-zlib
+maybe-all-zlib:
+all-zlib: configure-zlib
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd zlib; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd zlib; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-zlib
@@ -3705,261 +5366,467 @@ check-zlib:
 
 
 
-.PHONY: install-zlib
+.PHONY: install-zlib maybe-install-zlib
+maybe-install-zlib:
 install-zlib:
 
 
-.PHONY: all-gdb
-all-gdb:
-       @dir=gdb; \
-       if [ -f ./gdb/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-gdb maybe-configure-gdb
+maybe-configure-gdb:
+configure-gdb: gdb/Makefile
+
+gdb/Makefile: config.status
+       @[ -d gdb ] || mkdir gdb; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in gdb; \
+       cd gdb || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/gdb"; \
+           libsrcdir="$$s/gdb";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/gdb"; \
+           libsrcdir="$$s/gdb";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-gdb maybe-all-gdb
+maybe-all-gdb:
+all-gdb: configure-gdb
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gdb; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd gdb; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
 
 
 .PHONY: check-gdb
 check-gdb:
-       @dir=gdb; \
-       if [ -f ./gdb/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gdb; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd gdb; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-gdb
+.PHONY: install-gdb maybe-install-gdb
+maybe-install-gdb:
 install-gdb: installdirs
-       @dir=gdb; \
-       if [ -f ./gdb/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd gdb; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd gdb; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install)
 
 
-.PHONY: all-expect
-all-expect:
-       @dir=expect; \
-       if [ -f ./expect/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-expect maybe-configure-expect
+maybe-configure-expect:
+configure-expect: expect/Makefile
+
+expect/Makefile: config.status
+       @[ -d expect ] || mkdir expect; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in expect; \
+       cd expect || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/expect"; \
+           libsrcdir="$$s/expect";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/expect"; \
+           libsrcdir="$$s/expect";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-expect maybe-all-expect
+maybe-all-expect:
+all-expect: configure-expect
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd expect; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd expect; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
 
 
 .PHONY: check-expect
 check-expect:
-       @dir=expect; \
-       if [ -f ./expect/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd expect; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd expect; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-expect
+.PHONY: install-expect maybe-install-expect
+maybe-install-expect:
 install-expect: installdirs
-       @dir=expect; \
-       if [ -f ./expect/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd expect; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd expect; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install)
 
 
-.PHONY: all-guile
-all-guile:
-       @dir=guile; \
-       if [ -f ./guile/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-guile maybe-configure-guile
+maybe-configure-guile:
+configure-guile: guile/Makefile
+
+guile/Makefile: config.status
+       @[ -d guile ] || mkdir guile; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in guile; \
+       cd guile || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/guile"; \
+           libsrcdir="$$s/guile";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/guile"; \
+           libsrcdir="$$s/guile";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-guile maybe-all-guile
+maybe-all-guile:
+all-guile: configure-guile
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd guile; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd guile; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
 
 
 .PHONY: check-guile
 check-guile:
-       @dir=guile; \
-       if [ -f ./guile/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd guile; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd guile; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-guile
+.PHONY: install-guile maybe-install-guile
+maybe-install-guile:
 install-guile: installdirs
-       @dir=guile; \
-       if [ -f ./guile/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd guile; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd guile; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install)
 
 
-.PHONY: all-tclX
-all-tclX:
-       @dir=tclX; \
-       if [ -f ./tclX/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-tclX maybe-configure-tclX
+maybe-configure-tclX:
+configure-tclX: tclX/Makefile
+
+tclX/Makefile: config.status
+       @[ -d tclX ] || mkdir tclX; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in tclX; \
+       cd tclX || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/tclX"; \
+           libsrcdir="$$s/tclX";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/tclX"; \
+           libsrcdir="$$s/tclX";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-tclX maybe-all-tclX
+maybe-all-tclX:
+all-tclX: configure-tclX
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd tclX; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd tclX; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
 
 
 .PHONY: check-tclX
 check-tclX:
-       @dir=tclX; \
-       if [ -f ./tclX/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd tclX; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd tclX; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-tclX
+.PHONY: install-tclX maybe-install-tclX
+maybe-install-tclX:
 install-tclX: installdirs
-       @dir=tclX; \
-       if [ -f ./tclX/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd tclX; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd tclX; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install)
 
 
-.PHONY: all-tk
-all-tk:
-       @dir=tk; \
-       if [ -f ./tk/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-tk maybe-configure-tk
+maybe-configure-tk:
+configure-tk: tk/Makefile
+
+tk/Makefile: config.status
+       @[ -d tk ] || mkdir tk; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in tk; \
+       cd tk || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/tk"; \
+           libsrcdir="$$s/tk";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/tk"; \
+           libsrcdir="$$s/tk";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-tk maybe-all-tk
+maybe-all-tk:
+all-tk: configure-tk
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd tk; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd tk; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
 
 
 .PHONY: check-tk
 check-tk:
-       @dir=tk; \
-       if [ -f ./tk/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd tk; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd tk; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-tk
+.PHONY: install-tk maybe-install-tk
+maybe-install-tk:
 install-tk: installdirs
-       @dir=tk; \
-       if [ -f ./tk/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd tk; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd tk; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install)
 
 
-.PHONY: all-tix
-all-tix:
-       @dir=tix; \
-       if [ -f ./tix/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-tix maybe-configure-tix
+maybe-configure-tix:
+configure-tix: tix/Makefile
+
+tix/Makefile: config.status
+       @[ -d tix ] || mkdir tix; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in tix; \
+       cd tix || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/tix"; \
+           libsrcdir="$$s/tix";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/tix"; \
+           libsrcdir="$$s/tix";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-tix maybe-all-tix
+maybe-all-tix:
+all-tix: configure-tix
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd tix; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd tix; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all)
 
 
 .PHONY: check-tix
 check-tix:
-       @dir=tix; \
-       if [ -f ./tix/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd tix; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \
-       else \
-         true; \
-       fi
+         (cd tix; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check)
 
 
 
-.PHONY: install-tix
+.PHONY: install-tix maybe-install-tix
+maybe-install-tix:
 install-tix: installdirs
-       @dir=tix; \
-       if [ -f ./tix/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd tix; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd tix; $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install)
 
 
-.PHONY: all-libtermcap
-all-libtermcap:
-       @dir=libtermcap; \
-       if [ -f ./libtermcap/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-libtermcap maybe-configure-libtermcap
+maybe-configure-libtermcap:
+configure-libtermcap: libtermcap/Makefile
+
+libtermcap/Makefile: config.status
+       @[ -d libtermcap ] || mkdir libtermcap; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in libtermcap; \
+       cd libtermcap || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/libtermcap"; \
+           libsrcdir="$$s/libtermcap";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/libtermcap"; \
+           libsrcdir="$$s/libtermcap";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-libtermcap maybe-all-libtermcap
+maybe-all-libtermcap:
+all-libtermcap: configure-libtermcap
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd libtermcap; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd libtermcap; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-libtermcap
@@ -3967,30 +5834,63 @@ check-libtermcap:
 
 
 
-.PHONY: install-libtermcap
+.PHONY: install-libtermcap maybe-install-libtermcap
+maybe-install-libtermcap:
 install-libtermcap: installdirs
-       @dir=libtermcap; \
-       if [ -f ./libtermcap/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd libtermcap; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd libtermcap; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-utils
-all-utils:
-       @dir=utils; \
-       if [ -f ./utils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+.PHONY: configure-utils maybe-configure-utils
+maybe-configure-utils:
+configure-utils: utils/Makefile
+
+utils/Makefile: config.status
+       @[ -d utils ] || mkdir utils; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring in utils; \
+       cd utils || exit 1; \
+       case $(srcdir) in \
+         \.) \
+           srcdiroption="--srcdir=."; \
+           libsrcdir=".";; \
+         /* | [A-Za-z]:[\\/]*) \
+           srcdiroption="--srcdir=$(srcdir)/utils"; \
+           libsrcdir="$$s/utils";; \
+         *) \
+           srcdiroption="--srcdir=../$(srcdir)/utils"; \
+           libsrcdir="$$s/utils";; \
+       esac; \
+       $(SHELL) $${libsrcdir}/configure \
+         $(HOST_CONFIGARGS) $${srcdiroption} \
+         || exit 1
+
+.PHONY: all-utils maybe-all-utils
+maybe-all-utils:
+all-utils: configure-utils
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd utils; $(MAKE) $(FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd utils; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-utils
@@ -3998,50 +5898,34 @@ check-utils:
 
 
 
-.PHONY: install-utils
+.PHONY: install-utils maybe-install-utils
+maybe-install-utils:
 install-utils: installdirs
-       @dir=utils; \
-       if [ -f ./utils/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd utils; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+         (cd utils; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
 
-# These rules are used to build the modules which are built with the target
-# tools.  To make foo-X means to cd to X and make foo.
+# ---------------------------------------
+# Modules which run on the target machine
+# ---------------------------------------
 
-.PHONY: configure-target-libstdc++-v3
-configure-target-libstdc++-v3:
-       @if [ -d $(TARGET_SUBDIR)/libstdc++-v3 ]; then \
-         r=`${PWD}`; export r; \
-         $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libstdc++-v3/tmpmulti.out 2> /dev/null; \
-         if [ -s $(TARGET_SUBDIR)/libstdc++-v3/tmpmulti.out ]; then \
-           if [ -f $(TARGET_SUBDIR)/libstdc++-v3/multilib.out ]; then \
-             if cmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out $(TARGET_SUBDIR)/libstdc++-v3/tmpmulti.out > /dev/null; then \
-               rm -f $(TARGET_SUBDIR)/libstdc++-v3/tmpmulti.out; \
-             else \
-               echo "Multilibs changed for libstdc++-v3, reconfiguring"; \
-               rm -f $(TARGET_SUBDIR)/libstdc++-v3/multilib.out $(TARGET_SUBDIR)/libstdc++-v3/Makefile; \
-               mv $(TARGET_SUBDIR)/libstdc++-v3/tmpmulti.out $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
-             fi; \
-           else \
-             mv $(TARGET_SUBDIR)/libstdc++-v3/tmpmulti.out $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
-           fi; \
-         fi; \
-       fi; exit 0      # break command into two pieces
-       @dir=libstdc++-v3 ; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " libstdc++-v3 " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/libstdc++-v3 ]; then \
-           [ -d $(TARGET_SUBDIR)/libstdc++-v3 ] || mkdir $(TARGET_SUBDIR)/libstdc++-v3;\
+.PHONY: configure-target-libstdc++-v3 maybe-configure-target-libstdc++-v3
+maybe-configure-target-libstdc++-v3:
+configure-target-libstdc++-v3: $(TARGET_SUBDIR)/libstdc++-v3/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/libstdc++-v3/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/libstdc++-v3 ] || mkdir $(TARGET_SUBDIR)/libstdc++-v3;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for libstdc++-v3"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libstdc++-v3/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/libstdc++-v3/Makefile: config.status $(TARGET_SUBDIR)/libstdc++-v3/multilib.out
+       @[ -d $(TARGET_SUBDIR)/libstdc++-v3 ] || mkdir $(TARGET_SUBDIR)/libstdc++-v3;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -4049,7 +5933,8 @@ configure-target-libstdc++-v3:
            AS="$(AS_FOR_TARGET)"; export AS; \
            CC="$(CC_FOR_TARGET)"; export CC; \
            CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
-           CXX="$(CXX_FOR_TARGET)"; export CXX; \
+           CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
+           CXX="$(RAW_CXX_FOR_TARGET)"; export CXX; \
            CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
            GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
            DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
@@ -4093,99 +5978,54 @@ configure-target-libstdc++-v3:
              srcdiroption="--srcdir=$${topdir}/libstdc++-v3"; \
              libsrcdir="$$s/libstdc++-v3"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir libstdc++-v3 || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-.PHONY: all-target-libstdc++-v3
-all-target-libstdc++-v3:
-       @dir=libstdc++-v3 ; \
-       if [ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-libstdc++-v3 maybe-all-target-libstdc++-v3
+maybe-all-target-libstdc++-v3:
+all-target-libstdc++-v3: configure-target-libstdc++-v3
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libstdc++-v3; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  all)
 
 .PHONY: check-target-libstdc++-v3
 check-target-libstdc++-v3:
-       @dir=libstdc++-v3 ; \
-       if [ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libstdc++-v3; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  check)
 
-\
-.PHONY: install-target-libstdc++-v3
+
+.PHONY: install-target-libstdc++-v3 maybe-install-target-libstdc++-v3
+maybe-install-target-libstdc++-v3:
 install-target-libstdc++-v3: installdirs
-       @dir=libstdc++-v3 ; \
-       if [ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libstdc++-v3; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
 
-.PHONY: configure-target-newlib
-configure-target-newlib:
-       @if [ -d $(TARGET_SUBDIR)/newlib ]; then \
-         r=`${PWD}`; export r; \
-         $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/newlib/tmpmulti.out 2> /dev/null; \
-         if [ -s $(TARGET_SUBDIR)/newlib/tmpmulti.out ]; then \
-           if [ -f $(TARGET_SUBDIR)/newlib/multilib.out ]; then \
-             if cmp $(TARGET_SUBDIR)/newlib/multilib.out $(TARGET_SUBDIR)/newlib/tmpmulti.out > /dev/null; then \
-               rm -f $(TARGET_SUBDIR)/newlib/tmpmulti.out; \
-             else \
-               echo "Multilibs changed for newlib, reconfiguring"; \
-               rm -f $(TARGET_SUBDIR)/newlib/multilib.out $(TARGET_SUBDIR)/newlib/Makefile; \
-               mv $(TARGET_SUBDIR)/newlib/tmpmulti.out $(TARGET_SUBDIR)/newlib/multilib.out; \
-             fi; \
-           else \
-             mv $(TARGET_SUBDIR)/newlib/tmpmulti.out $(TARGET_SUBDIR)/newlib/multilib.out; \
-           fi; \
-         fi; \
-       fi; exit 0      # break command into two pieces
-       @dir=newlib ; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/newlib/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " newlib " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/newlib ]; then \
-           [ -d $(TARGET_SUBDIR)/newlib ] || mkdir $(TARGET_SUBDIR)/newlib;\
+.PHONY: configure-target-newlib maybe-configure-target-newlib
+maybe-configure-target-newlib:
+configure-target-newlib: $(TARGET_SUBDIR)/newlib/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/newlib/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/newlib ] || mkdir $(TARGET_SUBDIR)/newlib;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for newlib"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/newlib/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/newlib/Makefile: config.status $(TARGET_SUBDIR)/newlib/multilib.out
+       @[ -d $(TARGET_SUBDIR)/newlib ] || mkdir $(TARGET_SUBDIR)/newlib;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -4237,99 +6077,54 @@ configure-target-newlib:
              srcdiroption="--srcdir=$${topdir}/newlib"; \
              libsrcdir="$$s/newlib"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir newlib || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-.PHONY: all-target-newlib
-all-target-newlib:
-       @dir=newlib ; \
-       if [ -f $(TARGET_SUBDIR)/newlib/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-newlib maybe-all-target-newlib
+maybe-all-target-newlib:
+all-target-newlib: configure-target-newlib
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/newlib; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
 
 .PHONY: check-target-newlib
 check-target-newlib:
-       @dir=newlib ; \
-       if [ -f $(TARGET_SUBDIR)/newlib/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/newlib; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
 
-\
-.PHONY: install-target-newlib
+
+.PHONY: install-target-newlib maybe-install-target-newlib
+maybe-install-target-newlib:
 install-target-newlib: installdirs
-       @dir=newlib ; \
-       if [ -f $(TARGET_SUBDIR)/newlib/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/newlib; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
 
-.PHONY: configure-target-libf2c
-configure-target-libf2c:
-       @if [ -d $(TARGET_SUBDIR)/libf2c ]; then \
-         r=`${PWD}`; export r; \
-         $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libf2c/tmpmulti.out 2> /dev/null; \
-         if [ -s $(TARGET_SUBDIR)/libf2c/tmpmulti.out ]; then \
-           if [ -f $(TARGET_SUBDIR)/libf2c/multilib.out ]; then \
-             if cmp $(TARGET_SUBDIR)/libf2c/multilib.out $(TARGET_SUBDIR)/libf2c/tmpmulti.out > /dev/null; then \
-               rm -f $(TARGET_SUBDIR)/libf2c/tmpmulti.out; \
-             else \
-               echo "Multilibs changed for libf2c, reconfiguring"; \
-               rm -f $(TARGET_SUBDIR)/libf2c/multilib.out $(TARGET_SUBDIR)/libf2c/Makefile; \
-               mv $(TARGET_SUBDIR)/libf2c/tmpmulti.out $(TARGET_SUBDIR)/libf2c/multilib.out; \
-             fi; \
-           else \
-             mv $(TARGET_SUBDIR)/libf2c/tmpmulti.out $(TARGET_SUBDIR)/libf2c/multilib.out; \
-           fi; \
-         fi; \
-       fi; exit 0      # break command into two pieces
-       @dir=libf2c ; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/libf2c/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " libf2c " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/libf2c ]; then \
-           [ -d $(TARGET_SUBDIR)/libf2c ] || mkdir $(TARGET_SUBDIR)/libf2c;\
+.PHONY: configure-target-libf2c maybe-configure-target-libf2c
+maybe-configure-target-libf2c:
+configure-target-libf2c: $(TARGET_SUBDIR)/libf2c/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/libf2c/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/libf2c ] || mkdir $(TARGET_SUBDIR)/libf2c;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for libf2c"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libf2c/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/libf2c/Makefile: config.status $(TARGET_SUBDIR)/libf2c/multilib.out
+       @[ -d $(TARGET_SUBDIR)/libf2c ] || mkdir $(TARGET_SUBDIR)/libf2c;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -4381,99 +6176,54 @@ configure-target-libf2c:
              srcdiroption="--srcdir=$${topdir}/libf2c"; \
              libsrcdir="$$s/libf2c"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir libf2c || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-.PHONY: all-target-libf2c
-all-target-libf2c:
-       @dir=libf2c ; \
-       if [ -f $(TARGET_SUBDIR)/libf2c/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-libf2c maybe-all-target-libf2c
+maybe-all-target-libf2c:
+all-target-libf2c: configure-target-libf2c
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libf2c; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
 
 .PHONY: check-target-libf2c
 check-target-libf2c:
-       @dir=libf2c ; \
-       if [ -f $(TARGET_SUBDIR)/libf2c/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libf2c; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
 
-\
-.PHONY: install-target-libf2c
+
+.PHONY: install-target-libf2c maybe-install-target-libf2c
+maybe-install-target-libf2c:
 install-target-libf2c: installdirs
-       @dir=libf2c ; \
-       if [ -f $(TARGET_SUBDIR)/libf2c/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libf2c; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
 
-.PHONY: configure-target-libobjc
-configure-target-libobjc:
-       @if [ -d $(TARGET_SUBDIR)/libobjc ]; then \
-         r=`${PWD}`; export r; \
-         $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libobjc/tmpmulti.out 2> /dev/null; \
-         if [ -s $(TARGET_SUBDIR)/libobjc/tmpmulti.out ]; then \
-           if [ -f $(TARGET_SUBDIR)/libobjc/multilib.out ]; then \
-             if cmp $(TARGET_SUBDIR)/libobjc/multilib.out $(TARGET_SUBDIR)/libobjc/tmpmulti.out > /dev/null; then \
-               rm -f $(TARGET_SUBDIR)/libobjc/tmpmulti.out; \
-             else \
-               echo "Multilibs changed for libobjc, reconfiguring"; \
-               rm -f $(TARGET_SUBDIR)/libobjc/multilib.out $(TARGET_SUBDIR)/libobjc/Makefile; \
-               mv $(TARGET_SUBDIR)/libobjc/tmpmulti.out $(TARGET_SUBDIR)/libobjc/multilib.out; \
-             fi; \
-           else \
-             mv $(TARGET_SUBDIR)/libobjc/tmpmulti.out $(TARGET_SUBDIR)/libobjc/multilib.out; \
-           fi; \
-         fi; \
-       fi; exit 0      # break command into two pieces
-       @dir=libobjc ; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/libobjc/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " libobjc " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/libobjc ]; then \
-           [ -d $(TARGET_SUBDIR)/libobjc ] || mkdir $(TARGET_SUBDIR)/libobjc;\
+.PHONY: configure-target-libobjc maybe-configure-target-libobjc
+maybe-configure-target-libobjc:
+configure-target-libobjc: $(TARGET_SUBDIR)/libobjc/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/libobjc/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/libobjc ] || mkdir $(TARGET_SUBDIR)/libobjc;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for libobjc"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libobjc/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/libobjc/Makefile: config.status $(TARGET_SUBDIR)/libobjc/multilib.out
+       @[ -d $(TARGET_SUBDIR)/libobjc ] || mkdir $(TARGET_SUBDIR)/libobjc;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -4525,99 +6275,54 @@ configure-target-libobjc:
              srcdiroption="--srcdir=$${topdir}/libobjc"; \
              libsrcdir="$$s/libobjc"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir libobjc || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-.PHONY: all-target-libobjc
-all-target-libobjc:
-       @dir=libobjc ; \
-       if [ -f $(TARGET_SUBDIR)/libobjc/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-libobjc maybe-all-target-libobjc
+maybe-all-target-libobjc:
+all-target-libobjc: configure-target-libobjc
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
-         (cd $(TARGET_SUBDIR)/libobjc; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+         (cd $(TARGET_SUBDIR)/libobjc; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
 
 .PHONY: check-target-libobjc
 check-target-libobjc:
-       @dir=libobjc ; \
-       if [ -f $(TARGET_SUBDIR)/libobjc/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libobjc; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
 
-\
-.PHONY: install-target-libobjc
+
+.PHONY: install-target-libobjc maybe-install-target-libobjc
+maybe-install-target-libobjc:
 install-target-libobjc: installdirs
-       @dir=libobjc ; \
-       if [ -f $(TARGET_SUBDIR)/libobjc/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libobjc; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
 
-.PHONY: configure-target-libtermcap
-configure-target-libtermcap:
-       @if [ -d $(TARGET_SUBDIR)/libtermcap ]; then \
-         r=`${PWD}`; export r; \
-         $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libtermcap/tmpmulti.out 2> /dev/null; \
-         if [ -s $(TARGET_SUBDIR)/libtermcap/tmpmulti.out ]; then \
-           if [ -f $(TARGET_SUBDIR)/libtermcap/multilib.out ]; then \
-             if cmp $(TARGET_SUBDIR)/libtermcap/multilib.out $(TARGET_SUBDIR)/libtermcap/tmpmulti.out > /dev/null; then \
-               rm -f $(TARGET_SUBDIR)/libtermcap/tmpmulti.out; \
-             else \
-               echo "Multilibs changed for libtermcap, reconfiguring"; \
-               rm -f $(TARGET_SUBDIR)/libtermcap/multilib.out $(TARGET_SUBDIR)/libtermcap/Makefile; \
-               mv $(TARGET_SUBDIR)/libtermcap/tmpmulti.out $(TARGET_SUBDIR)/libtermcap/multilib.out; \
-             fi; \
-           else \
-             mv $(TARGET_SUBDIR)/libtermcap/tmpmulti.out $(TARGET_SUBDIR)/libtermcap/multilib.out; \
-           fi; \
-         fi; \
-       fi; exit 0      # break command into two pieces
-       @dir=libtermcap ; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " libtermcap " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/libtermcap ]; then \
-           [ -d $(TARGET_SUBDIR)/libtermcap ] || mkdir $(TARGET_SUBDIR)/libtermcap;\
+.PHONY: configure-target-libtermcap maybe-configure-target-libtermcap
+maybe-configure-target-libtermcap:
+configure-target-libtermcap: $(TARGET_SUBDIR)/libtermcap/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/libtermcap/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/libtermcap ] || mkdir $(TARGET_SUBDIR)/libtermcap;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for libtermcap"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libtermcap/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/libtermcap/Makefile: config.status $(TARGET_SUBDIR)/libtermcap/multilib.out
+       @[ -d $(TARGET_SUBDIR)/libtermcap ] || mkdir $(TARGET_SUBDIR)/libtermcap;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -4669,90 +6374,50 @@ configure-target-libtermcap:
              srcdiroption="--srcdir=$${topdir}/libtermcap"; \
              libsrcdir="$$s/libtermcap"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir libtermcap || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-.PHONY: all-target-libtermcap
-all-target-libtermcap:
-       @dir=libtermcap ; \
-       if [ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-libtermcap maybe-all-target-libtermcap
+maybe-all-target-libtermcap:
+all-target-libtermcap: configure-target-libtermcap
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libtermcap; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
 
 # Dummy target for uncheckable module.
 .PHONY: check-target-libtermcap
 check-target-libtermcap:
 
-\
-.PHONY: install-target-libtermcap
+
+.PHONY: install-target-libtermcap maybe-install-target-libtermcap
+maybe-install-target-libtermcap:
 install-target-libtermcap: installdirs
-       @dir=libtermcap ; \
-       if [ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libtermcap; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
 
-.PHONY: configure-target-winsup
-configure-target-winsup:
-       @if [ -d $(TARGET_SUBDIR)/winsup ]; then \
-         r=`${PWD}`; export r; \
-         $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/winsup/tmpmulti.out 2> /dev/null; \
-         if [ -s $(TARGET_SUBDIR)/winsup/tmpmulti.out ]; then \
-           if [ -f $(TARGET_SUBDIR)/winsup/multilib.out ]; then \
-             if cmp $(TARGET_SUBDIR)/winsup/multilib.out $(TARGET_SUBDIR)/winsup/tmpmulti.out > /dev/null; then \
-               rm -f $(TARGET_SUBDIR)/winsup/tmpmulti.out; \
-             else \
-               echo "Multilibs changed for winsup, reconfiguring"; \
-               rm -f $(TARGET_SUBDIR)/winsup/multilib.out $(TARGET_SUBDIR)/winsup/Makefile; \
-               mv $(TARGET_SUBDIR)/winsup/tmpmulti.out $(TARGET_SUBDIR)/winsup/multilib.out; \
-             fi; \
-           else \
-             mv $(TARGET_SUBDIR)/winsup/tmpmulti.out $(TARGET_SUBDIR)/winsup/multilib.out; \
-           fi; \
-         fi; \
-       fi; exit 0      # break command into two pieces
-       @dir=winsup ; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/winsup/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " winsup " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/winsup ]; then \
-           [ -d $(TARGET_SUBDIR)/winsup ] || mkdir $(TARGET_SUBDIR)/winsup;\
+.PHONY: configure-target-winsup maybe-configure-target-winsup
+maybe-configure-target-winsup:
+configure-target-winsup: $(TARGET_SUBDIR)/winsup/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/winsup/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/winsup ] || mkdir $(TARGET_SUBDIR)/winsup;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for winsup"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/winsup/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/winsup/Makefile: config.status $(TARGET_SUBDIR)/winsup/multilib.out
+       @[ -d $(TARGET_SUBDIR)/winsup ] || mkdir $(TARGET_SUBDIR)/winsup;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -4804,99 +6469,54 @@ configure-target-winsup:
              srcdiroption="--srcdir=$${topdir}/winsup"; \
              libsrcdir="$$s/winsup"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir winsup || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-.PHONY: all-target-winsup
-all-target-winsup:
-       @dir=winsup ; \
-       if [ -f $(TARGET_SUBDIR)/winsup/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-winsup maybe-all-target-winsup
+maybe-all-target-winsup:
+all-target-winsup: configure-target-winsup
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/winsup; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
 
 .PHONY: check-target-winsup
 check-target-winsup:
-       @dir=winsup ; \
-       if [ -f $(TARGET_SUBDIR)/winsup/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/winsup; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
+
 
-\
-.PHONY: install-target-winsup
+.PHONY: install-target-winsup maybe-install-target-winsup
+maybe-install-target-winsup:
 install-target-winsup: installdirs
-       @dir=winsup ; \
-       if [ -f $(TARGET_SUBDIR)/winsup/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/winsup; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
 
-.PHONY: configure-target-libgloss
-configure-target-libgloss:
-       @if [ -d $(TARGET_SUBDIR)/libgloss ]; then \
-         r=`${PWD}`; export r; \
-         $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgloss/tmpmulti.out 2> /dev/null; \
-         if [ -s $(TARGET_SUBDIR)/libgloss/tmpmulti.out ]; then \
-           if [ -f $(TARGET_SUBDIR)/libgloss/multilib.out ]; then \
-             if cmp $(TARGET_SUBDIR)/libgloss/multilib.out $(TARGET_SUBDIR)/libgloss/tmpmulti.out > /dev/null; then \
-               rm -f $(TARGET_SUBDIR)/libgloss/tmpmulti.out; \
-             else \
-               echo "Multilibs changed for libgloss, reconfiguring"; \
-               rm -f $(TARGET_SUBDIR)/libgloss/multilib.out $(TARGET_SUBDIR)/libgloss/Makefile; \
-               mv $(TARGET_SUBDIR)/libgloss/tmpmulti.out $(TARGET_SUBDIR)/libgloss/multilib.out; \
-             fi; \
-           else \
-             mv $(TARGET_SUBDIR)/libgloss/tmpmulti.out $(TARGET_SUBDIR)/libgloss/multilib.out; \
-           fi; \
-         fi; \
-       fi; exit 0      # break command into two pieces
-       @dir=libgloss ; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/libgloss/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " libgloss " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/libgloss ]; then \
-           [ -d $(TARGET_SUBDIR)/libgloss ] || mkdir $(TARGET_SUBDIR)/libgloss;\
+.PHONY: configure-target-libgloss maybe-configure-target-libgloss
+maybe-configure-target-libgloss:
+configure-target-libgloss: $(TARGET_SUBDIR)/libgloss/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/libgloss/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/libgloss ] || mkdir $(TARGET_SUBDIR)/libgloss;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for libgloss"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgloss/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/libgloss/Makefile: config.status $(TARGET_SUBDIR)/libgloss/multilib.out
+       @[ -d $(TARGET_SUBDIR)/libgloss ] || mkdir $(TARGET_SUBDIR)/libgloss;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -4948,90 +6568,50 @@ configure-target-libgloss:
              srcdiroption="--srcdir=$${topdir}/libgloss"; \
              libsrcdir="$$s/libgloss"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir libgloss || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-.PHONY: all-target-libgloss
-all-target-libgloss:
-       @dir=libgloss ; \
-       if [ -f $(TARGET_SUBDIR)/libgloss/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-libgloss maybe-all-target-libgloss
+maybe-all-target-libgloss:
+all-target-libgloss: configure-target-libgloss
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libgloss; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
 
 # Dummy target for uncheckable module.
 .PHONY: check-target-libgloss
 check-target-libgloss:
 
-\
-.PHONY: install-target-libgloss
+
+.PHONY: install-target-libgloss maybe-install-target-libgloss
+maybe-install-target-libgloss:
 install-target-libgloss: installdirs
-       @dir=libgloss ; \
-       if [ -f $(TARGET_SUBDIR)/libgloss/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libgloss; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
 
-.PHONY: configure-target-libiberty
-configure-target-libiberty:
-       @if [ -d $(TARGET_SUBDIR)/libiberty ]; then \
-         r=`${PWD}`; export r; \
-         $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libiberty/tmpmulti.out 2> /dev/null; \
-         if [ -s $(TARGET_SUBDIR)/libiberty/tmpmulti.out ]; then \
-           if [ -f $(TARGET_SUBDIR)/libiberty/multilib.out ]; then \
-             if cmp $(TARGET_SUBDIR)/libiberty/multilib.out $(TARGET_SUBDIR)/libiberty/tmpmulti.out > /dev/null; then \
-               rm -f $(TARGET_SUBDIR)/libiberty/tmpmulti.out; \
-             else \
-               echo "Multilibs changed for libiberty, reconfiguring"; \
-               rm -f $(TARGET_SUBDIR)/libiberty/multilib.out $(TARGET_SUBDIR)/libiberty/Makefile; \
-               mv $(TARGET_SUBDIR)/libiberty/tmpmulti.out $(TARGET_SUBDIR)/libiberty/multilib.out; \
-             fi; \
-           else \
-             mv $(TARGET_SUBDIR)/libiberty/tmpmulti.out $(TARGET_SUBDIR)/libiberty/multilib.out; \
-           fi; \
-         fi; \
-       fi; exit 0      # break command into two pieces
-       @dir=libiberty ; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/libiberty/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " libiberty " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/libiberty ]; then \
-           [ -d $(TARGET_SUBDIR)/libiberty ] || mkdir $(TARGET_SUBDIR)/libiberty;\
+.PHONY: configure-target-libiberty maybe-configure-target-libiberty
+maybe-configure-target-libiberty:
+configure-target-libiberty: $(TARGET_SUBDIR)/libiberty/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/libiberty/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/libiberty ] || mkdir $(TARGET_SUBDIR)/libiberty;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for libiberty"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libiberty/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/libiberty/Makefile: config.status $(TARGET_SUBDIR)/libiberty/multilib.out
+       @[ -d $(TARGET_SUBDIR)/libiberty ] || mkdir $(TARGET_SUBDIR)/libiberty;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -5083,99 +6663,54 @@ configure-target-libiberty:
              srcdiroption="--srcdir=$${topdir}/libiberty"; \
              libsrcdir="$$s/libiberty"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir libiberty || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-.PHONY: all-target-libiberty
-all-target-libiberty:
-       @dir=libiberty ; \
-       if [ -f $(TARGET_SUBDIR)/libiberty/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-libiberty maybe-all-target-libiberty
+maybe-all-target-libiberty:
+all-target-libiberty: configure-target-libiberty
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libiberty; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
 
 .PHONY: check-target-libiberty
 check-target-libiberty:
-       @dir=libiberty ; \
-       if [ -f $(TARGET_SUBDIR)/libiberty/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libiberty; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
 
-\
-.PHONY: install-target-libiberty
+
+.PHONY: install-target-libiberty maybe-install-target-libiberty
+maybe-install-target-libiberty:
 install-target-libiberty: installdirs
-       @dir=libiberty ; \
-       if [ -f $(TARGET_SUBDIR)/libiberty/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libiberty; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
 
-.PHONY: configure-target-gperf
-configure-target-gperf:
-       @if [ -d $(TARGET_SUBDIR)/gperf ]; then \
-         r=`${PWD}`; export r; \
-         $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/gperf/tmpmulti.out 2> /dev/null; \
-         if [ -s $(TARGET_SUBDIR)/gperf/tmpmulti.out ]; then \
-           if [ -f $(TARGET_SUBDIR)/gperf/multilib.out ]; then \
-             if cmp $(TARGET_SUBDIR)/gperf/multilib.out $(TARGET_SUBDIR)/gperf/tmpmulti.out > /dev/null; then \
-               rm -f $(TARGET_SUBDIR)/gperf/tmpmulti.out; \
-             else \
-               echo "Multilibs changed for gperf, reconfiguring"; \
-               rm -f $(TARGET_SUBDIR)/gperf/multilib.out $(TARGET_SUBDIR)/gperf/Makefile; \
-               mv $(TARGET_SUBDIR)/gperf/tmpmulti.out $(TARGET_SUBDIR)/gperf/multilib.out; \
-             fi; \
-           else \
-             mv $(TARGET_SUBDIR)/gperf/tmpmulti.out $(TARGET_SUBDIR)/gperf/multilib.out; \
-           fi; \
-         fi; \
-       fi; exit 0      # break command into two pieces
-       @dir=gperf ; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/gperf/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " gperf " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/gperf ]; then \
-           [ -d $(TARGET_SUBDIR)/gperf ] || mkdir $(TARGET_SUBDIR)/gperf;\
+.PHONY: configure-target-gperf maybe-configure-target-gperf
+maybe-configure-target-gperf:
+configure-target-gperf: $(TARGET_SUBDIR)/gperf/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/gperf/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/gperf ] || mkdir $(TARGET_SUBDIR)/gperf;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for gperf"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/gperf/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/gperf/Makefile: config.status $(TARGET_SUBDIR)/gperf/multilib.out
+       @[ -d $(TARGET_SUBDIR)/gperf ] || mkdir $(TARGET_SUBDIR)/gperf;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -5227,99 +6762,54 @@ configure-target-gperf:
              srcdiroption="--srcdir=$${topdir}/gperf"; \
              libsrcdir="$$s/gperf"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir gperf || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-.PHONY: all-target-gperf
-all-target-gperf:
-       @dir=gperf ; \
-       if [ -f $(TARGET_SUBDIR)/gperf/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-gperf maybe-all-target-gperf
+maybe-all-target-gperf:
+all-target-gperf: configure-target-gperf
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/gperf; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
 
 .PHONY: check-target-gperf
 check-target-gperf:
-       @dir=gperf ; \
-       if [ -f $(TARGET_SUBDIR)/gperf/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/gperf; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
 
-\
-.PHONY: install-target-gperf
+
+.PHONY: install-target-gperf maybe-install-target-gperf
+maybe-install-target-gperf:
 install-target-gperf: installdirs
-       @dir=gperf ; \
-       if [ -f $(TARGET_SUBDIR)/gperf/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/gperf; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
 
-.PHONY: configure-target-examples
-configure-target-examples:
-       @if [ -d $(TARGET_SUBDIR)/examples ]; then \
-         r=`${PWD}`; export r; \
-         $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/examples/tmpmulti.out 2> /dev/null; \
-         if [ -s $(TARGET_SUBDIR)/examples/tmpmulti.out ]; then \
-           if [ -f $(TARGET_SUBDIR)/examples/multilib.out ]; then \
-             if cmp $(TARGET_SUBDIR)/examples/multilib.out $(TARGET_SUBDIR)/examples/tmpmulti.out > /dev/null; then \
-               rm -f $(TARGET_SUBDIR)/examples/tmpmulti.out; \
-             else \
-               echo "Multilibs changed for examples, reconfiguring"; \
-               rm -f $(TARGET_SUBDIR)/examples/multilib.out $(TARGET_SUBDIR)/examples/Makefile; \
-               mv $(TARGET_SUBDIR)/examples/tmpmulti.out $(TARGET_SUBDIR)/examples/multilib.out; \
-             fi; \
-           else \
-             mv $(TARGET_SUBDIR)/examples/tmpmulti.out $(TARGET_SUBDIR)/examples/multilib.out; \
-           fi; \
-         fi; \
-       fi; exit 0      # break command into two pieces
-       @dir=examples ; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/examples/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " examples " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/examples ]; then \
-           [ -d $(TARGET_SUBDIR)/examples ] || mkdir $(TARGET_SUBDIR)/examples;\
+.PHONY: configure-target-examples maybe-configure-target-examples
+maybe-configure-target-examples:
+configure-target-examples: $(TARGET_SUBDIR)/examples/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/examples/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/examples ] || mkdir $(TARGET_SUBDIR)/examples;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for examples"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/examples/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/examples/Makefile: config.status $(TARGET_SUBDIR)/examples/multilib.out
+       @[ -d $(TARGET_SUBDIR)/examples ] || mkdir $(TARGET_SUBDIR)/examples;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -5371,77 +6861,46 @@ configure-target-examples:
              srcdiroption="--srcdir=$${topdir}/examples"; \
              libsrcdir="$$s/examples"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir examples || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-.PHONY: all-target-examples
-all-target-examples:
-       @dir=examples ; \
-       if [ -f $(TARGET_SUBDIR)/examples/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-examples maybe-all-target-examples
+maybe-all-target-examples:
+all-target-examples: configure-target-examples
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/examples; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
 
 # Dummy target for uncheckable module.
 .PHONY: check-target-examples
 check-target-examples:
 
 
+.PHONY: install-target-examples maybe-install-target-examples
+maybe-install-target-examples:
+# Dummy target for uninstallable.
+install-target-examples:
 
-.PHONY: configure-target-libffi
-configure-target-libffi:
-       @if [ -d $(TARGET_SUBDIR)/libffi ]; then \
-         r=`${PWD}`; export r; \
-         $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libffi/tmpmulti.out 2> /dev/null; \
-         if [ -s $(TARGET_SUBDIR)/libffi/tmpmulti.out ]; then \
-           if [ -f $(TARGET_SUBDIR)/libffi/multilib.out ]; then \
-             if cmp $(TARGET_SUBDIR)/libffi/multilib.out $(TARGET_SUBDIR)/libffi/tmpmulti.out > /dev/null; then \
-               rm -f $(TARGET_SUBDIR)/libffi/tmpmulti.out; \
-             else \
-               echo "Multilibs changed for libffi, reconfiguring"; \
-               rm -f $(TARGET_SUBDIR)/libffi/multilib.out $(TARGET_SUBDIR)/libffi/Makefile; \
-               mv $(TARGET_SUBDIR)/libffi/tmpmulti.out $(TARGET_SUBDIR)/libffi/multilib.out; \
-             fi; \
-           else \
-             mv $(TARGET_SUBDIR)/libffi/tmpmulti.out $(TARGET_SUBDIR)/libffi/multilib.out; \
-           fi; \
-         fi; \
-       fi; exit 0      # break command into two pieces
-       @dir=libffi ; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/libffi/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " libffi " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/libffi ]; then \
-           [ -d $(TARGET_SUBDIR)/libffi ] || mkdir $(TARGET_SUBDIR)/libffi;\
+
+.PHONY: configure-target-libffi maybe-configure-target-libffi
+maybe-configure-target-libffi:
+configure-target-libffi: $(TARGET_SUBDIR)/libffi/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/libffi/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/libffi ] || mkdir $(TARGET_SUBDIR)/libffi;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for libffi"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libffi/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/libffi/Makefile: config.status $(TARGET_SUBDIR)/libffi/multilib.out
+       @[ -d $(TARGET_SUBDIR)/libffi ] || mkdir $(TARGET_SUBDIR)/libffi;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -5493,86 +6952,50 @@ configure-target-libffi:
              srcdiroption="--srcdir=$${topdir}/libffi"; \
              libsrcdir="$$s/libffi"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir libffi || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-.PHONY: all-target-libffi
-all-target-libffi:
-       @dir=libffi ; \
-       if [ -f $(TARGET_SUBDIR)/libffi/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-libffi maybe-all-target-libffi
+maybe-all-target-libffi:
+all-target-libffi: configure-target-libffi
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libffi; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
 
 .PHONY: check-target-libffi
 check-target-libffi:
-       @dir=libffi ; \
-       if [ -f $(TARGET_SUBDIR)/libffi/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libffi; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
 
 
+.PHONY: install-target-libffi maybe-install-target-libffi
+maybe-install-target-libffi:
+# Dummy target for uninstallable.
+install-target-libffi:
 
-.PHONY: configure-target-libjava
-configure-target-libjava:
-       @if [ -d $(TARGET_SUBDIR)/libjava ]; then \
-         r=`${PWD}`; export r; \
-         $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libjava/tmpmulti.out 2> /dev/null; \
-         if [ -s $(TARGET_SUBDIR)/libjava/tmpmulti.out ]; then \
-           if [ -f $(TARGET_SUBDIR)/libjava/multilib.out ]; then \
-             if cmp $(TARGET_SUBDIR)/libjava/multilib.out $(TARGET_SUBDIR)/libjava/tmpmulti.out > /dev/null; then \
-               rm -f $(TARGET_SUBDIR)/libjava/tmpmulti.out; \
-             else \
-               echo "Multilibs changed for libjava, reconfiguring"; \
-               rm -f $(TARGET_SUBDIR)/libjava/multilib.out $(TARGET_SUBDIR)/libjava/Makefile; \
-               mv $(TARGET_SUBDIR)/libjava/tmpmulti.out $(TARGET_SUBDIR)/libjava/multilib.out; \
-             fi; \
-           else \
-             mv $(TARGET_SUBDIR)/libjava/tmpmulti.out $(TARGET_SUBDIR)/libjava/multilib.out; \
-           fi; \
-         fi; \
-       fi; exit 0      # break command into two pieces
-       @dir=libjava ; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/libjava/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " libjava " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/libjava ]; then \
-           [ -d $(TARGET_SUBDIR)/libjava ] || mkdir $(TARGET_SUBDIR)/libjava;\
+
+.PHONY: configure-target-libjava maybe-configure-target-libjava
+maybe-configure-target-libjava:
+configure-target-libjava: $(TARGET_SUBDIR)/libjava/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/libjava/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/libjava ] || mkdir $(TARGET_SUBDIR)/libjava;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for libjava"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libjava/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/libjava/Makefile: config.status $(TARGET_SUBDIR)/libjava/multilib.out
+       @[ -d $(TARGET_SUBDIR)/libjava ] || mkdir $(TARGET_SUBDIR)/libjava;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -5580,7 +7003,8 @@ configure-target-libjava:
            AS="$(AS_FOR_TARGET)"; export AS; \
            CC="$(CC_FOR_TARGET)"; export CC; \
            CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
-           CXX="$(CXX_FOR_TARGET)"; export CXX; \
+           CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
+           CXX="$(RAW_CXX_FOR_TARGET)"; export CXX; \
            CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
            GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
            DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
@@ -5624,99 +7048,54 @@ configure-target-libjava:
              srcdiroption="--srcdir=$${topdir}/libjava"; \
              libsrcdir="$$s/libjava"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir libjava || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-.PHONY: all-target-libjava
-all-target-libjava:
-       @dir=libjava ; \
-       if [ -f $(TARGET_SUBDIR)/libjava/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-libjava maybe-all-target-libjava
+maybe-all-target-libjava:
+all-target-libjava: configure-target-libjava
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libjava; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  all)
 
 .PHONY: check-target-libjava
 check-target-libjava:
-       @dir=libjava ; \
-       if [ -f $(TARGET_SUBDIR)/libjava/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
-         $(SET_LIB_PATH) \
-         (cd $(TARGET_SUBDIR)/libjava; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
-       else \
-         true; \
-       fi
+         $(SET_LIB_PATH) \
+         (cd $(TARGET_SUBDIR)/libjava; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  check)
 
-\
-.PHONY: install-target-libjava
+
+.PHONY: install-target-libjava maybe-install-target-libjava
+maybe-install-target-libjava:
 install-target-libjava: installdirs
-       @dir=libjava ; \
-       if [ -f $(TARGET_SUBDIR)/libjava/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/libjava; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
 
-.PHONY: configure-target-zlib
-configure-target-zlib:
-       @if [ -d $(TARGET_SUBDIR)/zlib ]; then \
-         r=`${PWD}`; export r; \
-         $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/zlib/tmpmulti.out 2> /dev/null; \
-         if [ -s $(TARGET_SUBDIR)/zlib/tmpmulti.out ]; then \
-           if [ -f $(TARGET_SUBDIR)/zlib/multilib.out ]; then \
-             if cmp $(TARGET_SUBDIR)/zlib/multilib.out $(TARGET_SUBDIR)/zlib/tmpmulti.out > /dev/null; then \
-               rm -f $(TARGET_SUBDIR)/zlib/tmpmulti.out; \
-             else \
-               echo "Multilibs changed for zlib, reconfiguring"; \
-               rm -f $(TARGET_SUBDIR)/zlib/multilib.out $(TARGET_SUBDIR)/zlib/Makefile; \
-               mv $(TARGET_SUBDIR)/zlib/tmpmulti.out $(TARGET_SUBDIR)/zlib/multilib.out; \
-             fi; \
-           else \
-             mv $(TARGET_SUBDIR)/zlib/tmpmulti.out $(TARGET_SUBDIR)/zlib/multilib.out; \
-           fi; \
-         fi; \
-       fi; exit 0      # break command into two pieces
-       @dir=zlib ; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/zlib/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " zlib " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/zlib ]; then \
-           [ -d $(TARGET_SUBDIR)/zlib ] || mkdir $(TARGET_SUBDIR)/zlib;\
+.PHONY: configure-target-zlib maybe-configure-target-zlib
+maybe-configure-target-zlib:
+configure-target-zlib: $(TARGET_SUBDIR)/zlib/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/zlib/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/zlib ] || mkdir $(TARGET_SUBDIR)/zlib;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for zlib"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/zlib/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/zlib/Makefile: config.status $(TARGET_SUBDIR)/zlib/multilib.out
+       @[ -d $(TARGET_SUBDIR)/zlib ] || mkdir $(TARGET_SUBDIR)/zlib;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -5768,99 +7147,54 @@ configure-target-zlib:
              srcdiroption="--srcdir=$${topdir}/zlib"; \
              libsrcdir="$$s/zlib"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir zlib || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-.PHONY: all-target-zlib
-all-target-zlib:
-       @dir=zlib ; \
-       if [ -f $(TARGET_SUBDIR)/zlib/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-zlib maybe-all-target-zlib
+maybe-all-target-zlib:
+all-target-zlib: configure-target-zlib
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/zlib; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
 
 .PHONY: check-target-zlib
 check-target-zlib:
-       @dir=zlib ; \
-       if [ -f $(TARGET_SUBDIR)/zlib/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/zlib; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
 
-\
-.PHONY: install-target-zlib
+
+.PHONY: install-target-zlib maybe-install-target-zlib
+maybe-install-target-zlib:
 install-target-zlib: installdirs
-       @dir=zlib ; \
-       if [ -f $(TARGET_SUBDIR)/zlib/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/zlib; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
 
-.PHONY: configure-target-boehm-gc
-configure-target-boehm-gc:
-       @if [ -d $(TARGET_SUBDIR)/boehm-gc ]; then \
-         r=`${PWD}`; export r; \
-         $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/boehm-gc/tmpmulti.out 2> /dev/null; \
-         if [ -s $(TARGET_SUBDIR)/boehm-gc/tmpmulti.out ]; then \
-           if [ -f $(TARGET_SUBDIR)/boehm-gc/multilib.out ]; then \
-             if cmp $(TARGET_SUBDIR)/boehm-gc/multilib.out $(TARGET_SUBDIR)/boehm-gc/tmpmulti.out > /dev/null; then \
-               rm -f $(TARGET_SUBDIR)/boehm-gc/tmpmulti.out; \
-             else \
-               echo "Multilibs changed for boehm-gc, reconfiguring"; \
-               rm -f $(TARGET_SUBDIR)/boehm-gc/multilib.out $(TARGET_SUBDIR)/boehm-gc/Makefile; \
-               mv $(TARGET_SUBDIR)/boehm-gc/tmpmulti.out $(TARGET_SUBDIR)/boehm-gc/multilib.out; \
-             fi; \
-           else \
-             mv $(TARGET_SUBDIR)/boehm-gc/tmpmulti.out $(TARGET_SUBDIR)/boehm-gc/multilib.out; \
-           fi; \
-         fi; \
-       fi; exit 0      # break command into two pieces
-       @dir=boehm-gc ; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " boehm-gc " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/boehm-gc ]; then \
-           [ -d $(TARGET_SUBDIR)/boehm-gc ] || mkdir $(TARGET_SUBDIR)/boehm-gc;\
+.PHONY: configure-target-boehm-gc maybe-configure-target-boehm-gc
+maybe-configure-target-boehm-gc:
+configure-target-boehm-gc: $(TARGET_SUBDIR)/boehm-gc/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/boehm-gc/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/boehm-gc ] || mkdir $(TARGET_SUBDIR)/boehm-gc;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for boehm-gc"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/boehm-gc/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/boehm-gc/Makefile: config.status $(TARGET_SUBDIR)/boehm-gc/multilib.out
+       @[ -d $(TARGET_SUBDIR)/boehm-gc ] || mkdir $(TARGET_SUBDIR)/boehm-gc;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -5912,99 +7246,54 @@ configure-target-boehm-gc:
              srcdiroption="--srcdir=$${topdir}/boehm-gc"; \
              libsrcdir="$$s/boehm-gc"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir boehm-gc || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-.PHONY: all-target-boehm-gc
-all-target-boehm-gc:
-       @dir=boehm-gc ; \
-       if [ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-boehm-gc maybe-all-target-boehm-gc
+maybe-all-target-boehm-gc:
+all-target-boehm-gc: configure-target-boehm-gc
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/boehm-gc; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
 
 .PHONY: check-target-boehm-gc
 check-target-boehm-gc:
-       @dir=boehm-gc ; \
-       if [ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/boehm-gc; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
 
-\
-.PHONY: install-target-boehm-gc
+
+.PHONY: install-target-boehm-gc maybe-install-target-boehm-gc
+maybe-install-target-boehm-gc:
 install-target-boehm-gc: installdirs
-       @dir=boehm-gc ; \
-       if [ -f $(TARGET_SUBDIR)/boehm-gc/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/boehm-gc; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
 
-.PHONY: configure-target-qthreads
-configure-target-qthreads:
-       @if [ -d $(TARGET_SUBDIR)/qthreads ]; then \
-         r=`${PWD}`; export r; \
-         $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/qthreads/tmpmulti.out 2> /dev/null; \
-         if [ -s $(TARGET_SUBDIR)/qthreads/tmpmulti.out ]; then \
-           if [ -f $(TARGET_SUBDIR)/qthreads/multilib.out ]; then \
-             if cmp $(TARGET_SUBDIR)/qthreads/multilib.out $(TARGET_SUBDIR)/qthreads/tmpmulti.out > /dev/null; then \
-               rm -f $(TARGET_SUBDIR)/qthreads/tmpmulti.out; \
-             else \
-               echo "Multilibs changed for qthreads, reconfiguring"; \
-               rm -f $(TARGET_SUBDIR)/qthreads/multilib.out $(TARGET_SUBDIR)/qthreads/Makefile; \
-               mv $(TARGET_SUBDIR)/qthreads/tmpmulti.out $(TARGET_SUBDIR)/qthreads/multilib.out; \
-             fi; \
-           else \
-             mv $(TARGET_SUBDIR)/qthreads/tmpmulti.out $(TARGET_SUBDIR)/qthreads/multilib.out; \
-           fi; \
-         fi; \
-       fi; exit 0      # break command into two pieces
-       @dir=qthreads ; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/qthreads/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " qthreads " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/qthreads ]; then \
-           [ -d $(TARGET_SUBDIR)/qthreads ] || mkdir $(TARGET_SUBDIR)/qthreads;\
+.PHONY: configure-target-qthreads maybe-configure-target-qthreads
+maybe-configure-target-qthreads:
+configure-target-qthreads: $(TARGET_SUBDIR)/qthreads/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/qthreads/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/qthreads ] || mkdir $(TARGET_SUBDIR)/qthreads;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for qthreads"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/qthreads/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/qthreads/Makefile: config.status $(TARGET_SUBDIR)/qthreads/multilib.out
+       @[ -d $(TARGET_SUBDIR)/qthreads ] || mkdir $(TARGET_SUBDIR)/qthreads;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -6056,99 +7345,54 @@ configure-target-qthreads:
              srcdiroption="--srcdir=$${topdir}/qthreads"; \
              libsrcdir="$$s/qthreads"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir qthreads || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-.PHONY: all-target-qthreads
-all-target-qthreads:
-       @dir=qthreads ; \
-       if [ -f $(TARGET_SUBDIR)/qthreads/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-qthreads maybe-all-target-qthreads
+maybe-all-target-qthreads:
+all-target-qthreads: configure-target-qthreads
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/qthreads; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
 
 .PHONY: check-target-qthreads
 check-target-qthreads:
-       @dir=qthreads ; \
-       if [ -f $(TARGET_SUBDIR)/qthreads/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/qthreads; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
 
-\
-.PHONY: install-target-qthreads
+
+.PHONY: install-target-qthreads maybe-install-target-qthreads
+maybe-install-target-qthreads:
 install-target-qthreads: installdirs
-       @dir=qthreads ; \
-       if [ -f $(TARGET_SUBDIR)/qthreads/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/qthreads; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
 
-.PHONY: configure-target-rda
-configure-target-rda:
-       @if [ -d $(TARGET_SUBDIR)/rda ]; then \
-         r=`${PWD}`; export r; \
-         $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/rda/tmpmulti.out 2> /dev/null; \
-         if [ -s $(TARGET_SUBDIR)/rda/tmpmulti.out ]; then \
-           if [ -f $(TARGET_SUBDIR)/rda/multilib.out ]; then \
-             if cmp $(TARGET_SUBDIR)/rda/multilib.out $(TARGET_SUBDIR)/rda/tmpmulti.out > /dev/null; then \
-               rm -f $(TARGET_SUBDIR)/rda/tmpmulti.out; \
-             else \
-               echo "Multilibs changed for rda, reconfiguring"; \
-               rm -f $(TARGET_SUBDIR)/rda/multilib.out $(TARGET_SUBDIR)/rda/Makefile; \
-               mv $(TARGET_SUBDIR)/rda/tmpmulti.out $(TARGET_SUBDIR)/rda/multilib.out; \
-             fi; \
-           else \
-             mv $(TARGET_SUBDIR)/rda/tmpmulti.out $(TARGET_SUBDIR)/rda/multilib.out; \
-           fi; \
-         fi; \
-       fi; exit 0      # break command into two pieces
-       @dir=rda ; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/rda/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " rda " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/rda ]; then \
-           [ -d $(TARGET_SUBDIR)/rda ] || mkdir $(TARGET_SUBDIR)/rda;\
+.PHONY: configure-target-rda maybe-configure-target-rda
+maybe-configure-target-rda:
+configure-target-rda: $(TARGET_SUBDIR)/rda/Makefile
+
+# Don't manually override CC_FOR_TARGET at make time; get it set right
+# at configure time.  Otherwise multilibs may be wrong.
+$(TARGET_SUBDIR)/rda/multilib.out: maybe-all-gcc
+       @[ -d $(TARGET_SUBDIR)/rda ] || mkdir $(TARGET_SUBDIR)/rda;\
+       r=`${PWD}`; export r; \
+       echo "Configuring multilibs for rda"; \
+       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/rda/multilib.out 2> /dev/null
+
+$(TARGET_SUBDIR)/rda/Makefile: config.status $(TARGET_SUBDIR)/rda/multilib.out
+       @[ -d $(TARGET_SUBDIR)/rda ] || mkdir $(TARGET_SUBDIR)/rda;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -6200,83 +7444,104 @@ configure-target-rda:
              srcdiroption="--srcdir=$${topdir}/rda"; \
              libsrcdir="$$s/rda"; \
            fi; \
-           if [ -f $${libsrcdir}/configure ] ; then \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           else \
-             rm -f no-such-file skip-this-dir; \
-             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(TARGET_CONFIGARGS) $${srcdiroption} \
-               --with-target-subdir="$(TARGET_SUBDIR)"; \
-           fi || exit 1; \
-           if [ -f skip-this-dir ] ; then \
-             sh skip-this-dir; \
-             rm -f skip-this-dir; \
-             cd ..; rmdir rda || true; \
-           else \
-             true; \
-           fi; \
-         else \
-           true; \
-         fi; \
-       else \
-         true; \
-       fi
-
-.PHONY: all-target-rda
-all-target-rda:
-       @dir=rda ; \
-       if [ -f $(TARGET_SUBDIR)/rda/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1
+
+.PHONY: all-target-rda maybe-all-target-rda
+maybe-all-target-rda:
+all-target-rda: configure-target-rda
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/rda; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  all)
 
 .PHONY: check-target-rda
 check-target-rda:
-       @dir=rda ; \
-       if [ -f $(TARGET_SUBDIR)/rda/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/rda; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS)  check)
 
-\
-.PHONY: install-target-rda
+
+.PHONY: install-target-rda maybe-install-target-rda
+maybe-install-target-rda:
 install-target-rda: installdirs
-       @dir=rda ; \
-       if [ -f $(TARGET_SUBDIR)/rda/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/rda; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 
 
 
+# ----------
+# GCC module
+# ----------
+
+# Unfortunately, while gcc _should_ be a host module,
+# libgcc is a target module, and gen* programs are
+# build modules.  So GCC is a sort of hybrid.
+
 # gcc is the only module which uses GCC_FLAGS_TO_PASS.
-.PHONY: all-gcc
-all-gcc:
-       @if [ -f ./gcc/Makefile ] ; then \
+.PHONY: configure-gcc maybe-configure-gcc
+maybe-configure-gcc:
+configure-gcc: gcc/Makefile
+
+gcc/Makefile: config.status
+       @[ -d gcc ] || mkdir gcc; \
+       r=`${PWD}`; export r; \
+       s=`cd $(srcdir); ${PWD}`; export s; \
+       CC="$(CC)"; export CC; \
+       CFLAGS="$(CFLAGS)"; export CFLAGS; \
+       CXX="$(CXX)"; export CXX; \
+       CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
+       if [ z$(build_canonical) !=  z$(host_canoncial) ] ; then \
+         AR="$(AR)"; export AR; \
+         AS="$(AS)"; export AS; \
+         CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
+         DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
+         LD="$(LD)"; export LD; \
+         NM="$(NM)"; export NM; \
+         RANLIB="$(RANLIB)"; export RANLIB; \
+         WINDRES="$(WINDRES)"; export WINDRES; \
+         OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
+         OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
+       fi; \
+       echo Configuring 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} \
+         || exit 1
+
+# Don't remake gcc if it's already been made by 'bootstrap'; that causes
+# nothing but trouble.  This wart will be fixed eventually by moving
+# the bootstrap behavior to this file.
+.PHONY: all-gcc maybe-all-gcc
+maybe-all-gcc:
+all-gcc: configure-gcc
+       @if [ -f gcc/xgcc ] ; then \
+         exit 0 ; \
+       else \
          r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) all); \
-       else \
-         true; \
        fi
 
 # Building GCC uses some tools for rebuilding "source" files
@@ -6290,7 +7555,7 @@ all-gcc:
 # in parallel.
 #
 .PHONY: bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap
-bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap: all-bootstrap
+bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap: all-bootstrap configure-gcc
        @r=`${PWD}`; export r; \
        s=`cd $(srcdir); ${PWD}`; export s; \
        $(SET_LIB_PATH) \
@@ -6355,7 +7620,8 @@ check-c++:
          true; \
        fi 
 
-.PHONY: install-gcc
+.PHONY: install-gcc maybe-install-gcc
+maybe-install-gcc:
 install-gcc:
        @if [ -f ./gcc/Makefile ] ; then \
          r=`${PWD}`; export r; \
@@ -6366,142 +7632,156 @@ install-gcc:
          true; \
        fi
 
-ALL_GCC = all-gcc
-ALL_GCC_C = $(ALL_GCC) all-target-newlib all-target-libgloss
-ALL_GCC_CXX = $(ALL_GCC_C) all-target-libstdc++-v3
-
-# This is a list of inter-dependencies among modules.
-all-autoconf: all-m4 all-texinfo
-all-automake: all-m4 all-texinfo
-all-bfd: all-libiberty all-intl
-all-binutils: all-libiberty all-opcodes all-bfd all-flex all-bison all-byacc all-intl
-all-bison: all-texinfo
-configure-target-boehm-gc: $(ALL_GCC_C) configure-target-qthreads
-all-dejagnu: all-tcl all-expect all-tk
-all-diff: all-libiberty
-configure-target-examples: $(ALL_GCC_C)
-all-expect: all-tcl all-tk
-all-fileutils: all-libiberty
-all-flex: all-libiberty all-bison all-byacc
-all-gas: all-libiberty all-opcodes all-bfd all-intl
-all-gcc: all-libiberty all-bison all-byacc all-binutils all-gas all-ld all-zlib
-all-bootstrap: all-libiberty all-texinfo all-bison all-byacc all-binutils all-gas all-ld all-zlib
-GDB_TK = @GDB_TK@
-all-gdb: all-libiberty all-opcodes all-bfd all-mmalloc all-readline all-bison all-byacc all-sim $(gdbnlmrequirements) $(GDB_TK)
-configure-target-gperf: $(ALL_GCC_CXX)
-all-target-gperf: all-target-libiberty all-target-libstdc++-v3
-all-gprof: all-libiberty all-bfd all-opcodes all-intl
-all-grep: all-libiberty
-all-gzip: all-libiberty
-all-hello: all-libiberty
-all-itcl: all-tcl all-tk
-all-ld: all-libiberty all-bfd all-opcodes all-bison all-byacc all-flex all-intl
-configure-target-libgloss: $(ALL_GCC)
-all-target-libgloss: configure-target-newlib
-all-libgui: all-tcl all-tk all-itcl
-configure-target-libffi: $(ALL_GCC_C) 
-configure-target-libjava: $(ALL_GCC_C) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-libffi
-all-target-libjava: all-fastjar all-target-zlib all-target-boehm-gc all-target-qthreads all-target-libffi
-configure-target-libstdc++-v3: $(ALL_GCC_C)
-all-target-libstdc++-v3: all-target-libiberty
-configure-target-libf2c: $(ALL_GCC_C)
-all-target-libf2c: all-target-libiberty
-configure-target-libobjc: $(ALL_GCC_C)
-all-target-libobjc: all-target-libiberty
-all-m4: all-libiberty all-texinfo
-all-make: all-libiberty
-configure-target-newlib: $(ALL_GCC)
-configure-target-libtermcap: $(ALL_GCC_C)
-all-opcodes: all-bfd all-libiberty
-all-patch: all-libiberty
-all-prms: all-libiberty
-configure-target-qthreads: $(ALL_GCC_C)
-all-recode: all-libiberty
-all-sed: all-libiberty
-all-send-pr: all-prms
-all-sid: all-tcl all-tk
-all-sim: all-libiberty all-bfd all-opcodes all-readline
-all-snavigator: all-tcl all-tk all-itcl all-tix all-db all-grep all-libgui
-all-tar: all-libiberty
-all-tclX: all-tcl all-tk
-all-tk: all-tcl
-all-texinfo: all-libiberty
-all-tix: all-tcl all-tk
-configure-target-winsup: $(ALL_GCC_C)
-all-target-winsup: all-target-libiberty all-target-libtermcap
-all-uudecode: all-libiberty
-configure-target-zlib: $(ALL_GCC_C)
-all-fastjar: all-zlib all-libiberty
-configure-target-fastjar: configure-target-zlib
-all-target-fastjar: all-target-zlib all-target-libiberty
-configure-target-libiberty: $(ALL_GCC_C)
-install-gdb: install-tcl install-tk install-itcl install-tix install-libgui
-install-sid: install-tcl install-tk
+# Install the gcc headers files, but not the fixed include files,
+# which Cygnus is not allowed to distribute.  This rule is very
+# dependent on the workings of the gcc Makefile.in.
+.PHONY: gcc-no-fixedincludes
+gcc-no-fixedincludes:
+       @if [ -f ./gcc/Makefile ]; then \
+         rm -rf gcc/tmp-include; \
+         mv gcc/include gcc/tmp-include 2>/dev/null; \
+         mkdir gcc/include; \
+         cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \
+         touch gcc/stmp-fixinc gcc/include/fixed; \
+         rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \
+         r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}` ; export s; \
+         $(SET_LIB_PATH) \
+         (cd ./gcc; \
+          $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
+         rm -rf gcc/include; \
+         mv gcc/tmp-include gcc/include 2>/dev/null; \
+       else true; fi
+
+# --------------------------------------
+# Dependencies between different modules
+# --------------------------------------
+
+# There are two types of dependencies here: 'hard' dependencies, where one
+# module simply won't build without the other; and 'soft' dependencies, where
+# if the depended-on module is missing, the depending module will do without
+# or find a substitute somewhere (perhaps installed).  Soft dependencies
+# are specified by depending on a 'maybe-' target.  If you're not sure,
+# it's safer to use a soft dependency.
+
+# Host modules specific to gcc.
+# GCC needs to identify certain tools.
+configure-gcc: maybe-configure-binutils maybe-configure-gas maybe-configure-ld maybe-configure-bison maybe-configure-flex
+all-gcc: maybe-all-libiberty maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib
+# This is a slightly kludgy method of getting dependencies on 
+# all-build-libiberty correct; it would be better to build it every time.
+all-gcc: maybe-all-build-libiberty
+all-bootstrap: maybe-all-libiberty maybe-all-texinfo maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib
 
+# Host modules specific to gdb.
+# GDB needs to know that the simulator is being built.
+configure-gdb: maybe-configure-tcl maybe-configure-tk maybe-configure-sim
+GDB_TK = @GDB_TK@
+all-gdb: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-mmalloc maybe-all-readline maybe-all-bison maybe-all-byacc maybe-all-sim $(gdbnlmrequirements) $(GDB_TK)
+install-gdb: maybe-install-tcl maybe-install-tk maybe-install-itcl maybe-install-tix maybe-install-libgui
+libgui/Makefile: maybe-configure-tcl maybe-configure-tk
+all-libgui: maybe-all-tcl maybe-all-tk maybe-all-itcl
+
+# Host modules specific to binutils.
+configure-bfd: configure-libiberty
+all-bfd: maybe-all-libiberty maybe-all-intl
+all-binutils: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-flex maybe-all-bison maybe-all-byacc maybe-all-intl
 # We put install-opcodes before install-binutils because the installed
 # binutils might be on PATH, and they might need the shared opcodes
 # library.
-install-binutils: install-opcodes
-
+install-binutils: maybe-install-opcodes
+all-gas: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-intl
+all-gprof: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-intl
+all-ld: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-bison maybe-all-byacc maybe-all-flex maybe-all-intl
+all-opcodes: maybe-all-bfd maybe-all-libiberty
+
+# Other host modules in the 'src' repository.
+all-dejagnu: maybe-all-tcl maybe-all-expect maybe-all-tk
+configure-expect: maybe-configure-tcl maybe-configure-tk
+all-expect: maybe-all-tcl maybe-all-tk
+configure-itcl: maybe-configure-tcl maybe-configure-tk
+all-itcl: maybe-all-tcl maybe-all-tk
 # We put install-tcl before install-itcl because itcl wants to run a
 # program on installation which uses the Tcl libraries.
-install-itcl: install-tcl
-
-# This is a slightly kludgy method of getting dependencies on 
-# all-build-libiberty correct; it would be better to build it every time.
-all-gcc: @all_build_modules@
-
-# Dependencies of all-build-foo on configure-build-foo.
-all-build-libiberty: configure-build-libiberty
-
-# Dependencies of all-target-foo on configure-target-foo.
-all-target-libstdc++-v3: configure-target-libstdc++-v3
-all-target-newlib: configure-target-newlib
-all-target-libf2c: configure-target-libf2c
-all-target-libobjc: configure-target-libobjc
-all-target-libtermcap: configure-target-libtermcap
-all-target-winsup: configure-target-winsup
-all-target-libgloss: configure-target-libgloss
-all-target-libiberty: configure-target-libiberty
-all-target-gperf: configure-target-gperf
-all-target-examples: configure-target-examples
-all-target-libffi: configure-target-libffi
-all-target-libjava: configure-target-libjava
-all-target-zlib: configure-target-zlib
-all-target-boehm-gc: configure-target-boehm-gc
-all-target-qthreads: configure-target-qthreads
-all-target-rda: configure-target-rda
-
-
-### other supporting targets
+install-itcl: maybe-install-tcl
+all-sid: maybe-all-tcl maybe-all-tk
+install-sid: maybe-install-tcl maybe-install-tk
+all-sim: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-readline maybe-configure-gdb
+configure-tk: maybe-configure-tcl
+all-tk: maybe-all-tcl
+configure-tix: maybe-configure-tcl maybe-configure-tk
+all-tix: maybe-all-tcl maybe-all-tk
+all-texinfo: maybe-all-libiberty
+
+# Other host modules.  Warning, these are not well tested.
+all-autoconf: maybe-all-m4 maybe-all-texinfo
+all-automake: maybe-all-m4 maybe-all-texinfo
+all-bison: maybe-all-texinfo
+all-diff: maybe-all-libiberty
+all-fastjar: maybe-all-zlib maybe-all-libiberty
+all-fileutils: maybe-all-libiberty
+all-flex: maybe-all-libiberty maybe-all-bison maybe-all-byacc
+all-grep: maybe-all-libiberty
+all-gzip: maybe-all-libiberty
+all-hello: maybe-all-libiberty
+all-m4: maybe-all-libiberty maybe-all-texinfo
+all-make: maybe-all-libiberty
+all-patch: maybe-all-libiberty
+all-prms: maybe-all-libiberty
+all-recode: maybe-all-libiberty
+all-sed: maybe-all-libiberty
+all-send-pr: maybe-all-prms
+all-snavigator: maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-tix maybe-all-db maybe-all-grep maybe-all-libgui
+all-tar: maybe-all-libiberty
+all-tclX: maybe-all-tcl maybe-all-tk
+all-uudecode: maybe-all-libiberty
+
+ALL_GCC = maybe-all-gcc
+ALL_GCC_C = $(ALL_GCC) maybe-all-target-newlib maybe-all-target-libgloss
+ALL_GCC_CXX = $(ALL_GCC_C) maybe-all-target-libstdc++-v3
+
+# Target modules specific to gcc.
+configure-target-boehm-gc: $(ALL_GCC_C) maybe-configure-target-qthreads
+configure-target-fastjar: maybe-configure-target-zlib
+all-target-fastjar: maybe-all-target-zlib maybe-all-target-libiberty
+configure-target-libf2c: $(ALL_GCC_C)
+all-target-libf2c: maybe-all-target-libiberty
+configure-target-libffi: $(ALL_GCC_C) 
+configure-target-libjava: $(ALL_GCC_C) maybe-configure-target-zlib maybe-configure-target-boehm-gc maybe-configure-target-qthreads maybe-configure-target-libffi
+all-target-libjava: maybe-all-fastjar maybe-all-target-zlib maybe-all-target-boehm-gc maybe-all-target-qthreads maybe-all-target-libffi
+configure-target-libobjc: $(ALL_GCC_C)
+all-target-libobjc: maybe-all-target-libiberty
+configure-target-libstdc++-v3: $(ALL_GCC_C)
+all-target-libstdc++-v3: maybe-all-target-libiberty
+configure-target-zlib: $(ALL_GCC_C)
 
-MAKEDIRS= \
-       $(DESTDIR)$(prefix) \
-       $(DESTDIR)$(exec_prefix)
-.PHONY: installdirs
-installdirs: mkinstalldirs
-       $(SHELL) $(srcdir)/mkinstalldirs $(MAKEDIRS)
+# Target modules in the 'src' repository.
+configure-target-examples: $(ALL_GCC_C)
+configure-target-libgloss: $(ALL_GCC)
+all-target-libgloss: maybe-configure-target-newlib
+configure-target-libiberty: $(ALL_GCC_C)
+configure-target-libtermcap: $(ALL_GCC_C)
+configure-target-newlib: $(ALL_GCC)
+configure-target-winsup: $(ALL_GCC_C)
+all-target-winsup: maybe-all-target-libiberty maybe-all-target-libtermcap
 
-dir.info: do-install-info
-       if [ -f $(srcdir)/texinfo/gen-info-dir ] ; then \
-         $(srcdir)/texinfo/gen-info-dir $(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \
-         mv -f dir.info.new dir.info ; \
-       else true ; \
-       fi
+# Other target modules.  Warning, these are not well tested.
+configure-target-gperf: $(ALL_GCC_CXX)
+all-target-gperf: maybe-all-target-libiberty maybe-all-target-libstdc++-v3
+configure-target-qthreads: $(ALL_GCC_C)
 
-dist:
-       @echo "Building a full distribution of this tree isn't done"
-       @echo "via 'make dist'.  Check out the etc/ subdirectory" 
+# Dependencies of maybe-foo on foo.  These are used because, for example,
+# all-gcc only depends on all-gas if gas is present and being configured.
+@maybe_dependencies@
 
-etags tags: TAGS
+# Serialization dependencies.  Host configures don't work well in parallel to
+# each other, due to contention over config.cache.  Target configures and 
+# build configures are similar.
+@serialization_dependencies@
 
-# Right now this just builds TAGS in each subdirectory.  emacs19 has the
-# ability to use several tags files at once, so there is probably no need
-# to combine them into one big TAGS file (like CVS 1.3 does).  We could
-# (if we felt like it) have this Makefile write a piece of elisp which
-# the user could load to tell emacs19 where all the TAGS files we just
-# built are.
-TAGS: do-TAGS
+# --------------------------------
+# Regenerating top level configury
+# --------------------------------
 
 # Rebuilding Makefile.in, using autogen.
 $(srcdir)/Makefile.in: # $(srcdir)/Makefile.tpl $(srcdir)/Makefile.def
This page took 0.11178 seconds and 4 git commands to generate.