2002-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
authorNathanael Nerode <neroden@gcc.gnu.org>
Mon, 2 Dec 2002 03:24:13 +0000 (03:24 +0000)
committerNathanael Nerode <neroden@gcc.gnu.org>
Mon, 2 Dec 2002 03:24:13 +0000 (03:24 +0000)
(finishing slow-motion replay)
* configure: Remove skip-this-dir support.
* Makefile.tpl: Remove skip-this-dir support.

* Makefile.tpl: Remove leftover support for non-autoconfiscated
subdirectories.
* Makefile.in: Regenerate.

* Makefile.tpl: Strip out useless setting of 'dir'.
* Makefile.in: Regenerate.

2002-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>

(finishing slow-motion replay)
* configure.in: Fix deeply stupid bug.

* configure.in: Introduce RAW_CXX_FOR_TARGET and simplify embedded
shell code in CXX_FOR_TARGET
* Makefile.def: Introduce raw_cxx.
* Makefile.tpl: Use raw_cxx to select between CXX_FOR_TARGET and
RAW_CXX_FOR_TARGET.
* Makefile.in: Regenerate.

2002-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>

(finishing slow-motion replay)
* Makefile.tpl: Remove unnecessary ifs.
* Makefile.in: Regenerate.

* Makefile.tpl: Implement soft dependency machinery.  Maybe-ize
dependencies.  Maybe-ize build-libiberty.  Create dummy install
targets for 'no_install' modules.
* configure: Move GDB_TK substitution to configure.in.  Move
build_modules stuff to configure.in.
* configure.in: Implement soft dependency machinery.  Maybe-ize
GDB_TK, rearrange slightly.  Move build_modules stuff from configure.
* Makefile.in: Regenerate.

ChangeLog
Makefile.def
Makefile.in
Makefile.tpl
configure
configure.in

index e0f6c20..a3d8662 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,43 @@
+2002-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       (finishing slow-motion replay)
+       * configure: Remove skip-this-dir support.
+       * Makefile.tpl: Remove skip-this-dir support.
+
+       * Makefile.tpl: Remove leftover support for non-autoconfiscated
+       subdirectories.
+       * Makefile.in: Regenerate.
+
+       * Makefile.tpl: Strip out useless setting of 'dir'.
+       * Makefile.in: Regenerate.
+       
+2002-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       (finishing slow-motion replay)
+       * configure.in: Fix deeply stupid bug.
+
+       * configure.in: Introduce RAW_CXX_FOR_TARGET and simplify embedded
+       shell code in CXX_FOR_TARGET
+       * Makefile.def: Introduce raw_cxx.
+       * Makefile.tpl: Use raw_cxx to select between CXX_FOR_TARGET and
+       RAW_CXX_FOR_TARGET.
+       * Makefile.in: Regenerate.
+
+2002-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       (finishing slow-motion replay)
+       * Makefile.tpl: Remove unnecessary ifs.
+       * Makefile.in: Regenerate.
+
+       * Makefile.tpl: Implement soft dependency machinery.  Maybe-ize 
+       dependencies.  Maybe-ize build-libiberty.  Create dummy install
+       targets for 'no_install' modules.
+       * configure: Move GDB_TK substitution to configure.in.  Move 
+       build_modules stuff to configure.in.
+       * configure.in: Implement soft dependency machinery.  Maybe-ize 
+       GDB_TK, rearrange slightly.  Move build_modules stuff from configure.
+       * Makefile.in: Regenerate.
+
 2002-12-01  Nathanael Nerode  <neroden@gcc.gnu.org>
 
        (continuing slow-motion replay)
index 6321b78..80c270b 100644 (file)
@@ -72,7 +72,7 @@ host_modules= { module= tix; with_x=true; };
 host_modules= { module= libtermcap; no_check=true; no_clean=true; };
 host_modules= { module= utils; no_check=true; };
 
-target_modules = { module= libstdc++-v3; };
+target_modules = { module= libstdc++-v3; raw_cxx=true; };
 target_modules = { module= newlib; };
 target_modules = { module= libf2c; };
 target_modules = { module= libobjc; };
@@ -83,7 +83,7 @@ target_modules = { module= libiberty; };
 target_modules = { module= gperf; };
 target_modules = { module= examples; no_check=true; no_install=true; };
 target_modules = { module= libffi; no_install=true; };
-target_modules = { module= libjava; };
+target_modules = { module= libjava; raw_cxx=true; };
 target_modules = { module= zlib; };
 target_modules = { module= boehm-gc; };
 target_modules = { module= qthreads; };
index 2834c81..e054015 100644 (file)
@@ -253,7 +253,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 +438,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,18 +522,6 @@ 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 = \
@@ -1259,7 +1250,8 @@ gcc-no-fixedincludes:
 # These rules are used to build the modules which are built with the
 # build machine's native compiler.
 
-.PHONY: all-build-libiberty
+.PHONY: all-build-libiberty maybe-all-build-libiberty
+maybe-all-build-libiberty:
 all-build-libiberty:
        @if [ -f ./libiberty/Makefile ] ; then \
          r=`${PWD}`; export r; \
@@ -1269,7 +1261,8 @@ all-build-libiberty:
          true; \
        fi
 
-.PHONY: configure-build-libiberty
+.PHONY: configure-build-libiberty maybe-configure-build-libiberty
+maybe-configure-build-libiberty:
 configure-build-libiberty:
        @if [ ! -d $(BUILD_SUBDIR) ]; then \
          true; \
@@ -1328,24 +1321,11 @@ 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; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(BUILD_CONFIGARGS) $${srcdiroption} \
+             --with-build-subdir="$(BUILD_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
          fi; \
@@ -1357,543 +1337,370 @@ configure-build-libiberty:
 # 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.
 
-.PHONY: all-ash
+.PHONY: all-ash maybe-all-ash
+maybe-all-ash:
 all-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) 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
+.PHONY: all-autoconf maybe-all-autoconf
+maybe-all-autoconf:
 all-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) 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
+.PHONY: all-automake maybe-all-automake
+maybe-all-automake:
 all-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) 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
+.PHONY: all-bash maybe-all-bash
+maybe-all-bash:
 all-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) 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
+.PHONY: all-bfd maybe-all-bfd
+maybe-all-bfd:
 all-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) 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
+.PHONY: all-opcodes maybe-all-opcodes
+maybe-all-opcodes:
 all-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) 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
+.PHONY: all-binutils maybe-all-binutils
+maybe-all-binutils:
 all-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) 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
+.PHONY: all-bison maybe-all-bison
+maybe-all-bison:
 all-bison:
-       @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) 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
+.PHONY: all-byacc maybe-all-byacc
+maybe-all-byacc:
 all-byacc:
-       @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) 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
+.PHONY: all-bzip2 maybe-all-bzip2
+maybe-all-bzip2:
 all-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) 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
+.PHONY: all-db maybe-all-db
+maybe-all-db:
 all-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) 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
+.PHONY: all-dejagnu maybe-all-dejagnu
+maybe-all-dejagnu:
 all-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) 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
+.PHONY: all-diff maybe-all-diff
+maybe-all-diff:
 all-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) 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
+.PHONY: all-dosutils maybe-all-dosutils
+maybe-all-dosutils:
 all-dosutils:
-       @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) all); \
-       else \
-         true; \
-       fi
+         (cd dosutils; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-dosutils
@@ -1901,996 +1708,676 @@ 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
+.PHONY: all-etc maybe-all-etc
+maybe-all-etc:
 all-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) 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
+.PHONY: all-fastjar maybe-all-fastjar
+maybe-all-fastjar:
 all-fastjar:
-       @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) 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
+.PHONY: all-fileutils maybe-all-fileutils
+maybe-all-fileutils:
 all-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) 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
+.PHONY: all-findutils maybe-all-findutils
+maybe-all-findutils:
 all-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) 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
+.PHONY: all-find maybe-all-find
+maybe-all-find:
 all-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) 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
+.PHONY: all-flex maybe-all-flex
+maybe-all-flex:
 all-flex:
-       @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) 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
+.PHONY: all-gas maybe-all-gas
+maybe-all-gas:
 all-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) 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
+.PHONY: all-gawk maybe-all-gawk
+maybe-all-gawk:
 all-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) 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
+.PHONY: all-gettext maybe-all-gettext
+maybe-all-gettext:
 all-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) 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
+.PHONY: all-gnuserv maybe-all-gnuserv
+maybe-all-gnuserv:
 all-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) 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
+.PHONY: all-gprof maybe-all-gprof
+maybe-all-gprof:
 all-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) 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
+.PHONY: all-grep maybe-all-grep
+maybe-all-grep:
 all-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) 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
+.PHONY: all-gzip maybe-all-gzip
+maybe-all-gzip:
 all-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) 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
+.PHONY: all-hello maybe-all-hello
+maybe-all-hello:
 all-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) 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
+.PHONY: all-indent maybe-all-indent
+maybe-all-indent:
 all-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) 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
+.PHONY: all-intl maybe-all-intl
+maybe-all-intl:
 all-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) 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
+.PHONY: all-tcl maybe-all-tcl
+maybe-all-tcl:
 all-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) 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
+.PHONY: all-itcl maybe-all-itcl
+maybe-all-itcl:
 all-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) 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
+.PHONY: all-ld maybe-all-ld
+maybe-all-ld:
 all-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) 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
+.PHONY: all-libgui maybe-all-libgui
+maybe-all-libgui:
 all-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) 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
+.PHONY: all-libiberty maybe-all-libiberty
+maybe-all-libiberty:
 all-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) 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
+.PHONY: all-libtool maybe-all-libtool
+maybe-all-libtool:
 all-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) 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
+.PHONY: all-m4 maybe-all-m4
+maybe-all-m4:
 all-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) 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
+.PHONY: all-make maybe-all-make
+maybe-all-make:
 all-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) 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
+.PHONY: all-mmalloc maybe-all-mmalloc
+maybe-all-mmalloc:
 all-mmalloc:
-       @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) all); \
-       else \
-         true; \
-       fi
+         (cd mmalloc; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-mmalloc
@@ -2898,230 +2385,157 @@ 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
+.PHONY: all-patch maybe-all-patch
+maybe-all-patch:
 all-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) 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
+.PHONY: all-perl maybe-all-perl
+maybe-all-perl:
 all-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) 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
+.PHONY: all-prms maybe-all-prms
+maybe-all-prms:
 all-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) 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
+.PHONY: all-rcs maybe-all-rcs
+maybe-all-rcs:
 all-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) 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; \
-         s=`cd $(srcdir); ${PWD}`; export s; \
-         $(SET_LIB_PATH) \
-         (cd rcs; $(MAKE) $(FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+       @r=`${PWD}`; export r; \
+         s=`cd $(srcdir); ${PWD}`; export s; \
+         $(SET_LIB_PATH) \
+         (cd rcs; $(MAKE) $(FLAGS_TO_PASS) install)
 
 
-.PHONY: all-readline
+.PHONY: all-readline maybe-all-readline
+maybe-all-readline:
 all-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) 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
+.PHONY: all-release maybe-all-release
+maybe-all-release:
 all-release:
-       @dir=release; \
-       if [ -f ./release/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @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 +2543,395 @@ check-release:
 
 
 
-.PHONY: install-release
+.PHONY: install-release maybe-install-release
+maybe-install-release:
 install-release:
 
 
-.PHONY: all-recode
+.PHONY: all-recode maybe-all-recode
+maybe-all-recode:
 all-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) 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
+.PHONY: all-sed maybe-all-sed
+maybe-all-sed:
 all-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) 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
+.PHONY: all-send-pr maybe-all-send-pr
+maybe-all-send-pr:
 all-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) 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: all-shellutils
+.PHONY: all-shellutils maybe-all-shellutils
+maybe-all-shellutils:
 all-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) 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
+.PHONY: all-sid maybe-all-sid
+maybe-all-sid:
 all-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) 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
+.PHONY: all-sim maybe-all-sim
+maybe-all-sim:
 all-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) 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
+.PHONY: all-snavigator maybe-all-snavigator
+maybe-all-snavigator:
 all-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) 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
+.PHONY: all-tar maybe-all-tar
+maybe-all-tar:
 all-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) 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
+.PHONY: all-texinfo maybe-all-texinfo
+maybe-all-texinfo:
 all-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) 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
+.PHONY: all-textutils maybe-all-textutils
+maybe-all-textutils:
 all-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) 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
+.PHONY: all-time maybe-all-time
+maybe-all-time:
 all-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) 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
+.PHONY: all-uudecode maybe-all-uudecode
+maybe-all-uudecode:
 all-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) 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
+.PHONY: all-wdiff maybe-all-wdiff
+maybe-all-wdiff:
 all-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) 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
+.PHONY: all-zip maybe-all-zip
+maybe-all-zip:
 all-zip:
-       @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) 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
+.PHONY: all-zlib maybe-all-zlib
+maybe-all-zlib:
 all-zlib:
-       @dir=zlib; \
-       if [ -f ./zlib/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @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 +2939,180 @@ check-zlib:
 
 
 
-.PHONY: install-zlib
+.PHONY: install-zlib maybe-install-zlib
+maybe-install-zlib:
 install-zlib:
 
 
-.PHONY: all-gdb
+.PHONY: all-gdb maybe-all-gdb
+maybe-all-gdb:
 all-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) 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
+.PHONY: all-expect maybe-all-expect
+maybe-all-expect:
 all-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) 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
+.PHONY: all-guile maybe-all-guile
+maybe-all-guile:
 all-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) 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
+.PHONY: all-tclX maybe-all-tclX
+maybe-all-tclX:
 all-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) 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
+.PHONY: all-tk maybe-all-tk
+maybe-all-tk:
 all-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) 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
+.PHONY: all-tix maybe-all-tix
+maybe-all-tix:
 all-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) 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
+.PHONY: all-libtermcap maybe-all-libtermcap
+maybe-all-libtermcap:
 all-libtermcap:
-       @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) all); \
-       else \
-         true; \
-       fi
+         (cd libtermcap; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-libtermcap
@@ -3967,30 +3120,22 @@ 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
+.PHONY: all-utils maybe-all-utils
+maybe-all-utils:
 all-utils:
-       @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) all); \
-       else \
-         true; \
-       fi
+         (cd utils; $(MAKE) $(FLAGS_TO_PASS) all)
 
 
 .PHONY: check-utils
@@ -3998,27 +3143,23 @@ 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.
 
-.PHONY: configure-target-libstdc++-v3
+.PHONY: configure-target-libstdc++-v3 maybe-configure-target-libstdc++-v3
+maybe-configure-target-libstdc++-v3:
 configure-target-libstdc++-v3:
-       @if [ -d $(TARGET_SUBDIR)/libstdc++-v3 ]; then \
-         r=`${PWD}`; export r; \
+       @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 \
@@ -4032,15 +3173,8 @@ configure-target-libstdc++-v3:
            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 \
+       @if [ -d $(srcdir)/libstdc++-v3 ]; then \
            [ -d $(TARGET_SUBDIR)/libstdc++-v3 ] || mkdir $(TARGET_SUBDIR)/libstdc++-v3;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
@@ -4049,7 +3183,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,76 +3228,47 @@ 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; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
-         fi; \
-       else \
-         true; \
-       fi
+         fi
 
-.PHONY: all-target-libstdc++-v3
+.PHONY: all-target-libstdc++-v3 maybe-all-target-libstdc++-v3
+maybe-all-target-libstdc++-v3:
 all-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) 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
+.PHONY: configure-target-newlib maybe-configure-target-newlib
+maybe-configure-target-newlib:
 configure-target-newlib:
-       @if [ -d $(TARGET_SUBDIR)/newlib ]; then \
-         r=`${PWD}`; export r; \
+       @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 \
@@ -4176,15 +3282,8 @@ configure-target-newlib:
            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 \
+       @if [ -d $(srcdir)/newlib ]; then \
            [ -d $(TARGET_SUBDIR)/newlib ] || mkdir $(TARGET_SUBDIR)/newlib;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
@@ -4237,76 +3336,47 @@ 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; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
-         fi; \
-       else \
-         true; \
-       fi
+         fi
 
-.PHONY: all-target-newlib
+.PHONY: all-target-newlib maybe-all-target-newlib
+maybe-all-target-newlib:
 all-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) 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
+.PHONY: configure-target-libf2c maybe-configure-target-libf2c
+maybe-configure-target-libf2c:
 configure-target-libf2c:
-       @if [ -d $(TARGET_SUBDIR)/libf2c ]; then \
-         r=`${PWD}`; export r; \
+       @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 \
@@ -4320,15 +3390,8 @@ configure-target-libf2c:
            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 \
+       @if [ -d $(srcdir)/libf2c ]; then \
            [ -d $(TARGET_SUBDIR)/libf2c ] || mkdir $(TARGET_SUBDIR)/libf2c;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
@@ -4381,76 +3444,47 @@ 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; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
-         fi; \
-       else \
-         true; \
-       fi
+         fi
 
-.PHONY: all-target-libf2c
+.PHONY: all-target-libf2c maybe-all-target-libf2c
+maybe-all-target-libf2c:
 all-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) 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
+.PHONY: configure-target-libobjc maybe-configure-target-libobjc
+maybe-configure-target-libobjc:
 configure-target-libobjc:
-       @if [ -d $(TARGET_SUBDIR)/libobjc ]; then \
-         r=`${PWD}`; export r; \
+       @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 \
@@ -4464,15 +3498,8 @@ configure-target-libobjc:
            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 \
+       @if [ -d $(srcdir)/libobjc ]; then \
            [ -d $(TARGET_SUBDIR)/libobjc ] || mkdir $(TARGET_SUBDIR)/libobjc;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
@@ -4525,76 +3552,47 @@ 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; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
-         fi; \
-       else \
-         true; \
-       fi
+         fi
 
-.PHONY: all-target-libobjc
+.PHONY: all-target-libobjc maybe-all-target-libobjc
+maybe-all-target-libobjc:
 all-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) all); \
-       else \
-         true; \
-       fi
+           $(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
+.PHONY: configure-target-libtermcap maybe-configure-target-libtermcap
+maybe-configure-target-libtermcap:
 configure-target-libtermcap:
-       @if [ -d $(TARGET_SUBDIR)/libtermcap ]; then \
-         r=`${PWD}`; export r; \
+       @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 \
@@ -4608,15 +3606,8 @@ configure-target-libtermcap:
            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 \
+       @if [ -d $(srcdir)/libtermcap ]; then \
            [ -d $(TARGET_SUBDIR)/libtermcap ] || mkdir $(TARGET_SUBDIR)/libtermcap;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
@@ -4669,67 +3660,43 @@ 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; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
-         fi; \
-       else \
-         true; \
-       fi
+         fi
 
-.PHONY: all-target-libtermcap
+.PHONY: all-target-libtermcap maybe-all-target-libtermcap
+maybe-all-target-libtermcap:
 all-target-libtermcap:
-       @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) 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
+.PHONY: configure-target-winsup maybe-configure-target-winsup
+maybe-configure-target-winsup:
 configure-target-winsup:
-       @if [ -d $(TARGET_SUBDIR)/winsup ]; then \
-         r=`${PWD}`; export r; \
+       @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 \
@@ -4743,15 +3710,8 @@ configure-target-winsup:
            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 \
+       @if [ -d $(srcdir)/winsup ]; then \
            [ -d $(TARGET_SUBDIR)/winsup ] || mkdir $(TARGET_SUBDIR)/winsup;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
@@ -4804,76 +3764,47 @@ 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; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
-         fi; \
-       else \
-         true; \
-       fi
+         fi
 
-.PHONY: all-target-winsup
+.PHONY: all-target-winsup maybe-all-target-winsup
+maybe-all-target-winsup:
 all-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) 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
+.PHONY: configure-target-libgloss maybe-configure-target-libgloss
+maybe-configure-target-libgloss:
 configure-target-libgloss:
-       @if [ -d $(TARGET_SUBDIR)/libgloss ]; then \
-         r=`${PWD}`; export r; \
+       @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 \
@@ -4887,15 +3818,8 @@ configure-target-libgloss:
            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 \
+       @if [ -d $(srcdir)/libgloss ]; then \
            [ -d $(TARGET_SUBDIR)/libgloss ] || mkdir $(TARGET_SUBDIR)/libgloss;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
@@ -4948,67 +3872,43 @@ 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; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
-         fi; \
-       else \
-         true; \
-       fi
+         fi
 
-.PHONY: all-target-libgloss
+.PHONY: all-target-libgloss maybe-all-target-libgloss
+maybe-all-target-libgloss:
 all-target-libgloss:
-       @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) 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
+.PHONY: configure-target-libiberty maybe-configure-target-libiberty
+maybe-configure-target-libiberty:
 configure-target-libiberty:
-       @if [ -d $(TARGET_SUBDIR)/libiberty ]; then \
-         r=`${PWD}`; export r; \
+       @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 \
@@ -5022,15 +3922,8 @@ configure-target-libiberty:
            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 \
+       @if [ -d $(srcdir)/libiberty ]; then \
            [ -d $(TARGET_SUBDIR)/libiberty ] || mkdir $(TARGET_SUBDIR)/libiberty;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
@@ -5083,76 +3976,47 @@ 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; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
-         fi; \
-       else \
-         true; \
-       fi
+         fi
 
-.PHONY: all-target-libiberty
+.PHONY: all-target-libiberty maybe-all-target-libiberty
+maybe-all-target-libiberty:
 all-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) 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
+.PHONY: configure-target-gperf maybe-configure-target-gperf
+maybe-configure-target-gperf:
 configure-target-gperf:
-       @if [ -d $(TARGET_SUBDIR)/gperf ]; then \
-         r=`${PWD}`; export r; \
+       @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 \
@@ -5166,15 +4030,8 @@ configure-target-gperf:
            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 \
+       @if [ -d $(srcdir)/gperf ]; then \
            [ -d $(TARGET_SUBDIR)/gperf ] || mkdir $(TARGET_SUBDIR)/gperf;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
@@ -5227,76 +4084,47 @@ 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; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
-         fi; \
-       else \
-         true; \
-       fi
+         fi
 
-.PHONY: all-target-gperf
+.PHONY: all-target-gperf maybe-all-target-gperf
+maybe-all-target-gperf:
 all-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) 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
+.PHONY: configure-target-examples maybe-configure-target-examples
+maybe-configure-target-examples:
 configure-target-examples:
-       @if [ -d $(TARGET_SUBDIR)/examples ]; then \
-         r=`${PWD}`; export r; \
+       @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 \
@@ -5310,15 +4138,8 @@ configure-target-examples:
            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 \
+       @if [ -d $(srcdir)/examples ]; then \
            [ -d $(TARGET_SUBDIR)/examples ] || mkdir $(TARGET_SUBDIR)/examples;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
@@ -5371,54 +4192,39 @@ 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; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
-         fi; \
-       else \
-         true; \
-       fi
+         fi
 
-.PHONY: all-target-examples
+.PHONY: all-target-examples maybe-all-target-examples
+maybe-all-target-examples:
 all-target-examples:
-       @dir=examples ; \
-       if [ -f $(TARGET_SUBDIR)/examples/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @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
+.PHONY: configure-target-libffi maybe-configure-target-libffi
+maybe-configure-target-libffi:
 configure-target-libffi:
-       @if [ -d $(TARGET_SUBDIR)/libffi ]; then \
-         r=`${PWD}`; export r; \
+       @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 \
@@ -5432,15 +4238,8 @@ configure-target-libffi:
            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 \
+       @if [ -d $(srcdir)/libffi ]; then \
            [ -d $(TARGET_SUBDIR)/libffi ] || mkdir $(TARGET_SUBDIR)/libffi;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
@@ -5493,63 +4292,43 @@ 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; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
-         fi; \
-       else \
-         true; \
-       fi
+         fi
 
-.PHONY: all-target-libffi
+.PHONY: all-target-libffi maybe-all-target-libffi
+maybe-all-target-libffi:
 all-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) 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
+
+.PHONY: configure-target-libjava maybe-configure-target-libjava
+maybe-configure-target-libjava:
 configure-target-libjava:
-       @if [ -d $(TARGET_SUBDIR)/libjava ]; then \
-         r=`${PWD}`; export r; \
+       @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 \
@@ -5563,15 +4342,8 @@ configure-target-libjava:
            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 \
+       @if [ -d $(srcdir)/libjava ]; then \
            [ -d $(TARGET_SUBDIR)/libjava ] || mkdir $(TARGET_SUBDIR)/libjava;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
@@ -5580,7 +4352,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,76 +4397,47 @@ 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; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
-         fi; \
-       else \
-         true; \
-       fi
+         fi
 
-.PHONY: all-target-libjava
+.PHONY: all-target-libjava maybe-all-target-libjava
+maybe-all-target-libjava:
 all-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) 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
+           $(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
+.PHONY: configure-target-zlib maybe-configure-target-zlib
+maybe-configure-target-zlib:
 configure-target-zlib:
-       @if [ -d $(TARGET_SUBDIR)/zlib ]; then \
-         r=`${PWD}`; export r; \
+       @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 \
@@ -5707,15 +4451,8 @@ configure-target-zlib:
            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 \
+       @if [ -d $(srcdir)/zlib ]; then \
            [ -d $(TARGET_SUBDIR)/zlib ] || mkdir $(TARGET_SUBDIR)/zlib;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
@@ -5768,76 +4505,47 @@ 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; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
-         fi; \
-       else \
-         true; \
-       fi
+         fi
 
-.PHONY: all-target-zlib
+.PHONY: all-target-zlib maybe-all-target-zlib
+maybe-all-target-zlib:
 all-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) 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
+.PHONY: configure-target-boehm-gc maybe-configure-target-boehm-gc
+maybe-configure-target-boehm-gc:
 configure-target-boehm-gc:
-       @if [ -d $(TARGET_SUBDIR)/boehm-gc ]; then \
-         r=`${PWD}`; export r; \
+       @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 \
@@ -5851,15 +4559,8 @@ configure-target-boehm-gc:
            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 \
+       @if [ -d $(srcdir)/boehm-gc ]; then \
            [ -d $(TARGET_SUBDIR)/boehm-gc ] || mkdir $(TARGET_SUBDIR)/boehm-gc;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
@@ -5912,76 +4613,47 @@ 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; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
-         fi; \
-       else \
-         true; \
-       fi
+         fi
 
-.PHONY: all-target-boehm-gc
+.PHONY: all-target-boehm-gc maybe-all-target-boehm-gc
+maybe-all-target-boehm-gc:
 all-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) 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
+.PHONY: configure-target-qthreads maybe-configure-target-qthreads
+maybe-configure-target-qthreads:
 configure-target-qthreads:
-       @if [ -d $(TARGET_SUBDIR)/qthreads ]; then \
-         r=`${PWD}`; export r; \
+       @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 \
@@ -5995,15 +4667,8 @@ configure-target-qthreads:
            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 \
+       @if [ -d $(srcdir)/qthreads ]; then \
            [ -d $(TARGET_SUBDIR)/qthreads ] || mkdir $(TARGET_SUBDIR)/qthreads;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
@@ -6056,76 +4721,47 @@ 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; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
-         fi; \
-       else \
-         true; \
-       fi
+         fi
 
-.PHONY: all-target-qthreads
+.PHONY: all-target-qthreads maybe-all-target-qthreads
+maybe-all-target-qthreads:
 all-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) 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
+.PHONY: configure-target-rda maybe-configure-target-rda
+maybe-configure-target-rda:
 configure-target-rda:
-       @if [ -d $(TARGET_SUBDIR)/rda ]; then \
-         r=`${PWD}`; export r; \
+       @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 \
@@ -6139,15 +4775,8 @@ configure-target-rda:
            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 \
+       @if [ -d $(srcdir)/rda ]; then \
            [ -d $(TARGET_SUBDIR)/rda ] || mkdir $(TARGET_SUBDIR)/rda;\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
@@ -6200,75 +4829,47 @@ 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; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
-         fi; \
-       else \
-         true; \
-       fi
+         fi
 
-.PHONY: all-target-rda
+.PHONY: all-target-rda maybe-all-target-rda
+maybe-all-target-rda:
 all-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) 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 is the only module which uses GCC_FLAGS_TO_PASS.
-.PHONY: all-gcc
+.PHONY: all-gcc maybe-all-gcc
+maybe-all-gcc:
 all-gcc:
        @if [ -f ./gcc/Makefile ] ; then \
          r=`${PWD}`; export r; \
@@ -6355,7 +4956,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,94 +4968,95 @@ 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
+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
 
 # 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
+all-autoconf: maybe-all-m4 maybe-all-texinfo
+all-automake: maybe-all-m4 maybe-all-texinfo
+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
+all-bison: maybe-all-texinfo
+configure-target-boehm-gc: $(ALL_GCC_C) maybe-configure-target-qthreads
+all-dejagnu: maybe-all-tcl maybe-all-expect maybe-all-tk
+all-diff: maybe-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
+all-expect: maybe-all-tcl maybe-all-tk
+all-fileutils: maybe-all-libiberty
+all-flex: maybe-all-libiberty maybe-all-bison maybe-all-byacc
+all-gas: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-intl
+all-gcc: maybe-all-libiberty maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib
+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
 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)
+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)
 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
+all-target-gperf: maybe-all-target-libiberty maybe-all-target-libstdc++-v3
+all-gprof: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-intl
+all-grep: maybe-all-libiberty
+all-gzip: maybe-all-libiberty
+all-hello: maybe-all-libiberty
+all-itcl: maybe-all-tcl maybe-all-tk
+all-ld: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-bison maybe-all-byacc maybe-all-flex maybe-all-intl
 configure-target-libgloss: $(ALL_GCC)
-all-target-libgloss: configure-target-newlib
-all-libgui: all-tcl all-tk all-itcl
+all-target-libgloss: maybe-configure-target-newlib
+all-libgui: maybe-all-tcl maybe-all-tk maybe-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-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-libstdc++-v3: $(ALL_GCC_C)
-all-target-libstdc++-v3: all-target-libiberty
+all-target-libstdc++-v3: maybe-all-target-libiberty
 configure-target-libf2c: $(ALL_GCC_C)
-all-target-libf2c: all-target-libiberty
+all-target-libf2c: maybe-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
+all-target-libobjc: maybe-all-target-libiberty
+all-m4: maybe-all-libiberty maybe-all-texinfo
+all-make: maybe-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
+all-opcodes: maybe-all-bfd maybe-all-libiberty
+all-patch: maybe-all-libiberty
+all-prms: maybe-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
+all-recode: maybe-all-libiberty
+all-sed: maybe-all-libiberty
+all-send-pr: maybe-all-prms
+all-sid: maybe-all-tcl maybe-all-tk
+all-sim: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-readline
+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-tk: maybe-all-tcl
+all-texinfo: maybe-all-libiberty
+all-tix: maybe-all-tcl maybe-all-tk
 configure-target-winsup: $(ALL_GCC_C)
-all-target-winsup: all-target-libiberty all-target-libtermcap
-all-uudecode: all-libiberty
+all-target-winsup: maybe-all-target-libiberty maybe-all-target-libtermcap
+all-uudecode: maybe-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
+all-fastjar: maybe-all-zlib maybe-all-libiberty
+configure-target-fastjar: maybe-configure-target-zlib
+all-target-fastjar: maybe-all-target-zlib maybe-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-gdb: maybe-install-tcl maybe-install-tk maybe-install-itcl maybe-install-tix maybe-install-libgui
+install-sid: maybe-install-tcl maybe-install-tk
 
 # 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
 
 # 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
+install-itcl: maybe-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@
+all-gcc: maybe-all-build-libiberty
 
 # 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
@@ -6473,6 +5076,10 @@ all-target-qthreads: configure-target-qthreads
 all-target-rda: configure-target-rda
 
 
+# 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@
+
 ### other supporting targets
 
 MAKEDIRS= \
index 6ccb817..45181c1 100644 (file)
@@ -256,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
@@ -439,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.
@@ -522,18 +525,6 @@ 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 = [+ FOR target_modules +]\
@@ -792,7 +783,8 @@ gcc-no-fixedincludes:
 # These rules are used to build the modules which are built with the
 # build machine's native compiler.
 [+ FOR build_modules +]
-.PHONY: all-build-[+module+]
+.PHONY: all-build-[+module+] maybe-all-build-[+module+]
+maybe-all-build-[+module+]:
 all-build-[+module+]:
        @if [ -f ./[+module+]/Makefile ] ; then \
          r=`${PWD}`; export r; \
@@ -802,7 +794,8 @@ all-build-[+module+]:
          true; \
        fi
 
-.PHONY: configure-build-[+module+]
+.PHONY: configure-build-[+module+] maybe-configure-build-[+module+]
+maybe-configure-build-[+module+]:
 configure-build-[+module+]:
        @if [ ! -d $(BUILD_SUBDIR) ]; then \
          true; \
@@ -861,24 +854,11 @@ configure-build-[+module+]:
              srcdiroption="--srcdir=$${topdir}/[+module+]"; \
              libsrcdir="$$s/[+module+]"; \
            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 [+module+] || true; \
-           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; \
          else \
            true; \
          fi; \
@@ -890,20 +870,16 @@ configure-build-[+module+]:
 # 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.
 [+ FOR host_modules +]
-.PHONY: all-[+module+]
+.PHONY: all-[+module+] maybe-all-[+module+]
+maybe-all-[+module+]:
 all-[+module+]:
-       @dir=[+module+]; \
-       if [ -f ./[+module+]/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd [+module+]; $(MAKE) $(FLAGS_TO_PASS)[+ 
            IF with_x 
              +] $(X11_FLAGS_TO_PASS)[+ 
-           ENDIF with_x +] all); \
-       else \
-         true; \
-       fi
+           ENDIF with_x +] all)
 
 [+ IF no_check +]
 .PHONY: check-[+module+]
@@ -913,8 +889,6 @@ check-[+module+]:
 # This module is only tested in a native toolchain.
 check-[+module+]:
        @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
-         dir=[+module+]; \
-         if [ -f ./[+module+]/Makefile ] ; then \
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
            $(SET_LIB_PATH) \
@@ -922,55 +896,44 @@ check-[+module+]:
              IF with_x 
                +] $(X11_FLAGS_TO_PASS)[+ 
              ENDIF with_x +] check); \
-         else \
-           true; \
-         fi; \
        fi
 [+ ELSE check +]
 .PHONY: check-[+module+]
 check-[+module+]:
-       @dir=[+module+]; \
-       if [ -f ./[+module+]/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd [+module+]; $(MAKE) $(FLAGS_TO_PASS)[+ 
            IF with_x 
              +] $(X11_FLAGS_TO_PASS)[+ 
-           ENDIF with_x +] check); \
-       else \
-         true; \
-       fi
+           ENDIF with_x +] check)
 [+ ENDIF no_check +]
 
 [+ IF no_install +]
-.PHONY: install-[+module+]
+.PHONY: install-[+module+] maybe-install-[+module+]
+maybe-install-[+module+]:
 install-[+module+]:
 [+ ELSE install +]
-.PHONY: install-[+module+]
+.PHONY: install-[+module+] maybe-install-[+module+]
+maybe-install-[+module+]:
 install-[+module+]: installdirs
-       @dir=[+module+]; \
-       if [ -f ./[+module+]/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd [+module+]; $(MAKE) $(FLAGS_TO_PASS)[+ 
            IF with_x 
              +] $(X11_FLAGS_TO_PASS)[+ 
-           ENDIF with_x +] install); \
-       else \
-         true; \
-       fi
+           ENDIF with_x +] install)
 [+ ENDIF no_install +]
 [+ ENDFOR host_modules +]
 
 # 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.
 [+ FOR target_modules +]
-.PHONY: configure-target-[+module+]
+.PHONY: configure-target-[+module+] maybe-configure-target-[+module+]
+maybe-configure-target-[+module+]:
 configure-target-[+module+]:
-       @if [ -d $(TARGET_SUBDIR)/[+module+] ]; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/[+module+]/tmpmulti.out 2> /dev/null; \
          if [ -s $(TARGET_SUBDIR)/[+module+]/tmpmulti.out ]; then \
            if [ -f $(TARGET_SUBDIR)/[+module+]/multilib.out ]; then \
@@ -984,15 +947,8 @@ configure-target-[+module+]:
            else \
              mv $(TARGET_SUBDIR)/[+module+]/tmpmulti.out $(TARGET_SUBDIR)/[+module+]/multilib.out; \
            fi; \
-         fi; \
        fi; exit 0      # break command into two pieces
-       @dir=[+module+] ; \
-       if [ ! -d $(TARGET_SUBDIR) ]; then \
-         true; \
-       elif [ -f $(TARGET_SUBDIR)/[+module+]/Makefile ] ; then \
-         true; \
-       elif echo " $(TARGET_CONFIGDIRS) " | grep " [+module+] " >/dev/null 2>&1; then \
-         if [ -d $(srcdir)/[+module+] ]; then \
+       @if [ -d $(srcdir)/[+module+] ]; then \
            [ -d $(TARGET_SUBDIR)/[+module+] ] || mkdir $(TARGET_SUBDIR)/[+module+];\
            r=`${PWD}`; export r; \
            s=`cd $(srcdir); ${PWD}`; export s; \
@@ -1000,8 +956,13 @@ configure-target-[+module+]:
            AR="$(AR_FOR_TARGET)"; export AR; \
            AS="$(AS_FOR_TARGET)"; export AS; \
            CC="$(CC_FOR_TARGET)"; export CC; \
-           CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
-           CXX="$(CXX_FOR_TARGET)"; export CXX; \
+           CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \[+ 
+       IF raw_cxx +]
+           CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
+           CXX="$(RAW_CXX_FOR_TARGET)"; export CXX; \[+ 
+       ELSE normal_cxx +]
+           CXX="$(CXX_FOR_TARGET)"; export CXX; \[+ 
+       ENDIF raw_cxx +]
            CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
            GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
            DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
@@ -1045,43 +1006,27 @@ configure-target-[+module+]:
              srcdiroption="--srcdir=$${topdir}/[+module+]"; \
              libsrcdir="$$s/[+module+]"; \
            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 [+module+] || true; \
-           else \
-             true; \
-           fi; \
+           rm -f no-such-file || : ; \
+           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+             $(TARGET_CONFIGARGS) $${srcdiroption} \
+             --with-target-subdir="$(TARGET_SUBDIR)" \
+             || exit 1; \
          else \
            true; \
-         fi; \
-       else \
-         true; \
-       fi
+         fi
 
-.PHONY: all-target-[+module+]
+.PHONY: all-target-[+module+] maybe-all-target-[+module+]
+maybe-all-target-[+module+]:
 all-target-[+module+]:
-       @dir=[+module+] ; \
-       if [ -f $(TARGET_SUBDIR)/[+module+]/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/[+module+]; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) [+
+              IF raw_cxx 
+                +] 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' [+ 
+              ENDIF raw_cxx 
+           +] all)
 [+ IF no_check +]
 # Dummy target for uncheckable module.
 .PHONY: check-target-[+module+]
@@ -1089,35 +1034,36 @@ check-target-[+module+]:
 [+ ELSE check +]
 .PHONY: check-target-[+module+]
 check-target-[+module+]:
-       @dir=[+module+] ; \
-       if [ -f $(TARGET_SUBDIR)/[+module+]/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/[+module+]; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) [+
+              IF raw_cxx 
+                +] 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' [+ 
+              ENDIF raw_cxx 
+           +] check)
 [+ ENDIF no_check +]
-[+ IF no_install +][+ ELSE install +]\
-.PHONY: install-target-[+module+]
+[+ IF no_install +]
+.PHONY: install-target-[+module+] maybe-install-target-[+module+]
+maybe-install-target-[+module+]:
+# Dummy target for uninstallable.
+install-target-[+module+]:
+[+ ELSE install +]
+.PHONY: install-target-[+module+] maybe-install-target-[+module+]
+maybe-install-target-[+module+]:
 install-target-[+module+]: installdirs
-       @dir=[+module+] ; \
-       if [ -f $(TARGET_SUBDIR)/[+module+]/Makefile ] ; then \
-         r=`${PWD}`; export r; \
+       @r=`${PWD}`; export r; \
          s=`cd $(srcdir); ${PWD}`; export s; \
          $(SET_LIB_PATH) \
          (cd $(TARGET_SUBDIR)/[+module+]; \
-           $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
-       else \
-         true; \
-       fi
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
 [+ ENDIF no_install +]
 [+ ENDFOR target_modules +]
 
 # gcc is the only module which uses GCC_FLAGS_TO_PASS.
-.PHONY: all-gcc
+.PHONY: all-gcc maybe-all-gcc
+maybe-all-gcc:
 all-gcc:
        @if [ -f ./gcc/Makefile ] ; then \
          r=`${PWD}`; export r; \
@@ -1204,7 +1150,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; \
@@ -1215,98 +1162,103 @@ 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
+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
 
 # 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
+all-autoconf: maybe-all-m4 maybe-all-texinfo
+all-automake: maybe-all-m4 maybe-all-texinfo
+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
+all-bison: maybe-all-texinfo
+configure-target-boehm-gc: $(ALL_GCC_C) maybe-configure-target-qthreads
+all-dejagnu: maybe-all-tcl maybe-all-expect maybe-all-tk
+all-diff: maybe-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
+all-expect: maybe-all-tcl maybe-all-tk
+all-fileutils: maybe-all-libiberty
+all-flex: maybe-all-libiberty maybe-all-bison maybe-all-byacc
+all-gas: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-intl
+all-gcc: maybe-all-libiberty maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib
+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
 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)
+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)
 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
+all-target-gperf: maybe-all-target-libiberty maybe-all-target-libstdc++-v3
+all-gprof: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-intl
+all-grep: maybe-all-libiberty
+all-gzip: maybe-all-libiberty
+all-hello: maybe-all-libiberty
+all-itcl: maybe-all-tcl maybe-all-tk
+all-ld: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-bison maybe-all-byacc maybe-all-flex maybe-all-intl
 configure-target-libgloss: $(ALL_GCC)
-all-target-libgloss: configure-target-newlib
-all-libgui: all-tcl all-tk all-itcl
+all-target-libgloss: maybe-configure-target-newlib
+all-libgui: maybe-all-tcl maybe-all-tk maybe-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-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-libstdc++-v3: $(ALL_GCC_C)
-all-target-libstdc++-v3: all-target-libiberty
+all-target-libstdc++-v3: maybe-all-target-libiberty
 configure-target-libf2c: $(ALL_GCC_C)
-all-target-libf2c: all-target-libiberty
+all-target-libf2c: maybe-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
+all-target-libobjc: maybe-all-target-libiberty
+all-m4: maybe-all-libiberty maybe-all-texinfo
+all-make: maybe-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
+all-opcodes: maybe-all-bfd maybe-all-libiberty
+all-patch: maybe-all-libiberty
+all-prms: maybe-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
+all-recode: maybe-all-libiberty
+all-sed: maybe-all-libiberty
+all-send-pr: maybe-all-prms
+all-sid: maybe-all-tcl maybe-all-tk
+all-sim: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-readline
+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-tk: maybe-all-tcl
+all-texinfo: maybe-all-libiberty
+all-tix: maybe-all-tcl maybe-all-tk
 configure-target-winsup: $(ALL_GCC_C)
-all-target-winsup: all-target-libiberty all-target-libtermcap
-all-uudecode: all-libiberty
+all-target-winsup: maybe-all-target-libiberty maybe-all-target-libtermcap
+all-uudecode: maybe-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
+all-fastjar: maybe-all-zlib maybe-all-libiberty
+configure-target-fastjar: maybe-configure-target-zlib
+all-target-fastjar: maybe-all-target-zlib maybe-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-gdb: maybe-install-tcl maybe-install-tk maybe-install-itcl maybe-install-tix maybe-install-libgui
+install-sid: maybe-install-tcl maybe-install-tk
 
 # 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
 
 # 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
+install-itcl: maybe-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@
+all-gcc: maybe-all-build-libiberty
 
 # Dependencies of all-build-foo on configure-build-foo.
-all-build-libiberty: configure-build-libiberty
+[+ FOR build_modules +]all-build-[+module+]: configure-build-[+module+]
+[+ ENDFOR build_modules +]
 
 # Dependencies of all-target-foo on configure-target-foo.
 [+ FOR target_modules +]all-target-[+module+]: configure-target-[+module+]
 [+ ENDFOR target_modules +]
 
+# 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@
+
 ### other supporting targets
 
 MAKEDIRS= \
index 7a9b4c4..465c703 100755 (executable)
--- a/configure
+++ b/configure
@@ -682,24 +682,8 @@ fi
 
 ### do common part of configure.in
 
-# If the language specific compiler does not exist, but the "gcc" directory does,
-# we will skip this directory; in this case the sub-directory's common part
-# of configure.in will create a small shell script "skip-this-dir" containing
-# commands to completely clean up any temporary or created files.
-
 . ${tmpfile}.com
 
-if test -f skip-this-dir; then
-       # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
-       # and reset the trap handler.
-       trap 0
-       rm -rf Makefile* ${tmpdir}
-       # Execute the final clean-up actions
-       ${config_shell} skip-this-dir
-       # and stop configuring this directory.
-       exit 0
-fi
-
 # some sanity checks on configure.in
 case "${srctrigger}" in
 "")
@@ -1107,12 +1091,6 @@ export CXX
 export CFLAGS
 export CXXFLAGS
 
-all_build_modules=
-if test x"${build_alias}" != x"${host_alias}"
-then
-  all_build_modules='$(ALL_BUILD_MODULES_LIST)'
-fi
-
 # FIXME Should this be done recursively ??? (Useful for e.g. gdbtest)
 # Set up the list of links to be made.
 # ${links} is the list of link names, and ${files} is the list of names to link to.
@@ -1323,7 +1301,6 @@ if [ -f ${srcdir}/${Makefile_in} ] ; then
       -e "s|@oldincludedir@|${oldincludedir}|" \
       -e "s|@infodir@|${infodir}|" \
       -e "s|@mandir@|${mandir}|" \
-      -e "s|@all_build_modules@|${all_build_modules}|" \
       -e "/^CC[        ]*=/{
           :loop1
           /\\\\$/ N
@@ -1362,8 +1339,6 @@ if [ -f ${srcdir}/${Makefile_in} ] ; then
       -e "s:@DEFAULT_LEX@:${DEFAULT_LEX}:" \
       -e "s:@DEFAULT_M4@:${DEFAULT_M4}:" \
           ./Makefile.tem > ${Makefile}
-  sed -e "s:@GDB_TK@:${GDB_TK}:" ${Makefile} >${Makefile}.tem
-  mv -f ${Makefile}.tem ${Makefile}
 
   # If this is a Canadian Cross, preset the values of many more
   # tools.
index 821233d..3ec2380 100644 (file)
@@ -848,13 +848,6 @@ case "$host" in
   *msdosdjgpp*)
     enable_gdbtk=no ;;
 esac
-# Determine whether gdb needs tk/tcl or not.
-case "$enable_gdbtk" in
-  no)
-    GDB_TK="" ;;
-  *)
-    GDB_TK="all-tcl all-tk all-itcl all-tix all-libgui" ;;
-esac
 
 copy_dirs=
 
@@ -1350,25 +1343,67 @@ target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
 
 # This is the final value for target_configdirs.  configdirs already
 # has its final value.  It's time to create some lists of valid targets.
+
+all_build_modules=
+configure_build_modules=
+# Only make build modules if build != host.
+# This should be done more generally, but at the moment it doesn't matter.
+if test ${host_alias} != ${build_alias} ; then
+  all_build_modules=all-build-libiberty
+  configure_build_modules=configure-build-libiberty
+fi
+
 all_host_modules=
 check_host_modules=
 install_host_modules=
+configure_host_modules=
 for module in ${configdirs} ; do
   all_host_modules="${all_host_modules} all-${module}"
   check_host_modules="${check_host_modules} check-${module}"
   install_host_modules="${install_host_modules} install-${module}"
+  configure_host_modules="${configure_host_modules} configure-${module}"
 done
 install_host_modules_nogcc=`echo "${install_host_modules}" | sed -e 's/install-gcc//g'`
 
 all_target_modules=
 check_target_modules=
 install_target_modules=
+configure_target_modules=
 for module in ${target_configdirs} ; do
   all_target_modules="${all_target_modules} all-target-${module}"
   check_target_modules="${check_target_modules} check-target-${module}"
   install_target_modules="${install_target_modules} install-target-${module}"
+  configure_target_modules="${configure_target_modules} configure-target-${module}"
 done
 
+# Determine whether gdb needs tk/tcl or not.
+# Use 'maybe' since enable_gdbtk might be true even if tk isn't available
+# and in that case we want gdb to be built without tk.  Ugh!
+# In fact I believe gdb is the *only* package directly dependent on tk,
+# so we should be able to put the 'maybe's in unconditionally and
+# leave out the maybe dependencies when enable_gdbtk is false.  I'm not
+# 100% sure that that's safe though.
+case "$enable_gdbtk" in
+  no)
+    GDB_TK="" ;;
+  *)
+    GDB_TK="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-tix maybe-all-libgui" ;;
+esac
+
+# Create the 'maybe dependencies'.  This uses a temporary file.
+rm -f maybedep.tmp
+for item in ${all_build_modules} ${all_host_modules} ${all_target_modules} \
+       ${install_host_modules} ${install_target_modules} \
+       ${configure_build_modules} ${configure_host_modules} ${configure_target_modules} \
+       ; do
+  echo "maybe-${item}: ${item}" >> maybedep.tmp
+done
+sed -e '/@maybe_dependencies@/r maybedep.tmp' \
+    -e 's/@maybe_dependencies@//' Makefile > Makefile.tem
+rm -f Makefile
+mv -f Makefile.tem Makefile
+rm -f maybedep.tmp
+
 # Base args.  Strip norecursion, cache-file, srcdir, host, build, target.
 # These are the ones we might not want to pass down to subconfigures.
 baseargs=`echo "${arguments}" | \
@@ -1535,7 +1570,8 @@ case $GCJ_FOR_TARGET in
 esac
 
 # Don't use libstdc++-v3's flags to configure/build itself.
-libstdcxx_flags='`case $$dir in libstdc++-v3 | libjava) ;; *) test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes;; esac` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
+libstdcxx_flags='`test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
+raw_libstdcxx_flags=' -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
 
 if test "x${CXX_FOR_TARGET+set}" = xset; then
   :
@@ -1543,17 +1579,28 @@ elif test -d ${srcdir}/gcc; then
   # We add -shared-libgcc to CXX_FOR_TARGET whenever we use xgcc instead
   # of g++ for linking C++ or Java, because g++ has -shared-libgcc by
   # default whereas gcc does not.
-  CXX_FOR_TARGET='$$r/gcc/`case $$dir in libstdc++-v3 | libjava) echo xgcc -shared-libgcc ;; *) echo g++ ;; esac` -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags
+  # RAW_CXX_FOR_TARGET is for linking C++ or java; CXX_FOR_TARGET is for
+  # all other cases.
+  CXX_FOR_TARGET='$$r/gcc/g++ -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags
+  RAW_CXX_FOR_TARGET='$$r/gcc/xgcc -shared-libgcc -B$$r/gcc/ -nostdinc++ '$raw_libstdcxx_flags
 elif test "$host" = "$target"; then
   CXX_FOR_TARGET='$(CXX)'
+  RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET}
 else
   CXX_FOR_TARGET=`echo c++ | sed -e 's/x/x/' ${program_transform_name}`
+  RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET}
 fi
 case $CXX_FOR_TARGET in
 *' $(FLAGS_FOR_TARGET)') ;;
 *) CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
 esac
+case $RAW_CXX_FOR_TARGET in
+*' $(FLAGS_FOR_TARGET)') ;;
+*) RAW_CXX_FOR_TARGET=$RAW_CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
+esac
+
 qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'`
+qRAW_CXX_FOR_TARGET=`echo "$RAW_CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'`
 
 # We want to defer the evaluation of `cmd`s and shell variables in
 # CXX_FOR_TARGET when recursing in the top-level Makefile, such as for
@@ -1562,9 +1609,13 @@ qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'`
 # can be expanded by the nested make as shell variables, not as make
 # macros.
 qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'`
+qqRAW_CXX_FOR_TARGET=`echo "$qRAW_CXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'`
 
 sedtemp=sed.$$
 cat >$sedtemp <<EOF
+s%@GDB_TK@%${GDB_TK}%
+s%@all_build_modules@%${all_build_modules}%
+s%@configure_build_modules@%${configure_build_modules}%
 s%@all_host_modules@%${all_host_modules}%
 s%@check_host_modules@%${check_host_modules}%
 s%@install_host_modules@%${install_host_modules}%
@@ -1578,7 +1629,9 @@ s%@FLAGS_FOR_TARGET@%${FLAGS_FOR_TARGET}%
 s%@CC_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${CC_FOR_TARGET}%
 s%@GCJ_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${GCJ_FOR_TARGET}%
 s%@CXX_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${qCXX_FOR_TARGET}%
+s%@RAW_CXX_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${qRAW_CXX_FOR_TARGET}%
 s%@CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@%\$(STAGE_CC_WRAPPER) ${qqCXX_FOR_TARGET}%
+s%@RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@%\$(STAGE_CC_WRAPPER) ${qqRAW_CXX_FOR_TARGET}%
 s%@target_subdir@%${target_subdir}%
 s%@build_subdir@%${build_subdir}%
 s%@build_configargs@%${buildargs}%