
# Makefile.in is generated from Makefile.tpl by 'autogen Makefile.def'.
#
# Makefile for directory with subdirs to build.
#   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
#   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
#   Free Software Foundation
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING3.  If not see
# <http://www.gnu.org/licenses/>.
#

# First, test for a proper version of make, but only where one is required.

@if gcc
ifeq (,$(.VARIABLES)) # The variable .VARIABLES, new with 3.80, is never empty.
$(error GNU make version 3.80 or newer is required.)
endif
@endif gcc

# -------------------------------
# Standard Autoconf-set variables
# -------------------------------
VPATH=@srcdir@

build_alias=@build_noncanonical@
build_vendor=@build_vendor@
build_os=@build_os@
build=@build@
host_alias=@host_noncanonical@
host_vendor=@host_vendor@
host_os=@host_os@
host=@host@
target_alias=@target_noncanonical@
target_vendor=@target_vendor@
target_os=@target_os@
target=@target@

program_transform_name = @program_transform_name@

prefix = @prefix@
exec_prefix = @exec_prefix@

srcdir = @srcdir@

bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
includedir = @includedir@
oldincludedir = @oldincludedir@
infodir = @infodir@
datarootdir = @datarootdir@
docdir = @docdir@
pdfdir = @pdfdir@
htmldir = @htmldir@
mandir = @mandir@
man1dir = $(mandir)/man1
man2dir = $(mandir)/man2
man3dir = $(mandir)/man3
man4dir = $(mandir)/man4
man5dir = $(mandir)/man5
man6dir = $(mandir)/man6
man7dir = $(mandir)/man7
man8dir = $(mandir)/man8
man9dir = $(mandir)/man9

INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_DATA = @INSTALL_DATA@
LN = @LN@
LN_S = @LN_S@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@

# -------------------------------------------------
# Miscellaneous non-standard autoconf-set variables
# -------------------------------------------------

# The gcc driver likes to know the arguments it was configured with.
TOPLEVEL_CONFIGURE_ARGUMENTS=@TOPLEVEL_CONFIGURE_ARGUMENTS@

tooldir = @tooldir@
build_tooldir = @build_tooldir@

# This is the name of the environment variable used for the path to
# the libraries.
RPATH_ENVVAR = @RPATH_ENVVAR@

# On targets where RPATH_ENVVAR is PATH, a subdirectory of the GCC build path
# is used instead of the directory itself to avoid including built
# executables in PATH.
GCC_SHLIB_SUBDIR = @GCC_SHLIB_SUBDIR@

# Build programs are put under this directory.
BUILD_SUBDIR = @build_subdir@
# This is set by the configure script to the arguments to use when configuring
# directories built for the build system.
BUILD_CONFIGARGS = @build_configargs@ --with-build-subdir="$(BUILD_SUBDIR)"

# Linker flags to use on the host, for stage1 or when not
# bootstrapping.
STAGE1_LDFLAGS = @stage1_ldflags@

# Libraries to use on the host, for stage1 or when not bootstrapping.
STAGE1_LIBS = @stage1_libs@

# Linker flags to use for stage2 and later.
POSTSTAGE1_LDFLAGS = @poststage1_ldflags@

# Libraries to use for stage2 and later.
POSTSTAGE1_LIBS = @poststage1_libs@

# This is the list of variables to export in the environment when
# configuring any subdirectory.  It must also be exported whenever
# recursing into a build directory in case that directory's Makefile
# re-runs configure.
BASE_EXPORTS = \
	FLEX="$(FLEX)"; export FLEX; \
	LEX="$(LEX)"; export LEX; \
	BISON="$(BISON)"; export BISON; \
	YACC="$(YACC)"; export YACC; \
	M4="$(M4)"; export M4; \
	SED="$(SED)"; export SED; \
	AWK="$(AWK)"; export AWK; \
	MAKEINFO="$(MAKEINFO)"; export MAKEINFO;

# This is the list of variables to export in the environment when
# configuring subdirectories for the build system.
BUILD_EXPORTS = \
	$(BASE_EXPORTS) \
	AR="$(AR_FOR_BUILD)"; export AR; \
	AS="$(AS_FOR_BUILD)"; export AS; \
	CC="$(CC_FOR_BUILD)"; export CC; \
	CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \
	CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
	CXX="$(CXX_FOR_BUILD)"; export CXX; \
	CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
	GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \
	GOC="$(GOC_FOR_BUILD)"; export GOC; \
	GOCFLAGS="$(GOCFLAGS_FOR_BUILD)"; export GOCFLAGS; \
	GDC="$(GDC_FOR_BUILD)"; export GDC; \
	GDCFLAGS="$(GDCFLAGS_FOR_BUILD)"; export GDCFLAGS; \
	DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \
	LD="$(LD_FOR_BUILD)"; export LD; \
	LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \
	NM="$(NM_FOR_BUILD)"; export NM; \
	RANLIB="$(RANLIB_FOR_BUILD)"; export RANLIB; \
	WINDRES="$(WINDRES_FOR_BUILD)"; export WINDRES; \
	WINDMC="$(WINDMC_FOR_BUILD)"; export WINDMC;

# These variables must be set on the make command line for directories
# built for the build system to override those in BASE_FLAGS_TO_PASS.
EXTRA_BUILD_FLAGS = \
	CFLAGS="$(CFLAGS_FOR_BUILD)" \
	LDFLAGS="$(LDFLAGS_FOR_BUILD)"

# This is the list of directories to built for the host system.
SUBDIRS = @configdirs@
TARGET_CONFIGDIRS = @target_configdirs@
# This is set by the configure script to the arguments to use when configuring
# directories built for the host system.
HOST_CONFIGARGS = @host_configargs@
# Host programs are put under this directory, which is . except if building
# with srcdir=..
HOST_SUBDIR = @host_subdir@
# This is the list of variables to export in the environment when
# configuring subdirectories for the host system.  We need to pass
# some to the GCC configure because of its hybrid host/target nature.
HOST_EXPORTS = \
	$(BASE_EXPORTS) \
	CC="$(CC)"; export CC; \
	ADA_CFLAGS="$(ADA_CFLAGS)"; export ADA_CFLAGS; \
	CFLAGS="$(CFLAGS)"; export CFLAGS; \
	CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
	CXX="$(CXX)"; export CXX; \
	CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \
	GFORTRAN="$(GFORTRAN)"; export GFORTRAN; \
	GOC="$(GOC)"; export GOC; \
	GDC="$(GDC)"; export GDC; \
	AR="$(AR)"; export AR; \
	AS="$(AS)"; export AS; \
	CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
	DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
	LD="$(LD)"; export LD; \
	LDFLAGS="$(STAGE1_LDFLAGS) $(LDFLAGS)"; export LDFLAGS; \
	NM="$(NM)"; export NM; \
	RANLIB="$(RANLIB)"; export RANLIB; \
	WINDRES="$(WINDRES)"; export WINDRES; \
	WINDMC="$(WINDMC)"; export WINDMC; \
	OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \
	OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \
	OTOOL="$(OTOOL)"; export OTOOL; \
	READELF="$(READELF)"; export READELF; \
	AR_FOR_TARGET="$(AR_FOR_TARGET)"; export AR_FOR_TARGET; \
	AS_FOR_TARGET="$(AS_FOR_TARGET)"; export AS_FOR_TARGET; \
	GCC_FOR_TARGET="$(GCC_FOR_TARGET)"; export GCC_FOR_TARGET; \
	LD_FOR_TARGET="$(LD_FOR_TARGET)"; export LD_FOR_TARGET; \
	NM_FOR_TARGET="$(NM_FOR_TARGET)"; export NM_FOR_TARGET; \
	OBJDUMP_FOR_TARGET="$(OBJDUMP_FOR_TARGET)"; export OBJDUMP_FOR_TARGET; \
	OBJCOPY_FOR_TARGET="$(OBJCOPY_FOR_TARGET)"; export OBJCOPY_FOR_TARGET; \
	OTOOL_FOR_TARGET="$(OTOOL_FOR_TARGET)"; export OTOOL_FOR_TARGET; \
	RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)"; export RANLIB_FOR_TARGET; \
	READELF_FOR_TARGET="$(READELF_FOR_TARGET)"; export READELF_FOR_TARGET; \
	TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \
	HOST_LIBS="$(STAGE1_LIBS)"; export HOST_LIBS; \
	GMPLIBS="$(HOST_GMPLIBS)"; export GMPLIBS; \
	GMPINC="$(HOST_GMPINC)"; export GMPINC; \
	ISLLIBS="$(HOST_ISLLIBS)"; export ISLLIBS; \
	ISLINC="$(HOST_ISLINC)"; export ISLINC; \
	LIBELFLIBS="$(HOST_LIBELFLIBS)"; export LIBELFLIBS; \
	LIBELFINC="$(HOST_LIBELFINC)"; export LIBELFINC; \
	XGCC_FLAGS_FOR_TARGET="$(XGCC_FLAGS_FOR_TARGET)"; export XGCC_FLAGS_FOR_TARGET; \
@if gcc-bootstrap
	$(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \
@endif gcc-bootstrap
	$(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR);

POSTSTAGE1_CXX_EXPORT = \
	CXX='$(CXX)'; export CXX; \
	CXX_FOR_BUILD='$(CXX_FOR_BUILD)'; export CXX_FOR_BUILD;
@if target-libstdc++-v3-bootstrap
# Override the above if we're bootstrapping C++.
POSTSTAGE1_CXX_EXPORT = \
	CXX="$(STAGE_CC_WRAPPER) $$r/$(HOST_SUBDIR)/prev-gcc/xg++$(exeext) \
	  -B$$r/$(HOST_SUBDIR)/prev-gcc/ -B$(build_tooldir)/bin/ -nostdinc++ \
	  -B$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/src/.libs \
	  -B$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs \
	  `if $(LEAN); then echo ' -isystem '; else echo ' -I'; fi`$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/include/$(TARGET_SUBDIR) \
	  `if $(LEAN); then echo ' -isystem '; else echo ' -I'; fi`$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/include \
	  `if $(LEAN); then echo ' -isystem '; else echo ' -I'; fi`$$s/libstdc++-v3/libsupc++ \
	  -L$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/src/.libs \
	  -L$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs"; \
	  export CXX; \
	CXX_FOR_BUILD="$$CXX"; export CXX_FOR_BUILD;
@endif target-libstdc++-v3-bootstrap

# Similar, for later GCC stages.
POSTSTAGE1_HOST_EXPORTS = \
	$(HOST_EXPORTS) \
	CC="$(STAGE_CC_WRAPPER) $$r/$(HOST_SUBDIR)/prev-gcc/xgcc$(exeext) \
	  -B$$r/$(HOST_SUBDIR)/prev-gcc/ -B$(build_tooldir)/bin/ \
	  $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CC; \
	CC_FOR_BUILD="$$CC"; export CC_FOR_BUILD; \
	$(POSTSTAGE1_CXX_EXPORT) \
	$(LTO_EXPORTS) \
	GDC="$$r/$(HOST_SUBDIR)/prev-gcc/gdc$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/ \
	  -B$(build_tooldir)/bin/ $(GDC_FLAGS_FOR_TARGET) \
	  -B$$r/prev-$(TARGET_SUBDIR)/libphobos/src \
	  -I$$r/prev-$(TARGET_SUBDIR)/libphobos/libdruntime -I$$s/libphobos/libdruntime \
	  -L$$r/prev-$(TARGET_SUBDIR)/libphobos/src/.libs \
	  -L$$r/prev-$(TARGET_SUBDIR)/libphobos/libdruntime/.libs"; \
	export GDC; \
	GDC_FOR_BUILD="$$GDC"; export GDC_FOR_BUILD; \
	GNATBIND="$$r/$(HOST_SUBDIR)/prev-gcc/gnatbind"; export GNATBIND; \
	LDFLAGS="$(POSTSTAGE1_LDFLAGS) $(BOOT_LDFLAGS)"; export LDFLAGS; \
	HOST_LIBS="$(POSTSTAGE1_LIBS)"; export HOST_LIBS;

# Target libraries are put under this directory:
TARGET_SUBDIR = @target_subdir@
# This is set by the configure script to the arguments to use when configuring
# directories built for the target.
TARGET_CONFIGARGS = @target_configargs@ --with-target-subdir="$(TARGET_SUBDIR)"
# This is the list of variables to export in the environment when
# configuring subdirectories for the target system.
BASE_TARGET_EXPORTS = \
	$(BASE_EXPORTS) \
	AR="$(AR_FOR_TARGET)"; export AR; \
	AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \
	CC="$(CC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CC; \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
	CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	GFORTRAN="$(GFORTRAN_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GFORTRAN; \
	GOC="$(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GOC; \
	GDC="$(GDC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GDC; \
	DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
	LD="$(COMPILER_LD_FOR_TARGET)"; export LD; \
	LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
	LIPO="$(LIPO_FOR_TARGET)"; export LIPO; \
	NM="$(COMPILER_NM_FOR_TARGET)"; export NM; \
	OBJDUMP="$(OBJDUMP_FOR_TARGET)"; export OBJDUMP; \
	OBJCOPY="$(OBJCOPY_FOR_TARGET)"; export OBJCOPY; \
	OTOOL="$(OTOOL_FOR_TARGET)"; export OTOOL; \
	RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
	READELF="$(READELF_FOR_TARGET)"; export READELF; \
	STRIP="$(STRIP_FOR_TARGET)"; export STRIP; \
	WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
	WINDMC="$(WINDMC_FOR_TARGET)"; export WINDMC; \
@if gcc-bootstrap
	$(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \
@endif gcc-bootstrap
	$(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \
	TARGET_CONFIGDIRS="$(TARGET_CONFIGDIRS)"; export TARGET_CONFIGDIRS;

RAW_CXX_TARGET_EXPORTS = \
	$(BASE_TARGET_EXPORTS) \
	CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
	CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX;

NORMAL_TARGET_EXPORTS = \
	$(BASE_TARGET_EXPORTS) \
	CXX="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX;

# Where to find GMP
HOST_GMPLIBS = @gmplibs@
HOST_GMPINC = @gmpinc@

# Where to find isl
HOST_ISLLIBS = @isllibs@
HOST_ISLINC = @islinc@

# Where to find libelf
HOST_LIBELFLIBS = @libelflibs@
HOST_LIBELFINC = @libelfinc@

# ----------------------------------------------
# Programs producing files for the BUILD machine
# ----------------------------------------------

SHELL = @SHELL@

# pwd command to use.  Allow user to override default by setting PWDCMD in
# the environment to account for automounters.  The make variable must not
# be called PWDCMD, otherwise the value set here is passed to make
# subprocesses and overrides the setting from the user's environment.
# Don't use PWD since it is a common shell environment variable and we
# don't want to corrupt it.
PWD_COMMAND = $${PWDCMD-pwd}

# compilers to use to create programs which must be run in the build
# environment.
AR_FOR_BUILD = @AR_FOR_BUILD@
AS_FOR_BUILD = @AS_FOR_BUILD@
CC_FOR_BUILD = @CC_FOR_BUILD@
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@
CXX_FOR_BUILD = @CXX_FOR_BUILD@
DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@
GFORTRAN_FOR_BUILD = @GFORTRAN_FOR_BUILD@
GOC_FOR_BUILD = @GOC_FOR_BUILD@
GDC_FOR_BUILD = @GDC_FOR_BUILD@
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
LD_FOR_BUILD = @LD_FOR_BUILD@
NM_FOR_BUILD = @NM_FOR_BUILD@
RANLIB_FOR_BUILD = @RANLIB_FOR_BUILD@
WINDMC_FOR_BUILD = @WINDMC_FOR_BUILD@
WINDRES_FOR_BUILD = @WINDRES_FOR_BUILD@

# Special variables passed down in EXTRA_GCC_FLAGS.  They are defined
# here so that they can be overridden by Makefile fragments.
BUILD_PREFIX = @BUILD_PREFIX@
BUILD_PREFIX_1 = @BUILD_PREFIX_1@

# Flags to pass to stage2 and later makes.  They are defined
# here so that they can be overridden by Makefile fragments.
BOOT_CFLAGS= -g -O2
BOOT_LDFLAGS=
BOOT_ADAFLAGS= -gnatpg

AWK = @AWK@
SED = @SED@
BISON = @BISON@
YACC = @YACC@
FLEX = @FLEX@
LEX = @LEX@
M4 = @M4@
MAKEINFO = @MAKEINFO@
EXPECT = @EXPECT@
RUNTEST = @RUNTEST@

AUTO_PROFILE = gcc-auto-profile -c 10000000

# This just becomes part of the MAKEINFO definition passed down to
# sub-makes.  It lets flags be given on the command line while still
# using the makeinfo from the object tree.
# (Default to avoid splitting info files by setting the threshold high.)
MAKEINFOFLAGS = --split-size=5000000

# ---------------------------------------------
# Programs producing files for the HOST machine
# ---------------------------------------------

AS = @AS@
AR = @AR@
AR_FLAGS = rc
CC = @CC@
CXX = @CXX@
DLLTOOL = @DLLTOOL@
LD = @LD@
LIPO = @LIPO@
NM = @NM@
OBJDUMP = @OBJDUMP@
OTOOL = @OTOOL@
RANLIB = @RANLIB@
READELF = @READELF@
STRIP = @STRIP@
WINDRES = @WINDRES@
WINDMC = @WINDMC@

GDC = @GDC@
GNATBIND = @GNATBIND@
GNATMAKE = @GNATMAKE@

CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
LIBCFLAGS = $(CFLAGS)
CXXFLAGS = @CXXFLAGS@
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
GOCFLAGS = $(CFLAGS)
GDCFLAGS = $(CFLAGS)

CREATE_GCOV = create_gcov

TFLAGS =

# Defaults for all stages; some are overridden below.

STAGE_CFLAGS = $(BOOT_CFLAGS)
STAGE_TFLAGS = $(TFLAGS)
STAGE_CONFIGURE_FLAGS=@stage2_werror_flag@


# Defaults for stage 1; some are overridden below.
STAGE1_CFLAGS = $(STAGE_CFLAGS)
STAGE1_CXXFLAGS = $(CXXFLAGS)
@if target-libstdc++-v3-bootstrap
# Override the above if we're bootstrapping C++.
STAGE1_CXXFLAGS = $(STAGE1_CFLAGS)
@endif target-libstdc++-v3-bootstrap
STAGE1_TFLAGS = $(STAGE_TFLAGS)
STAGE1_CONFIGURE_FLAGS = $(STAGE_CONFIGURE_FLAGS)

# Defaults for stage 2; some are overridden below.
STAGE2_CFLAGS = $(STAGE_CFLAGS)
STAGE2_CXXFLAGS = $(CXXFLAGS)
@if target-libstdc++-v3-bootstrap
# Override the above if we're bootstrapping C++.
STAGE2_CXXFLAGS = $(STAGE2_CFLAGS)
@endif target-libstdc++-v3-bootstrap
STAGE2_TFLAGS = $(STAGE_TFLAGS)
STAGE2_CONFIGURE_FLAGS = $(STAGE_CONFIGURE_FLAGS)

# Defaults for stage 3; some are overridden below.
STAGE3_CFLAGS = $(STAGE_CFLAGS)
STAGE3_CXXFLAGS = $(CXXFLAGS)
@if target-libstdc++-v3-bootstrap
# Override the above if we're bootstrapping C++.
STAGE3_CXXFLAGS = $(STAGE3_CFLAGS)
@endif target-libstdc++-v3-bootstrap
STAGE3_TFLAGS = $(STAGE_TFLAGS)
STAGE3_CONFIGURE_FLAGS = $(STAGE_CONFIGURE_FLAGS)

# Defaults for stage 4; some are overridden below.
STAGE4_CFLAGS = $(STAGE_CFLAGS)
STAGE4_CXXFLAGS = $(CXXFLAGS)
@if target-libstdc++-v3-bootstrap
# Override the above if we're bootstrapping C++.
STAGE4_CXXFLAGS = $(STAGE4_CFLAGS)
@endif target-libstdc++-v3-bootstrap
STAGE4_TFLAGS = $(STAGE_TFLAGS)
STAGE4_CONFIGURE_FLAGS = $(STAGE_CONFIGURE_FLAGS)

# Defaults for stage profile; some are overridden below.
STAGEprofile_CFLAGS = $(STAGE_CFLAGS)
STAGEprofile_CXXFLAGS = $(CXXFLAGS)
@if target-libstdc++-v3-bootstrap
# Override the above if we're bootstrapping C++.
STAGEprofile_CXXFLAGS = $(STAGEprofile_CFLAGS)
@endif target-libstdc++-v3-bootstrap
STAGEprofile_TFLAGS = $(STAGE_TFLAGS)
STAGEprofile_CONFIGURE_FLAGS = $(STAGE_CONFIGURE_FLAGS)

# Defaults for stage train; some are overridden below.
STAGEtrain_CFLAGS = $(STAGE_CFLAGS)
STAGEtrain_CXXFLAGS = $(CXXFLAGS)
@if target-libstdc++-v3-bootstrap
# Override the above if we're bootstrapping C++.
STAGEtrain_CXXFLAGS = $(STAGEtrain_CFLAGS)
@endif target-libstdc++-v3-bootstrap
STAGEtrain_TFLAGS = $(STAGE_TFLAGS)
STAGEtrain_CONFIGURE_FLAGS = $(STAGE_CONFIGURE_FLAGS)

# Defaults for stage feedback; some are overridden below.
STAGEfeedback_CFLAGS = $(STAGE_CFLAGS)
STAGEfeedback_CXXFLAGS = $(CXXFLAGS)
@if target-libstdc++-v3-bootstrap
# Override the above if we're bootstrapping C++.
STAGEfeedback_CXXFLAGS = $(STAGEfeedback_CFLAGS)
@endif target-libstdc++-v3-bootstrap
STAGEfeedback_TFLAGS = $(STAGE_TFLAGS)
STAGEfeedback_CONFIGURE_FLAGS = $(STAGE_CONFIGURE_FLAGS)

# Defaults for stage autoprofile; some are overridden below.
STAGEautoprofile_CFLAGS = $(STAGE_CFLAGS)
STAGEautoprofile_CXXFLAGS = $(CXXFLAGS)
@if target-libstdc++-v3-bootstrap
# Override the above if we're bootstrapping C++.
STAGEautoprofile_CXXFLAGS = $(STAGEautoprofile_CFLAGS)
@endif target-libstdc++-v3-bootstrap
STAGEautoprofile_TFLAGS = $(STAGE_TFLAGS)
STAGEautoprofile_CONFIGURE_FLAGS = $(STAGE_CONFIGURE_FLAGS)

# Defaults for stage autofeedback; some are overridden below.
STAGEautofeedback_CFLAGS = $(STAGE_CFLAGS)
STAGEautofeedback_CXXFLAGS = $(CXXFLAGS)
@if target-libstdc++-v3-bootstrap
# Override the above if we're bootstrapping C++.
STAGEautofeedback_CXXFLAGS = $(STAGEautofeedback_CFLAGS)
@endif target-libstdc++-v3-bootstrap
STAGEautofeedback_TFLAGS = $(STAGE_TFLAGS)
STAGEautofeedback_CONFIGURE_FLAGS = $(STAGE_CONFIGURE_FLAGS)


# By default, C and C++ are the only stage1 languages, because they are the
# only ones we require to build with the bootstrap compiler, and also the
# only ones useful for building stage2.

STAGE1_CFLAGS = @stage1_cflags@
STAGE1_CHECKING = @stage1_checking@
STAGE1_LANGUAGES = @stage1_languages@
# * We force-disable intermodule optimizations, even if
#   --enable-intermodule was passed, since the installed compiler
#   probably can't handle them.  Luckily, autoconf always respects
#   the last argument when conflicting --enable arguments are passed.
# * Likewise, we force-disable coverage flags, since the installed
#   compiler probably has never heard of them.
# * We also disable -Wformat, since older GCCs don't understand newer %s.
STAGE1_CONFIGURE_FLAGS = --disable-intermodule $(STAGE1_CHECKING) \
	  --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" \
	  --disable-build-format-warnings

# When using the slow stage1 compiler disable IL verification and forcefully
# enable it when using the stage2 compiler instead.  As we later compare
# stage2 and stage3 we are merely avoid doing redundant work, plus we apply
# checking when building all target libraries for release builds.
STAGE1_TFLAGS += -fno-checking
STAGE2_CFLAGS += -fno-checking
STAGE2_TFLAGS += -fno-checking
STAGE3_CFLAGS += -fchecking=1
STAGE3_TFLAGS += -fchecking=1

STAGEprofile_CFLAGS = $(STAGE2_CFLAGS) -fprofile-generate
STAGEprofile_TFLAGS = $(STAGE2_TFLAGS)

STAGEtrain_CFLAGS = $(filter-out -fchecking=1,$(STAGE3_CFLAGS))
STAGEtrain_TFLAGS = $(filter-out -fchecking=1,$(STAGE3_TFLAGS))

STAGEfeedback_CFLAGS = $(STAGE4_CFLAGS) -fprofile-use
STAGEfeedback_TFLAGS = $(STAGE4_TFLAGS)

STAGEautoprofile_CFLAGS = $(STAGE2_CFLAGS) -g
STAGEautoprofile_TFLAGS = $(STAGE2_TFLAGS)

STAGEautofeedback_CFLAGS = $(STAGE3_CFLAGS)
STAGEautofeedback_TFLAGS = $(STAGE3_TFLAGS)

do-compare = @do_compare@
do-compare3 = $(do-compare)

# -----------------------------------------------
# Programs producing files for the TARGET machine
# -----------------------------------------------

AR_FOR_TARGET=@AR_FOR_TARGET@
AS_FOR_TARGET=@AS_FOR_TARGET@
CC_FOR_TARGET=$(STAGE_CC_WRAPPER) @CC_FOR_TARGET@

# If GCC_FOR_TARGET is not overriden on the command line, then this
# variable is passed down to the gcc Makefile, where it is used to
# build libgcc2.a.  We define it here so that it can itself be
# overridden on the command line.
GCC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GCC_FOR_TARGET@
CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @CXX_FOR_TARGET@
RAW_CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @RAW_CXX_FOR_TARGET@
GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) @GFORTRAN_FOR_TARGET@
GOC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GOC_FOR_TARGET@
GDC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GDC_FOR_TARGET@
DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
LD_FOR_TARGET=@LD_FOR_TARGET@

LIPO_FOR_TARGET=@LIPO_FOR_TARGET@
NM_FOR_TARGET=@NM_FOR_TARGET@
OBJDUMP_FOR_TARGET=@OBJDUMP_FOR_TARGET@
OBJCOPY_FOR_TARGET=@OBJCOPY_FOR_TARGET@
OTOOL_FOR_TARGET=@OTOOL_FOR_TARGET@
RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@
READELF_FOR_TARGET=@READELF_FOR_TARGET@
STRIP_FOR_TARGET=@STRIP_FOR_TARGET@
WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@
WINDMC_FOR_TARGET=@WINDMC_FOR_TARGET@

COMPILER_AS_FOR_TARGET=@COMPILER_AS_FOR_TARGET@
COMPILER_LD_FOR_TARGET=@COMPILER_LD_FOR_TARGET@
COMPILER_NM_FOR_TARGET=@COMPILER_NM_FOR_TARGET@

CFLAGS_FOR_TARGET = @CFLAGS_FOR_TARGET@
CXXFLAGS_FOR_TARGET = @CXXFLAGS_FOR_TARGET@

LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
LDFLAGS_FOR_TARGET = @LDFLAGS_FOR_TARGET@
GOCFLAGS_FOR_TARGET = -O2 -g
GDCFLAGS_FOR_TARGET = -O2 -g

FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@
SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
DEBUG_PREFIX_CFLAGS_FOR_TARGET = @DEBUG_PREFIX_CFLAGS_FOR_TARGET@

XGCC_FLAGS_FOR_TARGET = $(FLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)

# ------------------------------------
# Miscellaneous targets and flag lists
# ------------------------------------

# The first rule in the file had better be this one.  Don't put any above it.
# This lives here to allow makefile fragments to contain dependencies.
all:

#### host and target specific makefile fragments come in here.
@target_makefile_frag@
@alphaieee_frag@
@ospace_frag@
@host_makefile_frag@
###

# This is the list of directories that may be needed in RPATH_ENVVAR
# so that programs built for the target machine work.
TARGET_LIB_PATH = $(TARGET_LIB_PATH_libstdc++-v3)$(TARGET_LIB_PATH_libsanitizer)$(TARGET_LIB_PATH_libvtv)$(TARGET_LIB_PATH_liboffloadmic)$(TARGET_LIB_PATH_libssp)$(TARGET_LIB_PATH_libphobos)$(TARGET_LIB_PATH_libgomp)$(TARGET_LIB_PATH_libitm)$(TARGET_LIB_PATH_libatomic)$(HOST_LIB_PATH_gcc)

@if target-libstdc++-v3
TARGET_LIB_PATH_libstdc++-v3 = $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs:
@endif target-libstdc++-v3

@if target-libsanitizer
TARGET_LIB_PATH_libsanitizer = $$r/$(TARGET_SUBDIR)/libsanitizer/.libs:
@endif target-libsanitizer

@if target-libvtv
TARGET_LIB_PATH_libvtv = $$r/$(TARGET_SUBDIR)/libvtv/.libs:
@endif target-libvtv

@if target-liboffloadmic
TARGET_LIB_PATH_liboffloadmic = $$r/$(TARGET_SUBDIR)/liboffloadmic/.libs:
@endif target-liboffloadmic

@if target-libssp
TARGET_LIB_PATH_libssp = $$r/$(TARGET_SUBDIR)/libssp/.libs:
@endif target-libssp

@if target-libphobos
TARGET_LIB_PATH_libphobos = $$r/$(TARGET_SUBDIR)/libphobos/src/.libs:
@endif target-libphobos

@if target-libgomp
TARGET_LIB_PATH_libgomp = $$r/$(TARGET_SUBDIR)/libgomp/.libs:
@endif target-libgomp

@if target-libitm
TARGET_LIB_PATH_libitm = $$r/$(TARGET_SUBDIR)/libitm/.libs:
@endif target-libitm

@if target-libatomic
TARGET_LIB_PATH_libatomic = $$r/$(TARGET_SUBDIR)/libatomic/.libs:
@endif target-libatomic



# This is the list of directories that may be needed in RPATH_ENVVAR
# so that programs built for the host machine work.
HOST_LIB_PATH = $(HOST_LIB_PATH_gmp)$(HOST_LIB_PATH_mpfr)$(HOST_LIB_PATH_mpc)$(HOST_LIB_PATH_isl)$(HOST_LIB_PATH_libelf)

# Define HOST_LIB_PATH_gcc here, for the sake of TARGET_LIB_PATH, ouch
@if gcc
HOST_LIB_PATH_gcc = $$r/$(HOST_SUBDIR)/gcc$(GCC_SHLIB_SUBDIR):$$r/$(HOST_SUBDIR)/prev-gcc$(GCC_SHLIB_SUBDIR):
@endif gcc


@if gmp
HOST_LIB_PATH_gmp = \
  $$r/$(HOST_SUBDIR)/gmp/.libs:$$r/$(HOST_SUBDIR)/prev-gmp/.libs:
@endif gmp

@if mpfr
HOST_LIB_PATH_mpfr = \
  $$r/$(HOST_SUBDIR)/mpfr/src/.libs:$$r/$(HOST_SUBDIR)/prev-mpfr/src/.libs:
@endif mpfr

@if mpc
HOST_LIB_PATH_mpc = \
  $$r/$(HOST_SUBDIR)/mpc/src/.libs:$$r/$(HOST_SUBDIR)/prev-mpc/src/.libs:
@endif mpc

@if isl
HOST_LIB_PATH_isl = \
  $$r/$(HOST_SUBDIR)/isl/.libs:$$r/$(HOST_SUBDIR)/prev-isl/.libs:
@endif isl

@if libelf
HOST_LIB_PATH_libelf = \
  $$r/$(HOST_SUBDIR)/libelf/.libs:$$r/$(HOST_SUBDIR)/prev-libelf/.libs:
@endif libelf


CXX_FOR_TARGET_FLAG_TO_PASS = \
	"CXX_FOR_TARGET=$(CXX_FOR_TARGET)"
@if target-libstdc++-v3
# CXX_FOR_TARGET is tricky to get right for target libs that require a
# functional C++ compiler.  When we recurse, if we expand
# CXX_FOR_TARGET before configuring libstdc++-v3, we won't get
# libstdc++ include flags from the script.  Instead, we get an
# -funconfigured-* word, so that we'll get errors if this invalid C++
# command line is used for anything, but also so that we can use the
# word to decide whether or not to pass on this CXX_FOR_TARGET.  If we
# don't pass it on, sub-make will use the default definition, that
# re-expands it at the time of use, so we'll get it right when we need
# it.  One potential exception is the expansion of CXX_FOR_TARGET
# passed down as part of CXX within TARGET_FLAGS, but this wouldn't
# really work, for C++ host programs can't depend on the current-stage
# C++ target library.
CXX_FOR_TARGET_FLAG_TO_PASS = \
	$(shell if echo "$(CXX_FOR_TARGET)" | grep " -funconfigured-" > /dev/null; then :; else echo '"CXX_FOR_TARGET=$(CXX_FOR_TARGET)"'; fi)
@endif target-libstdc++-v3

# Flags to pass down to all sub-makes. STAGE*FLAGS,
# MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
# overrideable (for a bootstrap build stage1 also builds gcc.info).
BASE_FLAGS_TO_PASS = \
	"DESTDIR=$(DESTDIR)" \
	"RPATH_ENVVAR=$(RPATH_ENVVAR)" \
	"TARGET_SUBDIR=$(TARGET_SUBDIR)" \
	"bindir=$(bindir)" \
	"datadir=$(datadir)" \
	"exec_prefix=$(exec_prefix)" \
	"includedir=$(includedir)" \
	"datarootdir=$(datarootdir)" \
	"docdir=$(docdir)" \
	"infodir=$(infodir)" \
	"pdfdir=$(pdfdir)" \
	"htmldir=$(htmldir)" \
	"libdir=$(libdir)" \
	"libexecdir=$(libexecdir)" \
	"lispdir=$(lispdir)" \
	"localstatedir=$(localstatedir)" \
	"mandir=$(mandir)" \
	"oldincludedir=$(oldincludedir)" \
	"prefix=$(prefix)" \
	"sbindir=$(sbindir)" \
	"sharedstatedir=$(sharedstatedir)" \
	"sysconfdir=$(sysconfdir)" \
	"tooldir=$(tooldir)" \
	"build_tooldir=$(build_tooldir)" \
	"target_alias=$(target_alias)" \
	"AWK=$(AWK)" \
	"BISON=$(BISON)" \
	"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
	"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
	"CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
	"EXPECT=$(EXPECT)" \
	"FLEX=$(FLEX)" \
	"INSTALL=$(INSTALL)" \
	"INSTALL_DATA=$(INSTALL_DATA)" \
	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
	"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
	"LDFLAGS_FOR_BUILD=$(LDFLAGS_FOR_BUILD)" \
	"LEX=$(LEX)" \
	"M4=$(M4)" \
	"MAKE=$(MAKE)" \
	"RUNTEST=$(RUNTEST)" \
	"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
	"SED=$(SED)" \
	"SHELL=$(SHELL)" \
	"YACC=$(YACC)" \
	"`echo 'ADAFLAGS=$(ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \
	"ADA_CFLAGS=$(ADA_CFLAGS)" \
	"AR_FLAGS=$(AR_FLAGS)" \
	"`echo 'BOOT_ADAFLAGS=$(BOOT_ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \
	"BOOT_CFLAGS=$(BOOT_CFLAGS)" \
	"BOOT_LDFLAGS=$(BOOT_LDFLAGS)" \
	"CFLAGS=$(CFLAGS)" \
	"CXXFLAGS=$(CXXFLAGS)" \
	"LDFLAGS=$(LDFLAGS)" \
	"LIBCFLAGS=$(LIBCFLAGS)" \
	"LIBCXXFLAGS=$(LIBCXXFLAGS)" \
	"STAGE1_CHECKING=$(STAGE1_CHECKING)" \
	"STAGE1_LANGUAGES=$(STAGE1_LANGUAGES)" \
	"GNATBIND=$(GNATBIND)" \
	"GNATMAKE=$(GNATMAKE)" \
	"GDC=$(GDC)" \
	"GDCFLAGS=$(GDCFLAGS)" \
	"AR_FOR_TARGET=$(AR_FOR_TARGET)" \
	"AS_FOR_TARGET=$(AS_FOR_TARGET)" \
	"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
	"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
	"CPPFLAGS_FOR_TARGET=$(CPPFLAGS_FOR_TARGET)" \
	"CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \
	"DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \
	"FLAGS_FOR_TARGET=$(FLAGS_FOR_TARGET)" \
	"GFORTRAN_FOR_TARGET=$(GFORTRAN_FOR_TARGET)" \
	"GOC_FOR_TARGET=$(GOC_FOR_TARGET)" \
	"GOCFLAGS_FOR_TARGET=$(GOCFLAGS_FOR_TARGET)" \
	"GDC_FOR_TARGET=$(GDC_FOR_TARGET)" \
	"GDCFLAGS_FOR_TARGET=$(GDCFLAGS_FOR_TARGET)" \
	"LD_FOR_TARGET=$(LD_FOR_TARGET)" \
	"LIPO_FOR_TARGET=$(LIPO_FOR_TARGET)" \
	"LDFLAGS_FOR_TARGET=$(LDFLAGS_FOR_TARGET)" \
	"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
	"LIBCXXFLAGS_FOR_TARGET=$(LIBCXXFLAGS_FOR_TARGET)" \
	"NM_FOR_TARGET=$(NM_FOR_TARGET)" \
	"OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET)" \
	"OBJCOPY_FOR_TARGET=$(OBJCOPY_FOR_TARGET)" \
	"RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \
	"READELF_FOR_TARGET=$(READELF_FOR_TARGET)" \
	"STRIP_FOR_TARGET=$(STRIP_FOR_TARGET)" \
	"WINDRES_FOR_TARGET=$(WINDRES_FOR_TARGET)" \
	"WINDMC_FOR_TARGET=$(WINDMC_FOR_TARGET)" \
	"BUILD_CONFIG=$(BUILD_CONFIG)" \
	"`echo 'LANGUAGES=$(LANGUAGES)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \
	"LEAN=$(LEAN)" \
	"STAGE1_CFLAGS=$(STAGE1_CFLAGS)" \
	"STAGE1_CXXFLAGS=$(STAGE1_CXXFLAGS)" \
	"STAGE1_GENERATOR_CFLAGS=$(STAGE1_GENERATOR_CFLAGS)" \
	"STAGE1_TFLAGS=$(STAGE1_TFLAGS)" \
	"STAGE2_CFLAGS=$(STAGE2_CFLAGS)" \
	"STAGE2_CXXFLAGS=$(STAGE2_CXXFLAGS)" \
	"STAGE2_GENERATOR_CFLAGS=$(STAGE2_GENERATOR_CFLAGS)" \
	"STAGE2_TFLAGS=$(STAGE2_TFLAGS)" \
	"STAGE3_CFLAGS=$(STAGE3_CFLAGS)" \
	"STAGE3_CXXFLAGS=$(STAGE3_CXXFLAGS)" \
	"STAGE3_GENERATOR_CFLAGS=$(STAGE3_GENERATOR_CFLAGS)" \
	"STAGE3_TFLAGS=$(STAGE3_TFLAGS)" \
	"STAGE4_CFLAGS=$(STAGE4_CFLAGS)" \
	"STAGE4_CXXFLAGS=$(STAGE4_CXXFLAGS)" \
	"STAGE4_GENERATOR_CFLAGS=$(STAGE4_GENERATOR_CFLAGS)" \
	"STAGE4_TFLAGS=$(STAGE4_TFLAGS)" \
	"STAGEprofile_CFLAGS=$(STAGEprofile_CFLAGS)" \
	"STAGEprofile_CXXFLAGS=$(STAGEprofile_CXXFLAGS)" \
	"STAGEprofile_GENERATOR_CFLAGS=$(STAGEprofile_GENERATOR_CFLAGS)" \
	"STAGEprofile_TFLAGS=$(STAGEprofile_TFLAGS)" \
	"STAGEtrain_CFLAGS=$(STAGEtrain_CFLAGS)" \
	"STAGEtrain_CXXFLAGS=$(STAGEtrain_CXXFLAGS)" \
	"STAGEtrain_GENERATOR_CFLAGS=$(STAGEtrain_GENERATOR_CFLAGS)" \
	"STAGEtrain_TFLAGS=$(STAGEtrain_TFLAGS)" \
	"STAGEfeedback_CFLAGS=$(STAGEfeedback_CFLAGS)" \
	"STAGEfeedback_CXXFLAGS=$(STAGEfeedback_CXXFLAGS)" \
	"STAGEfeedback_GENERATOR_CFLAGS=$(STAGEfeedback_GENERATOR_CFLAGS)" \
	"STAGEfeedback_TFLAGS=$(STAGEfeedback_TFLAGS)" \
	"STAGEautoprofile_CFLAGS=$(STAGEautoprofile_CFLAGS)" \
	"STAGEautoprofile_CXXFLAGS=$(STAGEautoprofile_CXXFLAGS)" \
	"STAGEautoprofile_GENERATOR_CFLAGS=$(STAGEautoprofile_GENERATOR_CFLAGS)" \
	"STAGEautoprofile_TFLAGS=$(STAGEautoprofile_TFLAGS)" \
	"STAGEautofeedback_CFLAGS=$(STAGEautofeedback_CFLAGS)" \
	"STAGEautofeedback_CXXFLAGS=$(STAGEautofeedback_CXXFLAGS)" \
	"STAGEautofeedback_GENERATOR_CFLAGS=$(STAGEautofeedback_GENERATOR_CFLAGS)" \
	"STAGEautofeedback_TFLAGS=$(STAGEautofeedback_TFLAGS)" \
	$(CXX_FOR_TARGET_FLAG_TO_PASS) \
	"TFLAGS=$(TFLAGS)" \
	"CONFIG_SHELL=$(SHELL)" \
	"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
	$(if $(LSAN_OPTIONS),"LSAN_OPTIONS=$(LSAN_OPTIONS)")

# We leave this in just in case, but it is not needed anymore.
RECURSE_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS)

# Flags to pass down to most sub-makes, in which we're building with
# the host environment.
EXTRA_HOST_FLAGS = \
	'AR=$(AR)' \
	'AS=$(AS)' \
	'CC=$(CC)' \
	'CXX=$(CXX)' \
	'DLLTOOL=$(DLLTOOL)' \
	'GFORTRAN=$(GFORTRAN)' \
	'GOC=$(GOC)' \
	'GDC=$(GDC)' \
	'LD=$(LD)' \
	'LIPO=$(LIPO)' \
	'NM=$(NM)' \
	'OBJDUMP=$(OBJDUMP)' \
	'OTOOL=$(OTOOL)' \
	'RANLIB=$(RANLIB)' \
	'READELF=$(READELF)' \
	'STRIP=$(STRIP)' \
	'WINDRES=$(WINDRES)' \
	'WINDMC=$(WINDMC)' \
	'CREATE_GCOV=$(CREATE_GCOV)'

FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)

# Flags to pass to stage1 or when not bootstrapping.

STAGE1_FLAGS_TO_PASS = \
	LDFLAGS="$${LDFLAGS}" \
	HOST_LIBS="$${HOST_LIBS}"

# Flags to pass to stage2 and later makes.

POSTSTAGE1_FLAGS_TO_PASS = \
	CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \
	CXX="$${CXX}" CXX_FOR_BUILD="$${CXX_FOR_BUILD}" \
	GDC="$${GDC}" GDC_FOR_BUILD="$${GDC_FOR_BUILD}" \
	GNATBIND="$${GNATBIND}" \
	LDFLAGS="$${LDFLAGS}" \
	HOST_LIBS="$${HOST_LIBS}" \
	$(LTO_FLAGS_TO_PASS) \
	"`echo 'ADAFLAGS=$(BOOT_ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`"

@if gcc-bootstrap
EXTRA_HOST_EXPORTS = if [ $(current_stage) != stage1 ]; then \
		       $(POSTSTAGE1_HOST_EXPORTS) \
		     fi;

EXTRA_BOOTSTRAP_FLAGS = CC="$$CC" CXX="$$CXX" LDFLAGS="$$LDFLAGS"
@endif gcc-bootstrap

# Flags to pass down to makes which are built with the target environment.
# The double $ decreases the length of the command line; those variables
# are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them.  The
# *_CFLAGS_FOR_TARGET variables are not passed down and most often empty,
# so we expand them here.
EXTRA_TARGET_FLAGS = \
	'AR=$$(AR_FOR_TARGET)' \
	'AS=$(COMPILER_AS_FOR_TARGET)' \
	'CC=$$(CC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
	'CFLAGS=$$(CFLAGS_FOR_TARGET)' \
	'CXX=$$(CXX_FOR_TARGET) -B$$r/$$(TARGET_SUBDIR)/libstdc++-v3/src/.libs \
	 -B$$r/$$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs \
	 $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
	'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \
	'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
	'GFORTRAN=$$(GFORTRAN_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
	'GOC=$$(GOC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
	'GOCFLAGS=$$(GOCFLAGS_FOR_TARGET)' \
	'GDC=$$(GDC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
	'GDCFLAGS=$$(GDCFLAGS_FOR_TARGET)' \
	'LD=$(COMPILER_LD_FOR_TARGET)' \
	'LDFLAGS=$$(LDFLAGS_FOR_TARGET)' \
	'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \
	'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET)' \
	'NM=$(COMPILER_NM_FOR_TARGET)' \
	'OBJDUMP=$$(OBJDUMP_FOR_TARGET)' \
	'OBJCOPY=$$(OBJCOPY_FOR_TARGET)' \
	'RANLIB=$$(RANLIB_FOR_TARGET)' \
	'READELF=$$(READELF_FOR_TARGET)' \
	'WINDRES=$$(WINDRES_FOR_TARGET)' \
	'WINDMC=$$(WINDMC_FOR_TARGET)' \
	'XGCC_FLAGS_FOR_TARGET=$(XGCC_FLAGS_FOR_TARGET)' \
	'STAGE1_LDFLAGS=$$(POSTSTAGE1_LDFLAGS)' \
	'STAGE1_LIBS=$$(POSTSTAGE1_LIBS)' \
	"TFLAGS=$$TFLAGS"

TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)

# Flags to pass down to gcc.  gcc builds a library, libgcc.a, so it
# unfortunately needs the native compiler and the target ar and
# ranlib.
# If any variables are added here, they must be added to do-*, below.
# The BUILD_* variables are a special case, which are used for the gcc
# cross-building scheme.
EXTRA_GCC_FLAGS = \
	"GCC_FOR_TARGET=$(GCC_FOR_TARGET)" \
	"`echo 'STMP_FIXPROTO=$(STMP_FIXPROTO)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \
	"`echo 'LIMITS_H_TEST=$(LIMITS_H_TEST)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`"

GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS)

@if gcc
BUILD_CONFIG = @BUILD_CONFIG@
ifneq ($(BUILD_CONFIG),)
include $(foreach CONFIG, $(BUILD_CONFIG), $(srcdir)/config/$(CONFIG).mk)
endif
@endif gcc

.PHONY: configure-host
configure-host:  \
    maybe-configure-bfd \
    maybe-configure-opcodes \
    maybe-configure-binutils \
    maybe-configure-bison \
    maybe-configure-cgen \
    maybe-configure-dejagnu \
    maybe-configure-etc \
    maybe-configure-fastjar \
    maybe-configure-fixincludes \
    maybe-configure-flex \
    maybe-configure-gas \
    maybe-configure-gcc \
    maybe-configure-gmp \
    maybe-configure-mpfr \
    maybe-configure-mpc \
    maybe-configure-isl \
    maybe-configure-libelf \
    maybe-configure-gold \
    maybe-configure-gprof \
    maybe-configure-intl \
    maybe-configure-tcl \
    maybe-configure-itcl \
    maybe-configure-ld \
    maybe-configure-libbacktrace \
    maybe-configure-libcpp \
    maybe-configure-libdecnumber \
    maybe-configure-libgui \
    maybe-configure-libiberty \
    maybe-configure-libiberty-linker-plugin \
    maybe-configure-libiconv \
    maybe-configure-m4 \
    maybe-configure-readline \
    maybe-configure-sid \
    maybe-configure-sim \
    maybe-configure-texinfo \
    maybe-configure-zlib \
    maybe-configure-gdb \
    maybe-configure-expect \
    maybe-configure-guile \
    maybe-configure-tk \
    maybe-configure-libtermcap \
    maybe-configure-utils \
    maybe-configure-gnattools \
    maybe-configure-lto-plugin \
    maybe-configure-libcc1 \
    maybe-configure-gotools
.PHONY: configure-target
configure-target:  \
    maybe-configure-target-libstdc++-v3 \
    maybe-configure-target-libsanitizer \
    maybe-configure-target-libvtv \
    maybe-configure-target-liboffloadmic \
    maybe-configure-target-libssp \
    maybe-configure-target-newlib \
    maybe-configure-target-libgcc \
    maybe-configure-target-libbacktrace \
    maybe-configure-target-libquadmath \
    maybe-configure-target-libgfortran \
    maybe-configure-target-libobjc \
    maybe-configure-target-libgo \
    maybe-configure-target-libhsail-rt \
    maybe-configure-target-libphobos \
    maybe-configure-target-libtermcap \
    maybe-configure-target-winsup \
    maybe-configure-target-libgloss \
    maybe-configure-target-libffi \
    maybe-configure-target-zlib \
    maybe-configure-target-rda \
    maybe-configure-target-libada \
    maybe-configure-target-libgomp \
    maybe-configure-target-libitm \
    maybe-configure-target-libatomic

# The target built for a native non-bootstrap build.
.PHONY: all
all:
@if gcc-bootstrap
	[ -f stage_final ] || echo stage3 > stage_final
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) `cat stage_final`-bubble
@endif gcc-bootstrap
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
@if gcc-bootstrap
	if [ -f stage_last ]; then \
	  TFLAGS="$(STAGE$(shell test ! -f stage_last || sed s,^stage,, stage_last)_TFLAGS)"; \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS) all-host all-target; \
	else \
@endif gcc-bootstrap
	  $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-host all-target \
@if gcc-bootstrap
	    ; \
	fi \
@endif gcc-bootstrap
	&& :

.PHONY: all-build

all-build: maybe-all-build-libiberty
all-build: maybe-all-build-bison
all-build: maybe-all-build-flex
all-build: maybe-all-build-m4
all-build: maybe-all-build-texinfo
all-build: maybe-all-build-fixincludes
all-build: maybe-all-build-libcpp

.PHONY: all-host

@if bfd-no-bootstrap
all-host: maybe-all-bfd
@endif bfd-no-bootstrap
@if opcodes-no-bootstrap
all-host: maybe-all-opcodes
@endif opcodes-no-bootstrap
@if binutils-no-bootstrap
all-host: maybe-all-binutils
@endif binutils-no-bootstrap
all-host: maybe-all-bison
all-host: maybe-all-cgen
all-host: maybe-all-dejagnu
all-host: maybe-all-etc
all-host: maybe-all-fastjar
@if fixincludes-no-bootstrap
all-host: maybe-all-fixincludes
@endif fixincludes-no-bootstrap
all-host: maybe-all-flex
@if gas-no-bootstrap
all-host: maybe-all-gas
@endif gas-no-bootstrap
@if gcc-no-bootstrap
all-host: maybe-all-gcc
@endif gcc-no-bootstrap
@if gmp-no-bootstrap
all-host: maybe-all-gmp
@endif gmp-no-bootstrap
@if mpfr-no-bootstrap
all-host: maybe-all-mpfr
@endif mpfr-no-bootstrap
@if mpc-no-bootstrap
all-host: maybe-all-mpc
@endif mpc-no-bootstrap
@if isl-no-bootstrap
all-host: maybe-all-isl
@endif isl-no-bootstrap
@if libelf-no-bootstrap
all-host: maybe-all-libelf
@endif libelf-no-bootstrap
@if gold-no-bootstrap
all-host: maybe-all-gold
@endif gold-no-bootstrap
all-host: maybe-all-gprof
@if intl-no-bootstrap
all-host: maybe-all-intl
@endif intl-no-bootstrap
all-host: maybe-all-tcl
all-host: maybe-all-itcl
@if ld-no-bootstrap
all-host: maybe-all-ld
@endif ld-no-bootstrap
@if libbacktrace-no-bootstrap
all-host: maybe-all-libbacktrace
@endif libbacktrace-no-bootstrap
@if libcpp-no-bootstrap
all-host: maybe-all-libcpp
@endif libcpp-no-bootstrap
@if libdecnumber-no-bootstrap
all-host: maybe-all-libdecnumber
@endif libdecnumber-no-bootstrap
all-host: maybe-all-libgui
@if libiberty-no-bootstrap
all-host: maybe-all-libiberty
@endif libiberty-no-bootstrap
@if libiberty-linker-plugin-no-bootstrap
all-host: maybe-all-libiberty-linker-plugin
@endif libiberty-linker-plugin-no-bootstrap
@if libiconv-no-bootstrap
all-host: maybe-all-libiconv
@endif libiconv-no-bootstrap
all-host: maybe-all-m4
all-host: maybe-all-readline
all-host: maybe-all-sid
all-host: maybe-all-sim
all-host: maybe-all-texinfo
@if zlib-no-bootstrap
all-host: maybe-all-zlib
@endif zlib-no-bootstrap
all-host: maybe-all-gdb
all-host: maybe-all-expect
all-host: maybe-all-guile
all-host: maybe-all-tk
all-host: maybe-all-libtermcap
all-host: maybe-all-utils
all-host: maybe-all-gnattools
@if lto-plugin-no-bootstrap
all-host: maybe-all-lto-plugin
@endif lto-plugin-no-bootstrap
all-host: maybe-all-libcc1
all-host: maybe-all-gotools

.PHONY: all-target

@if target-libstdc++-v3-no-bootstrap
all-target: maybe-all-target-libstdc++-v3
@endif target-libstdc++-v3-no-bootstrap
@if target-libsanitizer-no-bootstrap
all-target: maybe-all-target-libsanitizer
@endif target-libsanitizer-no-bootstrap
@if target-libvtv-no-bootstrap
all-target: maybe-all-target-libvtv
@endif target-libvtv-no-bootstrap
all-target: maybe-all-target-liboffloadmic
all-target: maybe-all-target-libssp
all-target: maybe-all-target-newlib
@if target-libgcc-no-bootstrap
all-target: maybe-all-target-libgcc
@endif target-libgcc-no-bootstrap
all-target: maybe-all-target-libbacktrace
all-target: maybe-all-target-libquadmath
all-target: maybe-all-target-libgfortran
all-target: maybe-all-target-libobjc
all-target: maybe-all-target-libgo
all-target: maybe-all-target-libhsail-rt
all-target: maybe-all-target-libphobos
all-target: maybe-all-target-libtermcap
all-target: maybe-all-target-winsup
all-target: maybe-all-target-libgloss
all-target: maybe-all-target-libffi
all-target: maybe-all-target-zlib
all-target: maybe-all-target-rda
all-target: maybe-all-target-libada
@if target-libgomp-no-bootstrap
all-target: maybe-all-target-libgomp
@endif target-libgomp-no-bootstrap
all-target: maybe-all-target-libitm
all-target: maybe-all-target-libatomic

# Do a target for all the subdirectories.  A ``make do-X'' will do a
# ``make X'' in all subdirectories (because, in general, there is a
# dependency (below) of X upon do-X, a ``make X'' will also do this,
# but it may do additional work as well).

.PHONY: do-info
do-info:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) info-host \
	  info-target


.PHONY: info-host

info-host: maybe-info-bfd
info-host: maybe-info-opcodes
info-host: maybe-info-binutils
info-host: maybe-info-bison
info-host: maybe-info-cgen
info-host: maybe-info-dejagnu
info-host: maybe-info-etc
info-host: maybe-info-fastjar
info-host: maybe-info-fixincludes
info-host: maybe-info-flex
info-host: maybe-info-gas
info-host: maybe-info-gcc
info-host: maybe-info-gmp
info-host: maybe-info-mpfr
info-host: maybe-info-mpc
info-host: maybe-info-isl
info-host: maybe-info-libelf
info-host: maybe-info-gold
info-host: maybe-info-gprof
info-host: maybe-info-intl
info-host: maybe-info-tcl
info-host: maybe-info-itcl
info-host: maybe-info-ld
info-host: maybe-info-libbacktrace
info-host: maybe-info-libcpp
info-host: maybe-info-libdecnumber
info-host: maybe-info-libgui
info-host: maybe-info-libiberty
info-host: maybe-info-libiberty-linker-plugin
info-host: maybe-info-libiconv
info-host: maybe-info-m4
info-host: maybe-info-readline
info-host: maybe-info-sid
info-host: maybe-info-sim
info-host: maybe-info-texinfo
info-host: maybe-info-zlib
info-host: maybe-info-gdb
info-host: maybe-info-expect
info-host: maybe-info-guile
info-host: maybe-info-tk
info-host: maybe-info-libtermcap
info-host: maybe-info-utils
info-host: maybe-info-gnattools
info-host: maybe-info-lto-plugin
info-host: maybe-info-libcc1
info-host: maybe-info-gotools

.PHONY: info-target

info-target: maybe-info-target-libstdc++-v3
info-target: maybe-info-target-libsanitizer
info-target: maybe-info-target-libvtv
info-target: maybe-info-target-liboffloadmic
info-target: maybe-info-target-libssp
info-target: maybe-info-target-newlib
info-target: maybe-info-target-libgcc
info-target: maybe-info-target-libbacktrace
info-target: maybe-info-target-libquadmath
info-target: maybe-info-target-libgfortran
info-target: maybe-info-target-libobjc
info-target: maybe-info-target-libgo
info-target: maybe-info-target-libhsail-rt
info-target: maybe-info-target-libphobos
info-target: maybe-info-target-libtermcap
info-target: maybe-info-target-winsup
info-target: maybe-info-target-libgloss
info-target: maybe-info-target-libffi
info-target: maybe-info-target-zlib
info-target: maybe-info-target-rda
info-target: maybe-info-target-libada
info-target: maybe-info-target-libgomp
info-target: maybe-info-target-libitm
info-target: maybe-info-target-libatomic

.PHONY: do-dvi
do-dvi:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) dvi-host \
	  dvi-target


.PHONY: dvi-host

dvi-host: maybe-dvi-bfd
dvi-host: maybe-dvi-opcodes
dvi-host: maybe-dvi-binutils
dvi-host: maybe-dvi-bison
dvi-host: maybe-dvi-cgen
dvi-host: maybe-dvi-dejagnu
dvi-host: maybe-dvi-etc
dvi-host: maybe-dvi-fastjar
dvi-host: maybe-dvi-fixincludes
dvi-host: maybe-dvi-flex
dvi-host: maybe-dvi-gas
dvi-host: maybe-dvi-gcc
dvi-host: maybe-dvi-gmp
dvi-host: maybe-dvi-mpfr
dvi-host: maybe-dvi-mpc
dvi-host: maybe-dvi-isl
dvi-host: maybe-dvi-libelf
dvi-host: maybe-dvi-gold
dvi-host: maybe-dvi-gprof
dvi-host: maybe-dvi-intl
dvi-host: maybe-dvi-tcl
dvi-host: maybe-dvi-itcl
dvi-host: maybe-dvi-ld
dvi-host: maybe-dvi-libbacktrace
dvi-host: maybe-dvi-libcpp
dvi-host: maybe-dvi-libdecnumber
dvi-host: maybe-dvi-libgui
dvi-host: maybe-dvi-libiberty
dvi-host: maybe-dvi-libiberty-linker-plugin
dvi-host: maybe-dvi-libiconv
dvi-host: maybe-dvi-m4
dvi-host: maybe-dvi-readline
dvi-host: maybe-dvi-sid
dvi-host: maybe-dvi-sim
dvi-host: maybe-dvi-texinfo
dvi-host: maybe-dvi-zlib
dvi-host: maybe-dvi-gdb
dvi-host: maybe-dvi-expect
dvi-host: maybe-dvi-guile
dvi-host: maybe-dvi-tk
dvi-host: maybe-dvi-libtermcap
dvi-host: maybe-dvi-utils
dvi-host: maybe-dvi-gnattools
dvi-host: maybe-dvi-lto-plugin
dvi-host: maybe-dvi-libcc1
dvi-host: maybe-dvi-gotools

.PHONY: dvi-target

dvi-target: maybe-dvi-target-libstdc++-v3
dvi-target: maybe-dvi-target-libsanitizer
dvi-target: maybe-dvi-target-libvtv
dvi-target: maybe-dvi-target-liboffloadmic
dvi-target: maybe-dvi-target-libssp
dvi-target: maybe-dvi-target-newlib
dvi-target: maybe-dvi-target-libgcc
dvi-target: maybe-dvi-target-libbacktrace
dvi-target: maybe-dvi-target-libquadmath
dvi-target: maybe-dvi-target-libgfortran
dvi-target: maybe-dvi-target-libobjc
dvi-target: maybe-dvi-target-libgo
dvi-target: maybe-dvi-target-libhsail-rt
dvi-target: maybe-dvi-target-libphobos
dvi-target: maybe-dvi-target-libtermcap
dvi-target: maybe-dvi-target-winsup
dvi-target: maybe-dvi-target-libgloss
dvi-target: maybe-dvi-target-libffi
dvi-target: maybe-dvi-target-zlib
dvi-target: maybe-dvi-target-rda
dvi-target: maybe-dvi-target-libada
dvi-target: maybe-dvi-target-libgomp
dvi-target: maybe-dvi-target-libitm
dvi-target: maybe-dvi-target-libatomic

.PHONY: do-pdf
do-pdf:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) pdf-host \
	  pdf-target


.PHONY: pdf-host

pdf-host: maybe-pdf-bfd
pdf-host: maybe-pdf-opcodes
pdf-host: maybe-pdf-binutils
pdf-host: maybe-pdf-bison
pdf-host: maybe-pdf-cgen
pdf-host: maybe-pdf-dejagnu
pdf-host: maybe-pdf-etc
pdf-host: maybe-pdf-fastjar
pdf-host: maybe-pdf-fixincludes
pdf-host: maybe-pdf-flex
pdf-host: maybe-pdf-gas
pdf-host: maybe-pdf-gcc
pdf-host: maybe-pdf-gmp
pdf-host: maybe-pdf-mpfr
pdf-host: maybe-pdf-mpc
pdf-host: maybe-pdf-isl
pdf-host: maybe-pdf-libelf
pdf-host: maybe-pdf-gold
pdf-host: maybe-pdf-gprof
pdf-host: maybe-pdf-intl
pdf-host: maybe-pdf-tcl
pdf-host: maybe-pdf-itcl
pdf-host: maybe-pdf-ld
pdf-host: maybe-pdf-libbacktrace
pdf-host: maybe-pdf-libcpp
pdf-host: maybe-pdf-libdecnumber
pdf-host: maybe-pdf-libgui
pdf-host: maybe-pdf-libiberty
pdf-host: maybe-pdf-libiberty-linker-plugin
pdf-host: maybe-pdf-libiconv
pdf-host: maybe-pdf-m4
pdf-host: maybe-pdf-readline
pdf-host: maybe-pdf-sid
pdf-host: maybe-pdf-sim
pdf-host: maybe-pdf-texinfo
pdf-host: maybe-pdf-zlib
pdf-host: maybe-pdf-gdb
pdf-host: maybe-pdf-expect
pdf-host: maybe-pdf-guile
pdf-host: maybe-pdf-tk
pdf-host: maybe-pdf-libtermcap
pdf-host: maybe-pdf-utils
pdf-host: maybe-pdf-gnattools
pdf-host: maybe-pdf-lto-plugin
pdf-host: maybe-pdf-libcc1
pdf-host: maybe-pdf-gotools

.PHONY: pdf-target

pdf-target: maybe-pdf-target-libstdc++-v3
pdf-target: maybe-pdf-target-libsanitizer
pdf-target: maybe-pdf-target-libvtv
pdf-target: maybe-pdf-target-liboffloadmic
pdf-target: maybe-pdf-target-libssp
pdf-target: maybe-pdf-target-newlib
pdf-target: maybe-pdf-target-libgcc
pdf-target: maybe-pdf-target-libbacktrace
pdf-target: maybe-pdf-target-libquadmath
pdf-target: maybe-pdf-target-libgfortran
pdf-target: maybe-pdf-target-libobjc
pdf-target: maybe-pdf-target-libgo
pdf-target: maybe-pdf-target-libhsail-rt
pdf-target: maybe-pdf-target-libphobos
pdf-target: maybe-pdf-target-libtermcap
pdf-target: maybe-pdf-target-winsup
pdf-target: maybe-pdf-target-libgloss
pdf-target: maybe-pdf-target-libffi
pdf-target: maybe-pdf-target-zlib
pdf-target: maybe-pdf-target-rda
pdf-target: maybe-pdf-target-libada
pdf-target: maybe-pdf-target-libgomp
pdf-target: maybe-pdf-target-libitm
pdf-target: maybe-pdf-target-libatomic

.PHONY: do-html
do-html:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) html-host \
	  html-target


.PHONY: html-host

html-host: maybe-html-bfd
html-host: maybe-html-opcodes
html-host: maybe-html-binutils
html-host: maybe-html-bison
html-host: maybe-html-cgen
html-host: maybe-html-dejagnu
html-host: maybe-html-etc
html-host: maybe-html-fastjar
html-host: maybe-html-fixincludes
html-host: maybe-html-flex
html-host: maybe-html-gas
html-host: maybe-html-gcc
html-host: maybe-html-gmp
html-host: maybe-html-mpfr
html-host: maybe-html-mpc
html-host: maybe-html-isl
html-host: maybe-html-libelf
html-host: maybe-html-gold
html-host: maybe-html-gprof
html-host: maybe-html-intl
html-host: maybe-html-tcl
html-host: maybe-html-itcl
html-host: maybe-html-ld
html-host: maybe-html-libbacktrace
html-host: maybe-html-libcpp
html-host: maybe-html-libdecnumber
html-host: maybe-html-libgui
html-host: maybe-html-libiberty
html-host: maybe-html-libiberty-linker-plugin
html-host: maybe-html-libiconv
html-host: maybe-html-m4
html-host: maybe-html-readline
html-host: maybe-html-sid
html-host: maybe-html-sim
html-host: maybe-html-texinfo
html-host: maybe-html-zlib
html-host: maybe-html-gdb
html-host: maybe-html-expect
html-host: maybe-html-guile
html-host: maybe-html-tk
html-host: maybe-html-libtermcap
html-host: maybe-html-utils
html-host: maybe-html-gnattools
html-host: maybe-html-lto-plugin
html-host: maybe-html-libcc1
html-host: maybe-html-gotools

.PHONY: html-target

html-target: maybe-html-target-libstdc++-v3
html-target: maybe-html-target-libsanitizer
html-target: maybe-html-target-libvtv
html-target: maybe-html-target-liboffloadmic
html-target: maybe-html-target-libssp
html-target: maybe-html-target-newlib
html-target: maybe-html-target-libgcc
html-target: maybe-html-target-libbacktrace
html-target: maybe-html-target-libquadmath
html-target: maybe-html-target-libgfortran
html-target: maybe-html-target-libobjc
html-target: maybe-html-target-libgo
html-target: maybe-html-target-libhsail-rt
html-target: maybe-html-target-libphobos
html-target: maybe-html-target-libtermcap
html-target: maybe-html-target-winsup
html-target: maybe-html-target-libgloss
html-target: maybe-html-target-libffi
html-target: maybe-html-target-zlib
html-target: maybe-html-target-rda
html-target: maybe-html-target-libada
html-target: maybe-html-target-libgomp
html-target: maybe-html-target-libitm
html-target: maybe-html-target-libatomic

.PHONY: do-TAGS
do-TAGS:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) TAGS-host \
	  TAGS-target


.PHONY: TAGS-host

TAGS-host: maybe-TAGS-bfd
TAGS-host: maybe-TAGS-opcodes
TAGS-host: maybe-TAGS-binutils
TAGS-host: maybe-TAGS-bison
TAGS-host: maybe-TAGS-cgen
TAGS-host: maybe-TAGS-dejagnu
TAGS-host: maybe-TAGS-etc
TAGS-host: maybe-TAGS-fastjar
TAGS-host: maybe-TAGS-fixincludes
TAGS-host: maybe-TAGS-flex
TAGS-host: maybe-TAGS-gas
TAGS-host: maybe-TAGS-gcc
TAGS-host: maybe-TAGS-gmp
TAGS-host: maybe-TAGS-mpfr
TAGS-host: maybe-TAGS-mpc
TAGS-host: maybe-TAGS-isl
TAGS-host: maybe-TAGS-libelf
TAGS-host: maybe-TAGS-gold
TAGS-host: maybe-TAGS-gprof
TAGS-host: maybe-TAGS-intl
TAGS-host: maybe-TAGS-tcl
TAGS-host: maybe-TAGS-itcl
TAGS-host: maybe-TAGS-ld
TAGS-host: maybe-TAGS-libbacktrace
TAGS-host: maybe-TAGS-libcpp
TAGS-host: maybe-TAGS-libdecnumber
TAGS-host: maybe-TAGS-libgui
TAGS-host: maybe-TAGS-libiberty
TAGS-host: maybe-TAGS-libiberty-linker-plugin
TAGS-host: maybe-TAGS-libiconv
TAGS-host: maybe-TAGS-m4
TAGS-host: maybe-TAGS-readline
TAGS-host: maybe-TAGS-sid
TAGS-host: maybe-TAGS-sim
TAGS-host: maybe-TAGS-texinfo
TAGS-host: maybe-TAGS-zlib
TAGS-host: maybe-TAGS-gdb
TAGS-host: maybe-TAGS-expect
TAGS-host: maybe-TAGS-guile
TAGS-host: maybe-TAGS-tk
TAGS-host: maybe-TAGS-libtermcap
TAGS-host: maybe-TAGS-utils
TAGS-host: maybe-TAGS-gnattools
TAGS-host: maybe-TAGS-lto-plugin
TAGS-host: maybe-TAGS-libcc1
TAGS-host: maybe-TAGS-gotools

.PHONY: TAGS-target

TAGS-target: maybe-TAGS-target-libstdc++-v3
TAGS-target: maybe-TAGS-target-libsanitizer
TAGS-target: maybe-TAGS-target-libvtv
TAGS-target: maybe-TAGS-target-liboffloadmic
TAGS-target: maybe-TAGS-target-libssp
TAGS-target: maybe-TAGS-target-newlib
TAGS-target: maybe-TAGS-target-libgcc
TAGS-target: maybe-TAGS-target-libbacktrace
TAGS-target: maybe-TAGS-target-libquadmath
TAGS-target: maybe-TAGS-target-libgfortran
TAGS-target: maybe-TAGS-target-libobjc
TAGS-target: maybe-TAGS-target-libgo
TAGS-target: maybe-TAGS-target-libhsail-rt
TAGS-target: maybe-TAGS-target-libphobos
TAGS-target: maybe-TAGS-target-libtermcap
TAGS-target: maybe-TAGS-target-winsup
TAGS-target: maybe-TAGS-target-libgloss
TAGS-target: maybe-TAGS-target-libffi
TAGS-target: maybe-TAGS-target-zlib
TAGS-target: maybe-TAGS-target-rda
TAGS-target: maybe-TAGS-target-libada
TAGS-target: maybe-TAGS-target-libgomp
TAGS-target: maybe-TAGS-target-libitm
TAGS-target: maybe-TAGS-target-libatomic

.PHONY: do-install-info
do-install-info:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) install-info-host \
	  install-info-target


.PHONY: install-info-host

install-info-host: maybe-install-info-bfd
install-info-host: maybe-install-info-opcodes
install-info-host: maybe-install-info-binutils
install-info-host: maybe-install-info-bison
install-info-host: maybe-install-info-cgen
install-info-host: maybe-install-info-dejagnu
install-info-host: maybe-install-info-etc
install-info-host: maybe-install-info-fastjar
install-info-host: maybe-install-info-fixincludes
install-info-host: maybe-install-info-flex
install-info-host: maybe-install-info-gas
install-info-host: maybe-install-info-gcc
install-info-host: maybe-install-info-gmp
install-info-host: maybe-install-info-mpfr
install-info-host: maybe-install-info-mpc
install-info-host: maybe-install-info-isl
install-info-host: maybe-install-info-libelf
install-info-host: maybe-install-info-gold
install-info-host: maybe-install-info-gprof
install-info-host: maybe-install-info-intl
install-info-host: maybe-install-info-tcl
install-info-host: maybe-install-info-itcl
install-info-host: maybe-install-info-ld
install-info-host: maybe-install-info-libbacktrace
install-info-host: maybe-install-info-libcpp
install-info-host: maybe-install-info-libdecnumber
install-info-host: maybe-install-info-libgui
install-info-host: maybe-install-info-libiberty
install-info-host: maybe-install-info-libiberty-linker-plugin
install-info-host: maybe-install-info-libiconv
install-info-host: maybe-install-info-m4
install-info-host: maybe-install-info-readline
install-info-host: maybe-install-info-sid
install-info-host: maybe-install-info-sim
install-info-host: maybe-install-info-texinfo
install-info-host: maybe-install-info-zlib
install-info-host: maybe-install-info-gdb
install-info-host: maybe-install-info-expect
install-info-host: maybe-install-info-guile
install-info-host: maybe-install-info-tk
install-info-host: maybe-install-info-libtermcap
install-info-host: maybe-install-info-utils
install-info-host: maybe-install-info-gnattools
install-info-host: maybe-install-info-lto-plugin
install-info-host: maybe-install-info-libcc1
install-info-host: maybe-install-info-gotools

.PHONY: install-info-target

install-info-target: maybe-install-info-target-libstdc++-v3
install-info-target: maybe-install-info-target-libsanitizer
install-info-target: maybe-install-info-target-libvtv
install-info-target: maybe-install-info-target-liboffloadmic
install-info-target: maybe-install-info-target-libssp
install-info-target: maybe-install-info-target-newlib
install-info-target: maybe-install-info-target-libgcc
install-info-target: maybe-install-info-target-libbacktrace
install-info-target: maybe-install-info-target-libquadmath
install-info-target: maybe-install-info-target-libgfortran
install-info-target: maybe-install-info-target-libobjc
install-info-target: maybe-install-info-target-libgo
install-info-target: maybe-install-info-target-libhsail-rt
install-info-target: maybe-install-info-target-libphobos
install-info-target: maybe-install-info-target-libtermcap
install-info-target: maybe-install-info-target-winsup
install-info-target: maybe-install-info-target-libgloss
install-info-target: maybe-install-info-target-libffi
install-info-target: maybe-install-info-target-zlib
install-info-target: maybe-install-info-target-rda
install-info-target: maybe-install-info-target-libada
install-info-target: maybe-install-info-target-libgomp
install-info-target: maybe-install-info-target-libitm
install-info-target: maybe-install-info-target-libatomic

.PHONY: do-install-pdf
do-install-pdf:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) install-pdf-host \
	  install-pdf-target


.PHONY: install-pdf-host

install-pdf-host: maybe-install-pdf-bfd
install-pdf-host: maybe-install-pdf-opcodes
install-pdf-host: maybe-install-pdf-binutils
install-pdf-host: maybe-install-pdf-bison
install-pdf-host: maybe-install-pdf-cgen
install-pdf-host: maybe-install-pdf-dejagnu
install-pdf-host: maybe-install-pdf-etc
install-pdf-host: maybe-install-pdf-fastjar
install-pdf-host: maybe-install-pdf-fixincludes
install-pdf-host: maybe-install-pdf-flex
install-pdf-host: maybe-install-pdf-gas
install-pdf-host: maybe-install-pdf-gcc
install-pdf-host: maybe-install-pdf-gmp
install-pdf-host: maybe-install-pdf-mpfr
install-pdf-host: maybe-install-pdf-mpc
install-pdf-host: maybe-install-pdf-isl
install-pdf-host: maybe-install-pdf-libelf
install-pdf-host: maybe-install-pdf-gold
install-pdf-host: maybe-install-pdf-gprof
install-pdf-host: maybe-install-pdf-intl
install-pdf-host: maybe-install-pdf-tcl
install-pdf-host: maybe-install-pdf-itcl
install-pdf-host: maybe-install-pdf-ld
install-pdf-host: maybe-install-pdf-libbacktrace
install-pdf-host: maybe-install-pdf-libcpp
install-pdf-host: maybe-install-pdf-libdecnumber
install-pdf-host: maybe-install-pdf-libgui
install-pdf-host: maybe-install-pdf-libiberty
install-pdf-host: maybe-install-pdf-libiberty-linker-plugin
install-pdf-host: maybe-install-pdf-libiconv
install-pdf-host: maybe-install-pdf-m4
install-pdf-host: maybe-install-pdf-readline
install-pdf-host: maybe-install-pdf-sid
install-pdf-host: maybe-install-pdf-sim
install-pdf-host: maybe-install-pdf-texinfo
install-pdf-host: maybe-install-pdf-zlib
install-pdf-host: maybe-install-pdf-gdb
install-pdf-host: maybe-install-pdf-expect
install-pdf-host: maybe-install-pdf-guile
install-pdf-host: maybe-install-pdf-tk
install-pdf-host: maybe-install-pdf-libtermcap
install-pdf-host: maybe-install-pdf-utils
install-pdf-host: maybe-install-pdf-gnattools
install-pdf-host: maybe-install-pdf-lto-plugin
install-pdf-host: maybe-install-pdf-libcc1
install-pdf-host: maybe-install-pdf-gotools

.PHONY: install-pdf-target

install-pdf-target: maybe-install-pdf-target-libstdc++-v3
install-pdf-target: maybe-install-pdf-target-libsanitizer
install-pdf-target: maybe-install-pdf-target-libvtv
install-pdf-target: maybe-install-pdf-target-liboffloadmic
install-pdf-target: maybe-install-pdf-target-libssp
install-pdf-target: maybe-install-pdf-target-newlib
install-pdf-target: maybe-install-pdf-target-libgcc
install-pdf-target: maybe-install-pdf-target-libbacktrace
install-pdf-target: maybe-install-pdf-target-libquadmath
install-pdf-target: maybe-install-pdf-target-libgfortran
install-pdf-target: maybe-install-pdf-target-libobjc
install-pdf-target: maybe-install-pdf-target-libgo
install-pdf-target: maybe-install-pdf-target-libhsail-rt
install-pdf-target: maybe-install-pdf-target-libphobos
install-pdf-target: maybe-install-pdf-target-libtermcap
install-pdf-target: maybe-install-pdf-target-winsup
install-pdf-target: maybe-install-pdf-target-libgloss
install-pdf-target: maybe-install-pdf-target-libffi
install-pdf-target: maybe-install-pdf-target-zlib
install-pdf-target: maybe-install-pdf-target-rda
install-pdf-target: maybe-install-pdf-target-libada
install-pdf-target: maybe-install-pdf-target-libgomp
install-pdf-target: maybe-install-pdf-target-libitm
install-pdf-target: maybe-install-pdf-target-libatomic

.PHONY: do-install-html
do-install-html:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) install-html-host \
	  install-html-target


.PHONY: install-html-host

install-html-host: maybe-install-html-bfd
install-html-host: maybe-install-html-opcodes
install-html-host: maybe-install-html-binutils
install-html-host: maybe-install-html-bison
install-html-host: maybe-install-html-cgen
install-html-host: maybe-install-html-dejagnu
install-html-host: maybe-install-html-etc
install-html-host: maybe-install-html-fastjar
install-html-host: maybe-install-html-fixincludes
install-html-host: maybe-install-html-flex
install-html-host: maybe-install-html-gas
install-html-host: maybe-install-html-gcc
install-html-host: maybe-install-html-gmp
install-html-host: maybe-install-html-mpfr
install-html-host: maybe-install-html-mpc
install-html-host: maybe-install-html-isl
install-html-host: maybe-install-html-libelf
install-html-host: maybe-install-html-gold
install-html-host: maybe-install-html-gprof
install-html-host: maybe-install-html-intl
install-html-host: maybe-install-html-tcl
install-html-host: maybe-install-html-itcl
install-html-host: maybe-install-html-ld
install-html-host: maybe-install-html-libbacktrace
install-html-host: maybe-install-html-libcpp
install-html-host: maybe-install-html-libdecnumber
install-html-host: maybe-install-html-libgui
install-html-host: maybe-install-html-libiberty
install-html-host: maybe-install-html-libiberty-linker-plugin
install-html-host: maybe-install-html-libiconv
install-html-host: maybe-install-html-m4
install-html-host: maybe-install-html-readline
install-html-host: maybe-install-html-sid
install-html-host: maybe-install-html-sim
install-html-host: maybe-install-html-texinfo
install-html-host: maybe-install-html-zlib
install-html-host: maybe-install-html-gdb
install-html-host: maybe-install-html-expect
install-html-host: maybe-install-html-guile
install-html-host: maybe-install-html-tk
install-html-host: maybe-install-html-libtermcap
install-html-host: maybe-install-html-utils
install-html-host: maybe-install-html-gnattools
install-html-host: maybe-install-html-lto-plugin
install-html-host: maybe-install-html-libcc1
install-html-host: maybe-install-html-gotools

.PHONY: install-html-target

install-html-target: maybe-install-html-target-libstdc++-v3
install-html-target: maybe-install-html-target-libsanitizer
install-html-target: maybe-install-html-target-libvtv
install-html-target: maybe-install-html-target-liboffloadmic
install-html-target: maybe-install-html-target-libssp
install-html-target: maybe-install-html-target-newlib
install-html-target: maybe-install-html-target-libgcc
install-html-target: maybe-install-html-target-libbacktrace
install-html-target: maybe-install-html-target-libquadmath
install-html-target: maybe-install-html-target-libgfortran
install-html-target: maybe-install-html-target-libobjc
install-html-target: maybe-install-html-target-libgo
install-html-target: maybe-install-html-target-libhsail-rt
install-html-target: maybe-install-html-target-libphobos
install-html-target: maybe-install-html-target-libtermcap
install-html-target: maybe-install-html-target-winsup
install-html-target: maybe-install-html-target-libgloss
install-html-target: maybe-install-html-target-libffi
install-html-target: maybe-install-html-target-zlib
install-html-target: maybe-install-html-target-rda
install-html-target: maybe-install-html-target-libada
install-html-target: maybe-install-html-target-libgomp
install-html-target: maybe-install-html-target-libitm
install-html-target: maybe-install-html-target-libatomic

.PHONY: do-installcheck
do-installcheck:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) installcheck-host \
	  installcheck-target


.PHONY: installcheck-host

installcheck-host: maybe-installcheck-bfd
installcheck-host: maybe-installcheck-opcodes
installcheck-host: maybe-installcheck-binutils
installcheck-host: maybe-installcheck-bison
installcheck-host: maybe-installcheck-cgen
installcheck-host: maybe-installcheck-dejagnu
installcheck-host: maybe-installcheck-etc
installcheck-host: maybe-installcheck-fastjar
installcheck-host: maybe-installcheck-fixincludes
installcheck-host: maybe-installcheck-flex
installcheck-host: maybe-installcheck-gas
installcheck-host: maybe-installcheck-gcc
installcheck-host: maybe-installcheck-gmp
installcheck-host: maybe-installcheck-mpfr
installcheck-host: maybe-installcheck-mpc
installcheck-host: maybe-installcheck-isl
installcheck-host: maybe-installcheck-libelf
installcheck-host: maybe-installcheck-gold
installcheck-host: maybe-installcheck-gprof
installcheck-host: maybe-installcheck-intl
installcheck-host: maybe-installcheck-tcl
installcheck-host: maybe-installcheck-itcl
installcheck-host: maybe-installcheck-ld
installcheck-host: maybe-installcheck-libbacktrace
installcheck-host: maybe-installcheck-libcpp
installcheck-host: maybe-installcheck-libdecnumber
installcheck-host: maybe-installcheck-libgui
installcheck-host: maybe-installcheck-libiberty
installcheck-host: maybe-installcheck-libiberty-linker-plugin
installcheck-host: maybe-installcheck-libiconv
installcheck-host: maybe-installcheck-m4
installcheck-host: maybe-installcheck-readline
installcheck-host: maybe-installcheck-sid
installcheck-host: maybe-installcheck-sim
installcheck-host: maybe-installcheck-texinfo
installcheck-host: maybe-installcheck-zlib
installcheck-host: maybe-installcheck-gdb
installcheck-host: maybe-installcheck-expect
installcheck-host: maybe-installcheck-guile
installcheck-host: maybe-installcheck-tk
installcheck-host: maybe-installcheck-libtermcap
installcheck-host: maybe-installcheck-utils
installcheck-host: maybe-installcheck-gnattools
installcheck-host: maybe-installcheck-lto-plugin
installcheck-host: maybe-installcheck-libcc1
installcheck-host: maybe-installcheck-gotools

.PHONY: installcheck-target

installcheck-target: maybe-installcheck-target-libstdc++-v3
installcheck-target: maybe-installcheck-target-libsanitizer
installcheck-target: maybe-installcheck-target-libvtv
installcheck-target: maybe-installcheck-target-liboffloadmic
installcheck-target: maybe-installcheck-target-libssp
installcheck-target: maybe-installcheck-target-newlib
installcheck-target: maybe-installcheck-target-libgcc
installcheck-target: maybe-installcheck-target-libbacktrace
installcheck-target: maybe-installcheck-target-libquadmath
installcheck-target: maybe-installcheck-target-libgfortran
installcheck-target: maybe-installcheck-target-libobjc
installcheck-target: maybe-installcheck-target-libgo
installcheck-target: maybe-installcheck-target-libhsail-rt
installcheck-target: maybe-installcheck-target-libphobos
installcheck-target: maybe-installcheck-target-libtermcap
installcheck-target: maybe-installcheck-target-winsup
installcheck-target: maybe-installcheck-target-libgloss
installcheck-target: maybe-installcheck-target-libffi
installcheck-target: maybe-installcheck-target-zlib
installcheck-target: maybe-installcheck-target-rda
installcheck-target: maybe-installcheck-target-libada
installcheck-target: maybe-installcheck-target-libgomp
installcheck-target: maybe-installcheck-target-libitm
installcheck-target: maybe-installcheck-target-libatomic

.PHONY: do-mostlyclean
do-mostlyclean:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) mostlyclean-host \
	  mostlyclean-target


.PHONY: mostlyclean-host

mostlyclean-host: maybe-mostlyclean-bfd
mostlyclean-host: maybe-mostlyclean-opcodes
mostlyclean-host: maybe-mostlyclean-binutils
mostlyclean-host: maybe-mostlyclean-bison
mostlyclean-host: maybe-mostlyclean-cgen
mostlyclean-host: maybe-mostlyclean-dejagnu
mostlyclean-host: maybe-mostlyclean-etc
mostlyclean-host: maybe-mostlyclean-fastjar
mostlyclean-host: maybe-mostlyclean-fixincludes
mostlyclean-host: maybe-mostlyclean-flex
mostlyclean-host: maybe-mostlyclean-gas
mostlyclean-host: maybe-mostlyclean-gcc
mostlyclean-host: maybe-mostlyclean-gmp
mostlyclean-host: maybe-mostlyclean-mpfr
mostlyclean-host: maybe-mostlyclean-mpc
mostlyclean-host: maybe-mostlyclean-isl
mostlyclean-host: maybe-mostlyclean-libelf
mostlyclean-host: maybe-mostlyclean-gold
mostlyclean-host: maybe-mostlyclean-gprof
mostlyclean-host: maybe-mostlyclean-intl
mostlyclean-host: maybe-mostlyclean-tcl
mostlyclean-host: maybe-mostlyclean-itcl
mostlyclean-host: maybe-mostlyclean-ld
mostlyclean-host: maybe-mostlyclean-libbacktrace
mostlyclean-host: maybe-mostlyclean-libcpp
mostlyclean-host: maybe-mostlyclean-libdecnumber
mostlyclean-host: maybe-mostlyclean-libgui
mostlyclean-host: maybe-mostlyclean-libiberty
mostlyclean-host: maybe-mostlyclean-libiberty-linker-plugin
mostlyclean-host: maybe-mostlyclean-libiconv
mostlyclean-host: maybe-mostlyclean-m4
mostlyclean-host: maybe-mostlyclean-readline
mostlyclean-host: maybe-mostlyclean-sid
mostlyclean-host: maybe-mostlyclean-sim
mostlyclean-host: maybe-mostlyclean-texinfo
mostlyclean-host: maybe-mostlyclean-zlib
mostlyclean-host: maybe-mostlyclean-gdb
mostlyclean-host: maybe-mostlyclean-expect
mostlyclean-host: maybe-mostlyclean-guile
mostlyclean-host: maybe-mostlyclean-tk
mostlyclean-host: maybe-mostlyclean-libtermcap
mostlyclean-host: maybe-mostlyclean-utils
mostlyclean-host: maybe-mostlyclean-gnattools
mostlyclean-host: maybe-mostlyclean-lto-plugin
mostlyclean-host: maybe-mostlyclean-libcc1
mostlyclean-host: maybe-mostlyclean-gotools

.PHONY: mostlyclean-target

mostlyclean-target: maybe-mostlyclean-target-libstdc++-v3
mostlyclean-target: maybe-mostlyclean-target-libsanitizer
mostlyclean-target: maybe-mostlyclean-target-libvtv
mostlyclean-target: maybe-mostlyclean-target-liboffloadmic
mostlyclean-target: maybe-mostlyclean-target-libssp
mostlyclean-target: maybe-mostlyclean-target-newlib
mostlyclean-target: maybe-mostlyclean-target-libgcc
mostlyclean-target: maybe-mostlyclean-target-libbacktrace
mostlyclean-target: maybe-mostlyclean-target-libquadmath
mostlyclean-target: maybe-mostlyclean-target-libgfortran
mostlyclean-target: maybe-mostlyclean-target-libobjc
mostlyclean-target: maybe-mostlyclean-target-libgo
mostlyclean-target: maybe-mostlyclean-target-libhsail-rt
mostlyclean-target: maybe-mostlyclean-target-libphobos
mostlyclean-target: maybe-mostlyclean-target-libtermcap
mostlyclean-target: maybe-mostlyclean-target-winsup
mostlyclean-target: maybe-mostlyclean-target-libgloss
mostlyclean-target: maybe-mostlyclean-target-libffi
mostlyclean-target: maybe-mostlyclean-target-zlib
mostlyclean-target: maybe-mostlyclean-target-rda
mostlyclean-target: maybe-mostlyclean-target-libada
mostlyclean-target: maybe-mostlyclean-target-libgomp
mostlyclean-target: maybe-mostlyclean-target-libitm
mostlyclean-target: maybe-mostlyclean-target-libatomic

.PHONY: do-clean
do-clean:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) clean-host \
	  clean-target


.PHONY: clean-host

clean-host: maybe-clean-bfd
clean-host: maybe-clean-opcodes
clean-host: maybe-clean-binutils
clean-host: maybe-clean-bison
clean-host: maybe-clean-cgen
clean-host: maybe-clean-dejagnu
clean-host: maybe-clean-etc
clean-host: maybe-clean-fastjar
clean-host: maybe-clean-fixincludes
clean-host: maybe-clean-flex
clean-host: maybe-clean-gas
clean-host: maybe-clean-gcc
clean-host: maybe-clean-gmp
clean-host: maybe-clean-mpfr
clean-host: maybe-clean-mpc
clean-host: maybe-clean-isl
clean-host: maybe-clean-libelf
clean-host: maybe-clean-gold
clean-host: maybe-clean-gprof
clean-host: maybe-clean-intl
clean-host: maybe-clean-tcl
clean-host: maybe-clean-itcl
clean-host: maybe-clean-ld
clean-host: maybe-clean-libbacktrace
clean-host: maybe-clean-libcpp
clean-host: maybe-clean-libdecnumber
clean-host: maybe-clean-libgui
clean-host: maybe-clean-libiberty
clean-host: maybe-clean-libiberty-linker-plugin
clean-host: maybe-clean-libiconv
clean-host: maybe-clean-m4
clean-host: maybe-clean-readline
clean-host: maybe-clean-sid
clean-host: maybe-clean-sim
clean-host: maybe-clean-texinfo
clean-host: maybe-clean-zlib
clean-host: maybe-clean-gdb
clean-host: maybe-clean-expect
clean-host: maybe-clean-guile
clean-host: maybe-clean-tk
clean-host: maybe-clean-libtermcap
clean-host: maybe-clean-utils
clean-host: maybe-clean-gnattools
clean-host: maybe-clean-lto-plugin
clean-host: maybe-clean-libcc1
clean-host: maybe-clean-gotools

.PHONY: clean-target

clean-target: maybe-clean-target-libstdc++-v3
clean-target: maybe-clean-target-libsanitizer
clean-target: maybe-clean-target-libvtv
clean-target: maybe-clean-target-liboffloadmic
clean-target: maybe-clean-target-libssp
clean-target: maybe-clean-target-newlib
clean-target: maybe-clean-target-libgcc
clean-target: maybe-clean-target-libbacktrace
clean-target: maybe-clean-target-libquadmath
clean-target: maybe-clean-target-libgfortran
clean-target: maybe-clean-target-libobjc
clean-target: maybe-clean-target-libgo
clean-target: maybe-clean-target-libhsail-rt
clean-target: maybe-clean-target-libphobos
clean-target: maybe-clean-target-libtermcap
clean-target: maybe-clean-target-winsup
clean-target: maybe-clean-target-libgloss
clean-target: maybe-clean-target-libffi
clean-target: maybe-clean-target-zlib
clean-target: maybe-clean-target-rda
clean-target: maybe-clean-target-libada
clean-target: maybe-clean-target-libgomp
clean-target: maybe-clean-target-libitm
clean-target: maybe-clean-target-libatomic

.PHONY: do-distclean
do-distclean:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) distclean-host \
	  distclean-target


.PHONY: distclean-host

distclean-host: maybe-distclean-bfd
distclean-host: maybe-distclean-opcodes
distclean-host: maybe-distclean-binutils
distclean-host: maybe-distclean-bison
distclean-host: maybe-distclean-cgen
distclean-host: maybe-distclean-dejagnu
distclean-host: maybe-distclean-etc
distclean-host: maybe-distclean-fastjar
distclean-host: maybe-distclean-fixincludes
distclean-host: maybe-distclean-flex
distclean-host: maybe-distclean-gas
distclean-host: maybe-distclean-gcc
distclean-host: maybe-distclean-gmp
distclean-host: maybe-distclean-mpfr
distclean-host: maybe-distclean-mpc
distclean-host: maybe-distclean-isl
distclean-host: maybe-distclean-libelf
distclean-host: maybe-distclean-gold
distclean-host: maybe-distclean-gprof
distclean-host: maybe-distclean-intl
distclean-host: maybe-distclean-tcl
distclean-host: maybe-distclean-itcl
distclean-host: maybe-distclean-ld
distclean-host: maybe-distclean-libbacktrace
distclean-host: maybe-distclean-libcpp
distclean-host: maybe-distclean-libdecnumber
distclean-host: maybe-distclean-libgui
distclean-host: maybe-distclean-libiberty
distclean-host: maybe-distclean-libiberty-linker-plugin
distclean-host: maybe-distclean-libiconv
distclean-host: maybe-distclean-m4
distclean-host: maybe-distclean-readline
distclean-host: maybe-distclean-sid
distclean-host: maybe-distclean-sim
distclean-host: maybe-distclean-texinfo
distclean-host: maybe-distclean-zlib
distclean-host: maybe-distclean-gdb
distclean-host: maybe-distclean-expect
distclean-host: maybe-distclean-guile
distclean-host: maybe-distclean-tk
distclean-host: maybe-distclean-libtermcap
distclean-host: maybe-distclean-utils
distclean-host: maybe-distclean-gnattools
distclean-host: maybe-distclean-lto-plugin
distclean-host: maybe-distclean-libcc1
distclean-host: maybe-distclean-gotools

.PHONY: distclean-target

distclean-target: maybe-distclean-target-libstdc++-v3
distclean-target: maybe-distclean-target-libsanitizer
distclean-target: maybe-distclean-target-libvtv
distclean-target: maybe-distclean-target-liboffloadmic
distclean-target: maybe-distclean-target-libssp
distclean-target: maybe-distclean-target-newlib
distclean-target: maybe-distclean-target-libgcc
distclean-target: maybe-distclean-target-libbacktrace
distclean-target: maybe-distclean-target-libquadmath
distclean-target: maybe-distclean-target-libgfortran
distclean-target: maybe-distclean-target-libobjc
distclean-target: maybe-distclean-target-libgo
distclean-target: maybe-distclean-target-libhsail-rt
distclean-target: maybe-distclean-target-libphobos
distclean-target: maybe-distclean-target-libtermcap
distclean-target: maybe-distclean-target-winsup
distclean-target: maybe-distclean-target-libgloss
distclean-target: maybe-distclean-target-libffi
distclean-target: maybe-distclean-target-zlib
distclean-target: maybe-distclean-target-rda
distclean-target: maybe-distclean-target-libada
distclean-target: maybe-distclean-target-libgomp
distclean-target: maybe-distclean-target-libitm
distclean-target: maybe-distclean-target-libatomic

.PHONY: do-maintainer-clean
do-maintainer-clean:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) maintainer-clean-host \
	  maintainer-clean-target


.PHONY: maintainer-clean-host

maintainer-clean-host: maybe-maintainer-clean-bfd
maintainer-clean-host: maybe-maintainer-clean-opcodes
maintainer-clean-host: maybe-maintainer-clean-binutils
maintainer-clean-host: maybe-maintainer-clean-bison
maintainer-clean-host: maybe-maintainer-clean-cgen
maintainer-clean-host: maybe-maintainer-clean-dejagnu
maintainer-clean-host: maybe-maintainer-clean-etc
maintainer-clean-host: maybe-maintainer-clean-fastjar
maintainer-clean-host: maybe-maintainer-clean-fixincludes
maintainer-clean-host: maybe-maintainer-clean-flex
maintainer-clean-host: maybe-maintainer-clean-gas
maintainer-clean-host: maybe-maintainer-clean-gcc
maintainer-clean-host: maybe-maintainer-clean-gmp
maintainer-clean-host: maybe-maintainer-clean-mpfr
maintainer-clean-host: maybe-maintainer-clean-mpc
maintainer-clean-host: maybe-maintainer-clean-isl
maintainer-clean-host: maybe-maintainer-clean-libelf
maintainer-clean-host: maybe-maintainer-clean-gold
maintainer-clean-host: maybe-maintainer-clean-gprof
maintainer-clean-host: maybe-maintainer-clean-intl
maintainer-clean-host: maybe-maintainer-clean-tcl
maintainer-clean-host: maybe-maintainer-clean-itcl
maintainer-clean-host: maybe-maintainer-clean-ld
maintainer-clean-host: maybe-maintainer-clean-libbacktrace
maintainer-clean-host: maybe-maintainer-clean-libcpp
maintainer-clean-host: maybe-maintainer-clean-libdecnumber
maintainer-clean-host: maybe-maintainer-clean-libgui
maintainer-clean-host: maybe-maintainer-clean-libiberty
maintainer-clean-host: maybe-maintainer-clean-libiberty-linker-plugin
maintainer-clean-host: maybe-maintainer-clean-libiconv
maintainer-clean-host: maybe-maintainer-clean-m4
maintainer-clean-host: maybe-maintainer-clean-readline
maintainer-clean-host: maybe-maintainer-clean-sid
maintainer-clean-host: maybe-maintainer-clean-sim
maintainer-clean-host: maybe-maintainer-clean-texinfo
maintainer-clean-host: maybe-maintainer-clean-zlib
maintainer-clean-host: maybe-maintainer-clean-gdb
maintainer-clean-host: maybe-maintainer-clean-expect
maintainer-clean-host: maybe-maintainer-clean-guile
maintainer-clean-host: maybe-maintainer-clean-tk
maintainer-clean-host: maybe-maintainer-clean-libtermcap
maintainer-clean-host: maybe-maintainer-clean-utils
maintainer-clean-host: maybe-maintainer-clean-gnattools
maintainer-clean-host: maybe-maintainer-clean-lto-plugin
maintainer-clean-host: maybe-maintainer-clean-libcc1
maintainer-clean-host: maybe-maintainer-clean-gotools

.PHONY: maintainer-clean-target

maintainer-clean-target: maybe-maintainer-clean-target-libstdc++-v3
maintainer-clean-target: maybe-maintainer-clean-target-libsanitizer
maintainer-clean-target: maybe-maintainer-clean-target-libvtv
maintainer-clean-target: maybe-maintainer-clean-target-liboffloadmic
maintainer-clean-target: maybe-maintainer-clean-target-libssp
maintainer-clean-target: maybe-maintainer-clean-target-newlib
maintainer-clean-target: maybe-maintainer-clean-target-libgcc
maintainer-clean-target: maybe-maintainer-clean-target-libbacktrace
maintainer-clean-target: maybe-maintainer-clean-target-libquadmath
maintainer-clean-target: maybe-maintainer-clean-target-libgfortran
maintainer-clean-target: maybe-maintainer-clean-target-libobjc
maintainer-clean-target: maybe-maintainer-clean-target-libgo
maintainer-clean-target: maybe-maintainer-clean-target-libhsail-rt
maintainer-clean-target: maybe-maintainer-clean-target-libphobos
maintainer-clean-target: maybe-maintainer-clean-target-libtermcap
maintainer-clean-target: maybe-maintainer-clean-target-winsup
maintainer-clean-target: maybe-maintainer-clean-target-libgloss
maintainer-clean-target: maybe-maintainer-clean-target-libffi
maintainer-clean-target: maybe-maintainer-clean-target-zlib
maintainer-clean-target: maybe-maintainer-clean-target-rda
maintainer-clean-target: maybe-maintainer-clean-target-libada
maintainer-clean-target: maybe-maintainer-clean-target-libgomp
maintainer-clean-target: maybe-maintainer-clean-target-libitm
maintainer-clean-target: maybe-maintainer-clean-target-libatomic


# Here are the targets which correspond to the do-X targets.

.PHONY: info installcheck dvi pdf html
.PHONY: install-info install-pdf install-html
.PHONY: clean distclean mostlyclean maintainer-clean realclean
.PHONY: local-clean local-distclean local-maintainer-clean
info: do-info
installcheck: do-installcheck
dvi: do-dvi
pdf: do-pdf
html: do-html

# Make sure makeinfo is built before we do a `make info', if we're
# in fact building texinfo.
do-info: maybe-all-texinfo

install-info: do-install-info dir.info
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	if [ -f dir.info ]; then \
	  $(INSTALL_DATA) dir.info $(DESTDIR)$(infodir)/dir.info; \
	else true; fi

install-pdf: do-install-pdf

install-html: do-install-html

local-clean:
	-rm -f *.a TEMP errs core *.o *~ \#* TAGS *.E *.log

local-distclean:
	-rm -f Makefile config.status config.cache mh-frag mt-frag
	-rm -f maybedep.tmp serdep.tmp stage_final
	-if [ "$(TARGET_SUBDIR)" != "." ]; then \
	  rm -rf $(TARGET_SUBDIR); \
	else true; fi
	-rm -rf $(BUILD_SUBDIR)
	-if [ "$(HOST_SUBDIR)" != "." ]; then \
	  rm -rf $(HOST_SUBDIR); \
	else true; fi
	-rm -f texinfo/po/Makefile texinfo/po/Makefile.in texinfo/info/Makefile
	-rm -f texinfo/doc/Makefile texinfo/po/POTFILES
	-rmdir texinfo/doc texinfo/info texinfo/intl texinfo/lib 2>/dev/null
	-rmdir texinfo/makeinfo texinfo/po texinfo/util 2>/dev/null
	-rmdir fastjar gcc gnattools gotools libcc1 libiberty 2>/dev/null
	-rmdir texinfo zlib 2>/dev/null
	-find . -name config.cache -exec rm -f {} \; \; 2>/dev/null

local-maintainer-clean:
	@echo "This command is intended for maintainers to use;"
	@echo "it deletes files that may require special tools to rebuild."

clean: do-clean local-clean
mostlyclean: do-mostlyclean local-clean
distclean: do-distclean local-clean local-distclean
maintainer-clean: local-maintainer-clean do-maintainer-clean local-clean 
maintainer-clean: local-distclean
realclean: maintainer-clean

# Check target.

.PHONY: check do-check
check: do-check

# Only include modules actually being configured and built.
.PHONY: check-host
check-host:  \
    maybe-check-bfd \
    maybe-check-opcodes \
    maybe-check-binutils \
    maybe-check-bison \
    maybe-check-cgen \
    maybe-check-dejagnu \
    maybe-check-etc \
    maybe-check-fastjar \
    maybe-check-fixincludes \
    maybe-check-flex \
    maybe-check-gas \
    maybe-check-gcc \
    maybe-check-gmp \
    maybe-check-mpfr \
    maybe-check-mpc \
    maybe-check-isl \
    maybe-check-libelf \
    maybe-check-gold \
    maybe-check-gprof \
    maybe-check-intl \
    maybe-check-tcl \
    maybe-check-itcl \
    maybe-check-ld \
    maybe-check-libbacktrace \
    maybe-check-libcpp \
    maybe-check-libdecnumber \
    maybe-check-libgui \
    maybe-check-libiberty \
    maybe-check-libiberty-linker-plugin \
    maybe-check-libiconv \
    maybe-check-m4 \
    maybe-check-readline \
    maybe-check-sid \
    maybe-check-sim \
    maybe-check-texinfo \
    maybe-check-zlib \
    maybe-check-gdb \
    maybe-check-expect \
    maybe-check-guile \
    maybe-check-tk \
    maybe-check-libtermcap \
    maybe-check-utils \
    maybe-check-gnattools \
    maybe-check-lto-plugin \
    maybe-check-libcc1 \
    maybe-check-gotools

.PHONY: check-target
check-target:  \
    maybe-check-target-libstdc++-v3 \
    maybe-check-target-libsanitizer \
    maybe-check-target-libvtv \
    maybe-check-target-liboffloadmic \
    maybe-check-target-libssp \
    maybe-check-target-newlib \
    maybe-check-target-libgcc \
    maybe-check-target-libbacktrace \
    maybe-check-target-libquadmath \
    maybe-check-target-libgfortran \
    maybe-check-target-libobjc \
    maybe-check-target-libgo \
    maybe-check-target-libhsail-rt \
    maybe-check-target-libphobos \
    maybe-check-target-libtermcap \
    maybe-check-target-winsup \
    maybe-check-target-libgloss \
    maybe-check-target-libffi \
    maybe-check-target-zlib \
    maybe-check-target-rda \
    maybe-check-target-libada \
    maybe-check-target-libgomp \
    maybe-check-target-libitm \
    maybe-check-target-libatomic

do-check:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) check-host check-target

# Automated reporting of test results.

warning.log: build.log
	$(srcdir)/contrib/warn_summary build.log > $@

mail-report.log:
	if test x'$(BOOT_CFLAGS)' != x''; then \
	    BOOT_CFLAGS='$(BOOT_CFLAGS)'; export BOOT_CFLAGS; \
	fi; \
	$(srcdir)/contrib/test_summary -t >$@
	chmod +x $@
	echo If you really want to send e-mail, run ./$@ now

mail-report-with-warnings.log: warning.log
	if test x'$(BOOT_CFLAGS)' != x''; then \
	    BOOT_CFLAGS='$(BOOT_CFLAGS)'; export BOOT_CFLAGS; \
	fi; \
	$(srcdir)/contrib/test_summary -t -i warning.log >$@
	chmod +x $@
	echo If you really want to send e-mail, run ./$@ now

# Local Vim config

$(srcdir)/.local.vimrc:
	$(LN_S) contrib/vimrc $@

$(srcdir)/.lvimrc:
	$(LN_S) contrib/vimrc $@

vimrc: $(srcdir)/.local.vimrc $(srcdir)/.lvimrc

.PHONY: vimrc

# clang-format config

$(srcdir)/.clang-format:
	$(LN_S) contrib/clang-format $@

clang-format: $(srcdir)/.clang-format

.PHONY: clang-format

# Installation targets.

.PHONY: install uninstall
install:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) installdirs install-host install-target

.PHONY: install-host-nogcc
install-host-nogcc:  \
    maybe-install-bfd \
    maybe-install-opcodes \
    maybe-install-binutils \
    maybe-install-bison \
    maybe-install-cgen \
    maybe-install-dejagnu \
    maybe-install-etc \
    maybe-install-fastjar \
    maybe-install-fixincludes \
    maybe-install-flex \
    maybe-install-gas \
    maybe-install-gmp \
    maybe-install-mpfr \
    maybe-install-mpc \
    maybe-install-isl \
    maybe-install-libelf \
    maybe-install-gold \
    maybe-install-gprof \
    maybe-install-intl \
    maybe-install-tcl \
    maybe-install-itcl \
    maybe-install-ld \
    maybe-install-libbacktrace \
    maybe-install-libcpp \
    maybe-install-libdecnumber \
    maybe-install-libgui \
    maybe-install-libiberty \
    maybe-install-libiberty-linker-plugin \
    maybe-install-libiconv \
    maybe-install-m4 \
    maybe-install-readline \
    maybe-install-sid \
    maybe-install-sim \
    maybe-install-texinfo \
    maybe-install-zlib \
    maybe-install-gdb \
    maybe-install-expect \
    maybe-install-guile \
    maybe-install-tk \
    maybe-install-libtermcap \
    maybe-install-utils \
    maybe-install-gnattools \
    maybe-install-lto-plugin \
    maybe-install-libcc1 \
    maybe-install-gotools

.PHONY: install-host
install-host:  \
    maybe-install-bfd \
    maybe-install-opcodes \
    maybe-install-binutils \
    maybe-install-bison \
    maybe-install-cgen \
    maybe-install-dejagnu \
    maybe-install-etc \
    maybe-install-fastjar \
    maybe-install-fixincludes \
    maybe-install-flex \
    maybe-install-gas \
    maybe-install-gcc \
    maybe-install-gmp \
    maybe-install-mpfr \
    maybe-install-mpc \
    maybe-install-isl \
    maybe-install-libelf \
    maybe-install-gold \
    maybe-install-gprof \
    maybe-install-intl \
    maybe-install-tcl \
    maybe-install-itcl \
    maybe-install-ld \
    maybe-install-libbacktrace \
    maybe-install-libcpp \
    maybe-install-libdecnumber \
    maybe-install-libgui \
    maybe-install-libiberty \
    maybe-install-libiberty-linker-plugin \
    maybe-install-libiconv \
    maybe-install-m4 \
    maybe-install-readline \
    maybe-install-sid \
    maybe-install-sim \
    maybe-install-texinfo \
    maybe-install-zlib \
    maybe-install-gdb \
    maybe-install-expect \
    maybe-install-guile \
    maybe-install-tk \
    maybe-install-libtermcap \
    maybe-install-utils \
    maybe-install-gnattools \
    maybe-install-lto-plugin \
    maybe-install-libcc1 \
    maybe-install-gotools

.PHONY: install-target
install-target:  \
    maybe-install-target-libstdc++-v3 \
    maybe-install-target-libsanitizer \
    maybe-install-target-libvtv \
    maybe-install-target-liboffloadmic \
    maybe-install-target-libssp \
    maybe-install-target-newlib \
    maybe-install-target-libgcc \
    maybe-install-target-libbacktrace \
    maybe-install-target-libquadmath \
    maybe-install-target-libgfortran \
    maybe-install-target-libobjc \
    maybe-install-target-libgo \
    maybe-install-target-libhsail-rt \
    maybe-install-target-libphobos \
    maybe-install-target-libtermcap \
    maybe-install-target-winsup \
    maybe-install-target-libgloss \
    maybe-install-target-libffi \
    maybe-install-target-zlib \
    maybe-install-target-rda \
    maybe-install-target-libada \
    maybe-install-target-libgomp \
    maybe-install-target-libitm \
    maybe-install-target-libatomic

uninstall:
	@echo "the uninstall target is not supported in this tree"

.PHONY: install.all
install.all: install-no-fixedincludes
	@if [ -f ./gcc/Makefile ]; then \
		r=`${PWD_COMMAND}`; export r; \
		s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
		$(HOST_EXPORTS) \
		(cd ./gcc && \
		$(MAKE) $(FLAGS_TO_PASS) install-headers); \
	else \
		true; \
	fi

# install-no-fixedincludes is used to allow the elaboration of binary packages
# suitable for distribution, where we cannot include the fixed system header
# files.
.PHONY: install-no-fixedincludes
install-no-fixedincludes: installdirs install-host-nogcc \
	install-target gcc-install-no-fixedincludes

.PHONY: install-strip
install-strip:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) installdirs install-strip-host install-strip-target

.PHONY: install-strip-host
install-strip-host:  \
    maybe-install-strip-bfd \
    maybe-install-strip-opcodes \
    maybe-install-strip-binutils \
    maybe-install-strip-bison \
    maybe-install-strip-cgen \
    maybe-install-strip-dejagnu \
    maybe-install-strip-etc \
    maybe-install-strip-fastjar \
    maybe-install-strip-fixincludes \
    maybe-install-strip-flex \
    maybe-install-strip-gas \
    maybe-install-strip-gcc \
    maybe-install-strip-gmp \
    maybe-install-strip-mpfr \
    maybe-install-strip-mpc \
    maybe-install-strip-isl \
    maybe-install-strip-libelf \
    maybe-install-strip-gold \
    maybe-install-strip-gprof \
    maybe-install-strip-intl \
    maybe-install-strip-tcl \
    maybe-install-strip-itcl \
    maybe-install-strip-ld \
    maybe-install-strip-libbacktrace \
    maybe-install-strip-libcpp \
    maybe-install-strip-libdecnumber \
    maybe-install-strip-libgui \
    maybe-install-strip-libiberty \
    maybe-install-strip-libiberty-linker-plugin \
    maybe-install-strip-libiconv \
    maybe-install-strip-m4 \
    maybe-install-strip-readline \
    maybe-install-strip-sid \
    maybe-install-strip-sim \
    maybe-install-strip-texinfo \
    maybe-install-strip-zlib \
    maybe-install-strip-gdb \
    maybe-install-strip-expect \
    maybe-install-strip-guile \
    maybe-install-strip-tk \
    maybe-install-strip-libtermcap \
    maybe-install-strip-utils \
    maybe-install-strip-gnattools \
    maybe-install-strip-lto-plugin \
    maybe-install-strip-libcc1 \
    maybe-install-strip-gotools

.PHONY: install-strip-target
install-strip-target:  \
    maybe-install-strip-target-libstdc++-v3 \
    maybe-install-strip-target-libsanitizer \
    maybe-install-strip-target-libvtv \
    maybe-install-strip-target-liboffloadmic \
    maybe-install-strip-target-libssp \
    maybe-install-strip-target-newlib \
    maybe-install-strip-target-libgcc \
    maybe-install-strip-target-libbacktrace \
    maybe-install-strip-target-libquadmath \
    maybe-install-strip-target-libgfortran \
    maybe-install-strip-target-libobjc \
    maybe-install-strip-target-libgo \
    maybe-install-strip-target-libhsail-rt \
    maybe-install-strip-target-libphobos \
    maybe-install-strip-target-libtermcap \
    maybe-install-strip-target-winsup \
    maybe-install-strip-target-libgloss \
    maybe-install-strip-target-libffi \
    maybe-install-strip-target-zlib \
    maybe-install-strip-target-rda \
    maybe-install-strip-target-libada \
    maybe-install-strip-target-libgomp \
    maybe-install-strip-target-libitm \
    maybe-install-strip-target-libatomic


### other supporting targets

MAKEDIRS= \
	$(DESTDIR)$(prefix) \
	$(DESTDIR)$(exec_prefix)
.PHONY: installdirs
installdirs: mkinstalldirs
	$(SHELL) $(srcdir)/mkinstalldirs $(MAKEDIRS)

dir.info: do-install-info
	if [ -f $(srcdir)/texinfo/gen-info-dir ]; then \
	  $(srcdir)/texinfo/gen-info-dir $(DESTDIR)$(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new; \
	  mv -f dir.info.new dir.info; \
	else true; \
	fi

dist:
	@echo "Building a full distribution of this tree isn't done"
	@echo "via 'make dist'.  Check out the etc/ subdirectory" 

etags tags: TAGS

# Right now this just builds TAGS in each subdirectory.  emacs19 has the
# ability to use several tags files at once, so there is probably no need
# to combine them into one big TAGS file (like CVS 1.3 does).  We could
# (if we felt like it) have this Makefile write a piece of elisp which
# the user could load to tell emacs19 where all the TAGS files we just
# built are.
TAGS: do-TAGS

# ------------------------------------
# Macros for configure and all targets
# ------------------------------------





# --------------------------------------
# Modules which run on the build machine
# --------------------------------------


.PHONY: configure-build-libiberty maybe-configure-build-libiberty
maybe-configure-build-libiberty:
@if gcc-bootstrap
configure-build-libiberty: stage_current
@endif gcc-bootstrap
@if build-libiberty
maybe-configure-build-libiberty: configure-build-libiberty
configure-build-libiberty: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(BUILD_SUBDIR)/libiberty/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(BUILD_SUBDIR)/libiberty; \
	$(BUILD_EXPORTS)  \
	echo Configuring in $(BUILD_SUBDIR)/libiberty; \
	cd "$(BUILD_SUBDIR)/libiberty" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(BUILD_SUBDIR)/libiberty/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(BUILD_CONFIGARGS) --build=${build_alias} --host=${build_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif build-libiberty





.PHONY: all-build-libiberty maybe-all-build-libiberty
maybe-all-build-libiberty:
@if gcc-bootstrap
all-build-libiberty: stage_current
@endif gcc-bootstrap
@if build-libiberty
TARGET-build-libiberty=all
maybe-all-build-libiberty: all-build-libiberty
all-build-libiberty: configure-build-libiberty
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(BUILD_EXPORTS)  \
	(cd $(BUILD_SUBDIR)/libiberty && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_BUILD_FLAGS)   \
		$(TARGET-build-libiberty))
@endif build-libiberty





.PHONY: configure-build-bison maybe-configure-build-bison
maybe-configure-build-bison:
@if gcc-bootstrap
configure-build-bison: stage_current
@endif gcc-bootstrap
@if build-bison
maybe-configure-build-bison: configure-build-bison
configure-build-bison: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(BUILD_SUBDIR)/bison/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(BUILD_SUBDIR)/bison; \
	$(BUILD_EXPORTS)  \
	echo Configuring in $(BUILD_SUBDIR)/bison; \
	cd "$(BUILD_SUBDIR)/bison" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(BUILD_SUBDIR)/bison/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=bison; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(BUILD_CONFIGARGS) --build=${build_alias} --host=${build_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif build-bison





.PHONY: all-build-bison maybe-all-build-bison
maybe-all-build-bison:
@if gcc-bootstrap
all-build-bison: stage_current
@endif gcc-bootstrap
@if build-bison
TARGET-build-bison=all
maybe-all-build-bison: all-build-bison
all-build-bison: configure-build-bison
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(BUILD_EXPORTS)  \
	(cd $(BUILD_SUBDIR)/bison && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_BUILD_FLAGS)   \
		$(TARGET-build-bison))
@endif build-bison





.PHONY: configure-build-flex maybe-configure-build-flex
maybe-configure-build-flex:
@if gcc-bootstrap
configure-build-flex: stage_current
@endif gcc-bootstrap
@if build-flex
maybe-configure-build-flex: configure-build-flex
configure-build-flex: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(BUILD_SUBDIR)/flex/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(BUILD_SUBDIR)/flex; \
	$(BUILD_EXPORTS)  \
	echo Configuring in $(BUILD_SUBDIR)/flex; \
	cd "$(BUILD_SUBDIR)/flex" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(BUILD_SUBDIR)/flex/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=flex; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(BUILD_CONFIGARGS) --build=${build_alias} --host=${build_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif build-flex





.PHONY: all-build-flex maybe-all-build-flex
maybe-all-build-flex:
@if gcc-bootstrap
all-build-flex: stage_current
@endif gcc-bootstrap
@if build-flex
TARGET-build-flex=all
maybe-all-build-flex: all-build-flex
all-build-flex: configure-build-flex
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(BUILD_EXPORTS)  \
	(cd $(BUILD_SUBDIR)/flex && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_BUILD_FLAGS)   \
		$(TARGET-build-flex))
@endif build-flex





.PHONY: configure-build-m4 maybe-configure-build-m4
maybe-configure-build-m4:
@if gcc-bootstrap
configure-build-m4: stage_current
@endif gcc-bootstrap
@if build-m4
maybe-configure-build-m4: configure-build-m4
configure-build-m4: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(BUILD_SUBDIR)/m4/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(BUILD_SUBDIR)/m4; \
	$(BUILD_EXPORTS)  \
	echo Configuring in $(BUILD_SUBDIR)/m4; \
	cd "$(BUILD_SUBDIR)/m4" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(BUILD_SUBDIR)/m4/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=m4; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(BUILD_CONFIGARGS) --build=${build_alias} --host=${build_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif build-m4





.PHONY: all-build-m4 maybe-all-build-m4
maybe-all-build-m4:
@if gcc-bootstrap
all-build-m4: stage_current
@endif gcc-bootstrap
@if build-m4
TARGET-build-m4=all
maybe-all-build-m4: all-build-m4
all-build-m4: configure-build-m4
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(BUILD_EXPORTS)  \
	(cd $(BUILD_SUBDIR)/m4 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_BUILD_FLAGS)   \
		$(TARGET-build-m4))
@endif build-m4





.PHONY: configure-build-texinfo maybe-configure-build-texinfo
maybe-configure-build-texinfo:
@if gcc-bootstrap
configure-build-texinfo: stage_current
@endif gcc-bootstrap
@if build-texinfo
maybe-configure-build-texinfo: configure-build-texinfo
configure-build-texinfo: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(BUILD_SUBDIR)/texinfo/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(BUILD_SUBDIR)/texinfo; \
	$(BUILD_EXPORTS)  \
	echo Configuring in $(BUILD_SUBDIR)/texinfo; \
	cd "$(BUILD_SUBDIR)/texinfo" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(BUILD_SUBDIR)/texinfo/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=texinfo; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(BUILD_CONFIGARGS) --build=${build_alias} --host=${build_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif build-texinfo





.PHONY: all-build-texinfo maybe-all-build-texinfo
maybe-all-build-texinfo:
@if gcc-bootstrap
all-build-texinfo: stage_current
@endif gcc-bootstrap
@if build-texinfo
TARGET-build-texinfo=all
maybe-all-build-texinfo: all-build-texinfo
all-build-texinfo: configure-build-texinfo
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(BUILD_EXPORTS)  \
	(cd $(BUILD_SUBDIR)/texinfo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_BUILD_FLAGS)   \
		$(TARGET-build-texinfo))
@endif build-texinfo





.PHONY: configure-build-fixincludes maybe-configure-build-fixincludes
maybe-configure-build-fixincludes:
@if gcc-bootstrap
configure-build-fixincludes: stage_current
@endif gcc-bootstrap
@if build-fixincludes
maybe-configure-build-fixincludes: configure-build-fixincludes
configure-build-fixincludes: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(BUILD_SUBDIR)/fixincludes/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(BUILD_SUBDIR)/fixincludes; \
	$(BUILD_EXPORTS)  \
	echo Configuring in $(BUILD_SUBDIR)/fixincludes; \
	cd "$(BUILD_SUBDIR)/fixincludes" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(BUILD_SUBDIR)/fixincludes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=fixincludes; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(BUILD_CONFIGARGS) --build=${build_alias} --host=${build_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif build-fixincludes





.PHONY: all-build-fixincludes maybe-all-build-fixincludes
maybe-all-build-fixincludes:
@if gcc-bootstrap
all-build-fixincludes: stage_current
@endif gcc-bootstrap
@if build-fixincludes
TARGET-build-fixincludes=all
maybe-all-build-fixincludes: all-build-fixincludes
all-build-fixincludes: configure-build-fixincludes
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(BUILD_EXPORTS)  \
	(cd $(BUILD_SUBDIR)/fixincludes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_BUILD_FLAGS)   \
		$(TARGET-build-fixincludes))
@endif build-fixincludes





.PHONY: configure-build-libcpp maybe-configure-build-libcpp
maybe-configure-build-libcpp:
@if gcc-bootstrap
configure-build-libcpp: stage_current
@endif gcc-bootstrap
@if build-libcpp
maybe-configure-build-libcpp: configure-build-libcpp
configure-build-libcpp: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(BUILD_SUBDIR)/libcpp/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(BUILD_SUBDIR)/libcpp; \
	$(BUILD_EXPORTS)  \
	echo Configuring in $(BUILD_SUBDIR)/libcpp; \
	cd "$(BUILD_SUBDIR)/libcpp" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(BUILD_SUBDIR)/libcpp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcpp; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(BUILD_CONFIGARGS) --build=${build_alias} --host=${build_alias} \
	  --target=${target_alias} --disable-nls am_cv_func_iconv=no \
	  || exit 1
@endif build-libcpp





.PHONY: all-build-libcpp maybe-all-build-libcpp
maybe-all-build-libcpp:
@if gcc-bootstrap
all-build-libcpp: stage_current
@endif gcc-bootstrap
@if build-libcpp
TARGET-build-libcpp=all
maybe-all-build-libcpp: all-build-libcpp
all-build-libcpp: configure-build-libcpp
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(BUILD_EXPORTS)  \
	(cd $(BUILD_SUBDIR)/libcpp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_BUILD_FLAGS)   \
		$(TARGET-build-libcpp))
@endif build-libcpp





# --------------------------------------
# Modules which run on the host machine
# --------------------------------------


.PHONY: configure-bfd maybe-configure-bfd
maybe-configure-bfd:
@if gcc-bootstrap
configure-bfd: stage_current
@endif gcc-bootstrap
@if bfd
maybe-configure-bfd: configure-bfd
configure-bfd: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/bfd; \
	cd "$(HOST_SUBDIR)/bfd" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/bfd/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=bfd; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif bfd



.PHONY: configure-stage1-bfd maybe-configure-stage1-bfd
maybe-configure-stage1-bfd:
@if bfd-bootstrap
maybe-configure-stage1-bfd: configure-stage1-bfd
configure-stage1-bfd:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/bfd; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd; \
	cd $(HOST_SUBDIR)/bfd || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/bfd/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=bfd; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif bfd-bootstrap

.PHONY: configure-stage2-bfd maybe-configure-stage2-bfd
maybe-configure-stage2-bfd:
@if bfd-bootstrap
maybe-configure-stage2-bfd: configure-stage2-bfd
configure-stage2-bfd:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/bfd; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd; \
	cd $(HOST_SUBDIR)/bfd || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/bfd/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=bfd; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS)
@endif bfd-bootstrap

.PHONY: configure-stage3-bfd maybe-configure-stage3-bfd
maybe-configure-stage3-bfd:
@if bfd-bootstrap
maybe-configure-stage3-bfd: configure-stage3-bfd
configure-stage3-bfd:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/bfd; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd; \
	cd $(HOST_SUBDIR)/bfd || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/bfd/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=bfd; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS)
@endif bfd-bootstrap

.PHONY: configure-stage4-bfd maybe-configure-stage4-bfd
maybe-configure-stage4-bfd:
@if bfd-bootstrap
maybe-configure-stage4-bfd: configure-stage4-bfd
configure-stage4-bfd:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/bfd; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd; \
	cd $(HOST_SUBDIR)/bfd || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/bfd/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=bfd; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS)
@endif bfd-bootstrap

.PHONY: configure-stageprofile-bfd maybe-configure-stageprofile-bfd
maybe-configure-stageprofile-bfd:
@if bfd-bootstrap
maybe-configure-stageprofile-bfd: configure-stageprofile-bfd
configure-stageprofile-bfd:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/bfd; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd; \
	cd $(HOST_SUBDIR)/bfd || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/bfd/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=bfd; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS)
@endif bfd-bootstrap

.PHONY: configure-stagetrain-bfd maybe-configure-stagetrain-bfd
maybe-configure-stagetrain-bfd:
@if bfd-bootstrap
maybe-configure-stagetrain-bfd: configure-stagetrain-bfd
configure-stagetrain-bfd:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/bfd; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd; \
	cd $(HOST_SUBDIR)/bfd || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/bfd/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=bfd; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS)
@endif bfd-bootstrap

.PHONY: configure-stagefeedback-bfd maybe-configure-stagefeedback-bfd
maybe-configure-stagefeedback-bfd:
@if bfd-bootstrap
maybe-configure-stagefeedback-bfd: configure-stagefeedback-bfd
configure-stagefeedback-bfd:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/bfd; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd; \
	cd $(HOST_SUBDIR)/bfd || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/bfd/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=bfd; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS)
@endif bfd-bootstrap

.PHONY: configure-stageautoprofile-bfd maybe-configure-stageautoprofile-bfd
maybe-configure-stageautoprofile-bfd:
@if bfd-bootstrap
maybe-configure-stageautoprofile-bfd: configure-stageautoprofile-bfd
configure-stageautoprofile-bfd:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/bfd; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd; \
	cd $(HOST_SUBDIR)/bfd || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/bfd/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=bfd; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS)
@endif bfd-bootstrap

.PHONY: configure-stageautofeedback-bfd maybe-configure-stageautofeedback-bfd
maybe-configure-stageautofeedback-bfd:
@if bfd-bootstrap
maybe-configure-stageautofeedback-bfd: configure-stageautofeedback-bfd
configure-stageautofeedback-bfd:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/bfd/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/bfd; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bfd; \
	cd $(HOST_SUBDIR)/bfd || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/bfd/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=bfd; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS)
@endif bfd-bootstrap





.PHONY: all-bfd maybe-all-bfd
maybe-all-bfd:
@if gcc-bootstrap
all-bfd: stage_current
@endif gcc-bootstrap
@if bfd
TARGET-bfd=all
maybe-all-bfd: all-bfd
all-bfd: configure-bfd
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/bfd && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-bfd))
@endif bfd



.PHONY: all-stage1-bfd maybe-all-stage1-bfd
.PHONY: clean-stage1-bfd maybe-clean-stage1-bfd
maybe-all-stage1-bfd:
maybe-clean-stage1-bfd:
@if bfd-bootstrap
maybe-all-stage1-bfd: all-stage1-bfd
all-stage1: all-stage1-bfd
TARGET-stage1-bfd = $(TARGET-bfd)
all-stage1-bfd: configure-stage1-bfd
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/bfd && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-bfd)

maybe-clean-stage1-bfd: clean-stage1-bfd
clean-stage1: clean-stage1-bfd
clean-stage1-bfd:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/bfd/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-bfd/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/bfd && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS)  clean
@endif bfd-bootstrap


.PHONY: all-stage2-bfd maybe-all-stage2-bfd
.PHONY: clean-stage2-bfd maybe-clean-stage2-bfd
maybe-all-stage2-bfd:
maybe-clean-stage2-bfd:
@if bfd-bootstrap
maybe-all-stage2-bfd: all-stage2-bfd
all-stage2: all-stage2-bfd
TARGET-stage2-bfd = $(TARGET-bfd)
all-stage2-bfd: configure-stage2-bfd
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/bfd && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-bfd)

maybe-clean-stage2-bfd: clean-stage2-bfd
clean-stage2: clean-stage2-bfd
clean-stage2-bfd:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/bfd/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-bfd/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/bfd && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif bfd-bootstrap


.PHONY: all-stage3-bfd maybe-all-stage3-bfd
.PHONY: clean-stage3-bfd maybe-clean-stage3-bfd
maybe-all-stage3-bfd:
maybe-clean-stage3-bfd:
@if bfd-bootstrap
maybe-all-stage3-bfd: all-stage3-bfd
all-stage3: all-stage3-bfd
TARGET-stage3-bfd = $(TARGET-bfd)
all-stage3-bfd: configure-stage3-bfd
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/bfd && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-bfd)

maybe-clean-stage3-bfd: clean-stage3-bfd
clean-stage3: clean-stage3-bfd
clean-stage3-bfd:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/bfd/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-bfd/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/bfd && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif bfd-bootstrap


.PHONY: all-stage4-bfd maybe-all-stage4-bfd
.PHONY: clean-stage4-bfd maybe-clean-stage4-bfd
maybe-all-stage4-bfd:
maybe-clean-stage4-bfd:
@if bfd-bootstrap
maybe-all-stage4-bfd: all-stage4-bfd
all-stage4: all-stage4-bfd
TARGET-stage4-bfd = $(TARGET-bfd)
all-stage4-bfd: configure-stage4-bfd
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/bfd && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-bfd)

maybe-clean-stage4-bfd: clean-stage4-bfd
clean-stage4: clean-stage4-bfd
clean-stage4-bfd:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/bfd/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-bfd/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/bfd && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif bfd-bootstrap


.PHONY: all-stageprofile-bfd maybe-all-stageprofile-bfd
.PHONY: clean-stageprofile-bfd maybe-clean-stageprofile-bfd
maybe-all-stageprofile-bfd:
maybe-clean-stageprofile-bfd:
@if bfd-bootstrap
maybe-all-stageprofile-bfd: all-stageprofile-bfd
all-stageprofile: all-stageprofile-bfd
TARGET-stageprofile-bfd = $(TARGET-bfd)
all-stageprofile-bfd: configure-stageprofile-bfd
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/bfd && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-bfd)

maybe-clean-stageprofile-bfd: clean-stageprofile-bfd
clean-stageprofile: clean-stageprofile-bfd
clean-stageprofile-bfd:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/bfd/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-bfd/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/bfd && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif bfd-bootstrap


.PHONY: all-stagetrain-bfd maybe-all-stagetrain-bfd
.PHONY: clean-stagetrain-bfd maybe-clean-stagetrain-bfd
maybe-all-stagetrain-bfd:
maybe-clean-stagetrain-bfd:
@if bfd-bootstrap
maybe-all-stagetrain-bfd: all-stagetrain-bfd
all-stagetrain: all-stagetrain-bfd
TARGET-stagetrain-bfd = $(TARGET-bfd)
all-stagetrain-bfd: configure-stagetrain-bfd
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/bfd && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-bfd)

maybe-clean-stagetrain-bfd: clean-stagetrain-bfd
clean-stagetrain: clean-stagetrain-bfd
clean-stagetrain-bfd:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/bfd/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-bfd/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/bfd && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif bfd-bootstrap


.PHONY: all-stagefeedback-bfd maybe-all-stagefeedback-bfd
.PHONY: clean-stagefeedback-bfd maybe-clean-stagefeedback-bfd
maybe-all-stagefeedback-bfd:
maybe-clean-stagefeedback-bfd:
@if bfd-bootstrap
maybe-all-stagefeedback-bfd: all-stagefeedback-bfd
all-stagefeedback: all-stagefeedback-bfd
TARGET-stagefeedback-bfd = $(TARGET-bfd)
all-stagefeedback-bfd: configure-stagefeedback-bfd
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/bfd && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-bfd)

maybe-clean-stagefeedback-bfd: clean-stagefeedback-bfd
clean-stagefeedback: clean-stagefeedback-bfd
clean-stagefeedback-bfd:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/bfd/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-bfd/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/bfd && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif bfd-bootstrap


.PHONY: all-stageautoprofile-bfd maybe-all-stageautoprofile-bfd
.PHONY: clean-stageautoprofile-bfd maybe-clean-stageautoprofile-bfd
maybe-all-stageautoprofile-bfd:
maybe-clean-stageautoprofile-bfd:
@if bfd-bootstrap
maybe-all-stageautoprofile-bfd: all-stageautoprofile-bfd
all-stageautoprofile: all-stageautoprofile-bfd
TARGET-stageautoprofile-bfd = $(TARGET-bfd)
all-stageautoprofile-bfd: configure-stageautoprofile-bfd
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/bfd && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-bfd)

maybe-clean-stageautoprofile-bfd: clean-stageautoprofile-bfd
clean-stageautoprofile: clean-stageautoprofile-bfd
clean-stageautoprofile-bfd:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/bfd/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-bfd/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/bfd && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif bfd-bootstrap


.PHONY: all-stageautofeedback-bfd maybe-all-stageautofeedback-bfd
.PHONY: clean-stageautofeedback-bfd maybe-clean-stageautofeedback-bfd
maybe-all-stageautofeedback-bfd:
maybe-clean-stageautofeedback-bfd:
@if bfd-bootstrap
maybe-all-stageautofeedback-bfd: all-stageautofeedback-bfd
all-stageautofeedback: all-stageautofeedback-bfd
TARGET-stageautofeedback-bfd = $(TARGET-bfd)
all-stageautofeedback-bfd: configure-stageautofeedback-bfd
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/bfd && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-bfd)

maybe-clean-stageautofeedback-bfd: clean-stageautofeedback-bfd
clean-stageautofeedback: clean-stageautofeedback-bfd
clean-stageautofeedback-bfd:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/bfd/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-bfd/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/bfd && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif bfd-bootstrap





.PHONY: check-bfd maybe-check-bfd
maybe-check-bfd:
@if bfd
maybe-check-bfd: check-bfd

check-bfd:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/bfd && \
	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif bfd

.PHONY: install-bfd maybe-install-bfd
maybe-install-bfd:
@if bfd
maybe-install-bfd: install-bfd

install-bfd: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/bfd && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif bfd

.PHONY: install-strip-bfd maybe-install-strip-bfd
maybe-install-strip-bfd:
@if bfd
maybe-install-strip-bfd: install-strip-bfd

install-strip-bfd: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/bfd && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif bfd

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-bfd info-bfd
maybe-info-bfd:
@if bfd
maybe-info-bfd: info-bfd

info-bfd: \
    configure-bfd 
	@[ -f ./bfd/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in bfd"; \
	(cd $(HOST_SUBDIR)/bfd && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif bfd

.PHONY: maybe-dvi-bfd dvi-bfd
maybe-dvi-bfd:
@if bfd
maybe-dvi-bfd: dvi-bfd

dvi-bfd: \
    configure-bfd 
	@[ -f ./bfd/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in bfd"; \
	(cd $(HOST_SUBDIR)/bfd && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif bfd

.PHONY: maybe-pdf-bfd pdf-bfd
maybe-pdf-bfd:
@if bfd
maybe-pdf-bfd: pdf-bfd

pdf-bfd: \
    configure-bfd 
	@[ -f ./bfd/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in bfd"; \
	(cd $(HOST_SUBDIR)/bfd && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif bfd

.PHONY: maybe-html-bfd html-bfd
maybe-html-bfd:
@if bfd
maybe-html-bfd: html-bfd

html-bfd: \
    configure-bfd 
	@[ -f ./bfd/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in bfd"; \
	(cd $(HOST_SUBDIR)/bfd && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif bfd

.PHONY: maybe-TAGS-bfd TAGS-bfd
maybe-TAGS-bfd:
@if bfd
maybe-TAGS-bfd: TAGS-bfd

TAGS-bfd: \
    configure-bfd 
	@[ -f ./bfd/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in bfd"; \
	(cd $(HOST_SUBDIR)/bfd && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif bfd

.PHONY: maybe-install-info-bfd install-info-bfd
maybe-install-info-bfd:
@if bfd
maybe-install-info-bfd: install-info-bfd

install-info-bfd: \
    configure-bfd \
    info-bfd 
	@[ -f ./bfd/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in bfd"; \
	(cd $(HOST_SUBDIR)/bfd && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif bfd

.PHONY: maybe-install-pdf-bfd install-pdf-bfd
maybe-install-pdf-bfd:
@if bfd
maybe-install-pdf-bfd: install-pdf-bfd

install-pdf-bfd: \
    configure-bfd \
    pdf-bfd 
	@[ -f ./bfd/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in bfd"; \
	(cd $(HOST_SUBDIR)/bfd && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif bfd

.PHONY: maybe-install-html-bfd install-html-bfd
maybe-install-html-bfd:
@if bfd
maybe-install-html-bfd: install-html-bfd

install-html-bfd: \
    configure-bfd \
    html-bfd 
	@[ -f ./bfd/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in bfd"; \
	(cd $(HOST_SUBDIR)/bfd && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif bfd

.PHONY: maybe-installcheck-bfd installcheck-bfd
maybe-installcheck-bfd:
@if bfd
maybe-installcheck-bfd: installcheck-bfd

installcheck-bfd: \
    configure-bfd 
	@[ -f ./bfd/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in bfd"; \
	(cd $(HOST_SUBDIR)/bfd && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif bfd

.PHONY: maybe-mostlyclean-bfd mostlyclean-bfd
maybe-mostlyclean-bfd:
@if bfd
maybe-mostlyclean-bfd: mostlyclean-bfd

mostlyclean-bfd: 
	@[ -f ./bfd/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in bfd"; \
	(cd $(HOST_SUBDIR)/bfd && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif bfd

.PHONY: maybe-clean-bfd clean-bfd
maybe-clean-bfd:
@if bfd
maybe-clean-bfd: clean-bfd

clean-bfd: 
	@[ -f ./bfd/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in bfd"; \
	(cd $(HOST_SUBDIR)/bfd && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif bfd

.PHONY: maybe-distclean-bfd distclean-bfd
maybe-distclean-bfd:
@if bfd
maybe-distclean-bfd: distclean-bfd

distclean-bfd: 
	@[ -f ./bfd/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in bfd"; \
	(cd $(HOST_SUBDIR)/bfd && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif bfd

.PHONY: maybe-maintainer-clean-bfd maintainer-clean-bfd
maybe-maintainer-clean-bfd:
@if bfd
maybe-maintainer-clean-bfd: maintainer-clean-bfd

maintainer-clean-bfd: 
	@[ -f ./bfd/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in bfd"; \
	(cd $(HOST_SUBDIR)/bfd && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif bfd



.PHONY: configure-opcodes maybe-configure-opcodes
maybe-configure-opcodes:
@if gcc-bootstrap
configure-opcodes: stage_current
@endif gcc-bootstrap
@if opcodes
maybe-configure-opcodes: configure-opcodes
configure-opcodes: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/opcodes; \
	cd "$(HOST_SUBDIR)/opcodes" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/opcodes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=opcodes; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif opcodes



.PHONY: configure-stage1-opcodes maybe-configure-stage1-opcodes
maybe-configure-stage1-opcodes:
@if opcodes-bootstrap
maybe-configure-stage1-opcodes: configure-stage1-opcodes
configure-stage1-opcodes:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/opcodes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes; \
	cd $(HOST_SUBDIR)/opcodes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/opcodes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=opcodes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif opcodes-bootstrap

.PHONY: configure-stage2-opcodes maybe-configure-stage2-opcodes
maybe-configure-stage2-opcodes:
@if opcodes-bootstrap
maybe-configure-stage2-opcodes: configure-stage2-opcodes
configure-stage2-opcodes:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/opcodes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes; \
	cd $(HOST_SUBDIR)/opcodes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/opcodes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=opcodes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS)
@endif opcodes-bootstrap

.PHONY: configure-stage3-opcodes maybe-configure-stage3-opcodes
maybe-configure-stage3-opcodes:
@if opcodes-bootstrap
maybe-configure-stage3-opcodes: configure-stage3-opcodes
configure-stage3-opcodes:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/opcodes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes; \
	cd $(HOST_SUBDIR)/opcodes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/opcodes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=opcodes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS)
@endif opcodes-bootstrap

.PHONY: configure-stage4-opcodes maybe-configure-stage4-opcodes
maybe-configure-stage4-opcodes:
@if opcodes-bootstrap
maybe-configure-stage4-opcodes: configure-stage4-opcodes
configure-stage4-opcodes:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/opcodes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes; \
	cd $(HOST_SUBDIR)/opcodes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/opcodes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=opcodes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS)
@endif opcodes-bootstrap

.PHONY: configure-stageprofile-opcodes maybe-configure-stageprofile-opcodes
maybe-configure-stageprofile-opcodes:
@if opcodes-bootstrap
maybe-configure-stageprofile-opcodes: configure-stageprofile-opcodes
configure-stageprofile-opcodes:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/opcodes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes; \
	cd $(HOST_SUBDIR)/opcodes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/opcodes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=opcodes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS)
@endif opcodes-bootstrap

.PHONY: configure-stagetrain-opcodes maybe-configure-stagetrain-opcodes
maybe-configure-stagetrain-opcodes:
@if opcodes-bootstrap
maybe-configure-stagetrain-opcodes: configure-stagetrain-opcodes
configure-stagetrain-opcodes:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/opcodes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes; \
	cd $(HOST_SUBDIR)/opcodes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/opcodes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=opcodes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS)
@endif opcodes-bootstrap

.PHONY: configure-stagefeedback-opcodes maybe-configure-stagefeedback-opcodes
maybe-configure-stagefeedback-opcodes:
@if opcodes-bootstrap
maybe-configure-stagefeedback-opcodes: configure-stagefeedback-opcodes
configure-stagefeedback-opcodes:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/opcodes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes; \
	cd $(HOST_SUBDIR)/opcodes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/opcodes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=opcodes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS)
@endif opcodes-bootstrap

.PHONY: configure-stageautoprofile-opcodes maybe-configure-stageautoprofile-opcodes
maybe-configure-stageautoprofile-opcodes:
@if opcodes-bootstrap
maybe-configure-stageautoprofile-opcodes: configure-stageautoprofile-opcodes
configure-stageautoprofile-opcodes:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/opcodes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes; \
	cd $(HOST_SUBDIR)/opcodes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/opcodes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=opcodes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS)
@endif opcodes-bootstrap

.PHONY: configure-stageautofeedback-opcodes maybe-configure-stageautofeedback-opcodes
maybe-configure-stageautofeedback-opcodes:
@if opcodes-bootstrap
maybe-configure-stageautofeedback-opcodes: configure-stageautofeedback-opcodes
configure-stageautofeedback-opcodes:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/opcodes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/opcodes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/opcodes; \
	cd $(HOST_SUBDIR)/opcodes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/opcodes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=opcodes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS)
@endif opcodes-bootstrap





.PHONY: all-opcodes maybe-all-opcodes
maybe-all-opcodes:
@if gcc-bootstrap
all-opcodes: stage_current
@endif gcc-bootstrap
@if opcodes
TARGET-opcodes=all
maybe-all-opcodes: all-opcodes
all-opcodes: configure-opcodes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/opcodes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-opcodes))
@endif opcodes



.PHONY: all-stage1-opcodes maybe-all-stage1-opcodes
.PHONY: clean-stage1-opcodes maybe-clean-stage1-opcodes
maybe-all-stage1-opcodes:
maybe-clean-stage1-opcodes:
@if opcodes-bootstrap
maybe-all-stage1-opcodes: all-stage1-opcodes
all-stage1: all-stage1-opcodes
TARGET-stage1-opcodes = $(TARGET-opcodes)
all-stage1-opcodes: configure-stage1-opcodes
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/opcodes && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-opcodes)

maybe-clean-stage1-opcodes: clean-stage1-opcodes
clean-stage1: clean-stage1-opcodes
clean-stage1-opcodes:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/opcodes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-opcodes/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/opcodes && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS)  clean
@endif opcodes-bootstrap


.PHONY: all-stage2-opcodes maybe-all-stage2-opcodes
.PHONY: clean-stage2-opcodes maybe-clean-stage2-opcodes
maybe-all-stage2-opcodes:
maybe-clean-stage2-opcodes:
@if opcodes-bootstrap
maybe-all-stage2-opcodes: all-stage2-opcodes
all-stage2: all-stage2-opcodes
TARGET-stage2-opcodes = $(TARGET-opcodes)
all-stage2-opcodes: configure-stage2-opcodes
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/opcodes && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-opcodes)

maybe-clean-stage2-opcodes: clean-stage2-opcodes
clean-stage2: clean-stage2-opcodes
clean-stage2-opcodes:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/opcodes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-opcodes/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/opcodes && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif opcodes-bootstrap


.PHONY: all-stage3-opcodes maybe-all-stage3-opcodes
.PHONY: clean-stage3-opcodes maybe-clean-stage3-opcodes
maybe-all-stage3-opcodes:
maybe-clean-stage3-opcodes:
@if opcodes-bootstrap
maybe-all-stage3-opcodes: all-stage3-opcodes
all-stage3: all-stage3-opcodes
TARGET-stage3-opcodes = $(TARGET-opcodes)
all-stage3-opcodes: configure-stage3-opcodes
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/opcodes && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-opcodes)

maybe-clean-stage3-opcodes: clean-stage3-opcodes
clean-stage3: clean-stage3-opcodes
clean-stage3-opcodes:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/opcodes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-opcodes/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/opcodes && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif opcodes-bootstrap


.PHONY: all-stage4-opcodes maybe-all-stage4-opcodes
.PHONY: clean-stage4-opcodes maybe-clean-stage4-opcodes
maybe-all-stage4-opcodes:
maybe-clean-stage4-opcodes:
@if opcodes-bootstrap
maybe-all-stage4-opcodes: all-stage4-opcodes
all-stage4: all-stage4-opcodes
TARGET-stage4-opcodes = $(TARGET-opcodes)
all-stage4-opcodes: configure-stage4-opcodes
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/opcodes && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-opcodes)

maybe-clean-stage4-opcodes: clean-stage4-opcodes
clean-stage4: clean-stage4-opcodes
clean-stage4-opcodes:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/opcodes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-opcodes/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/opcodes && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif opcodes-bootstrap


.PHONY: all-stageprofile-opcodes maybe-all-stageprofile-opcodes
.PHONY: clean-stageprofile-opcodes maybe-clean-stageprofile-opcodes
maybe-all-stageprofile-opcodes:
maybe-clean-stageprofile-opcodes:
@if opcodes-bootstrap
maybe-all-stageprofile-opcodes: all-stageprofile-opcodes
all-stageprofile: all-stageprofile-opcodes
TARGET-stageprofile-opcodes = $(TARGET-opcodes)
all-stageprofile-opcodes: configure-stageprofile-opcodes
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/opcodes && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-opcodes)

maybe-clean-stageprofile-opcodes: clean-stageprofile-opcodes
clean-stageprofile: clean-stageprofile-opcodes
clean-stageprofile-opcodes:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/opcodes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-opcodes/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/opcodes && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif opcodes-bootstrap


.PHONY: all-stagetrain-opcodes maybe-all-stagetrain-opcodes
.PHONY: clean-stagetrain-opcodes maybe-clean-stagetrain-opcodes
maybe-all-stagetrain-opcodes:
maybe-clean-stagetrain-opcodes:
@if opcodes-bootstrap
maybe-all-stagetrain-opcodes: all-stagetrain-opcodes
all-stagetrain: all-stagetrain-opcodes
TARGET-stagetrain-opcodes = $(TARGET-opcodes)
all-stagetrain-opcodes: configure-stagetrain-opcodes
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/opcodes && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-opcodes)

maybe-clean-stagetrain-opcodes: clean-stagetrain-opcodes
clean-stagetrain: clean-stagetrain-opcodes
clean-stagetrain-opcodes:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/opcodes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-opcodes/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/opcodes && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif opcodes-bootstrap


.PHONY: all-stagefeedback-opcodes maybe-all-stagefeedback-opcodes
.PHONY: clean-stagefeedback-opcodes maybe-clean-stagefeedback-opcodes
maybe-all-stagefeedback-opcodes:
maybe-clean-stagefeedback-opcodes:
@if opcodes-bootstrap
maybe-all-stagefeedback-opcodes: all-stagefeedback-opcodes
all-stagefeedback: all-stagefeedback-opcodes
TARGET-stagefeedback-opcodes = $(TARGET-opcodes)
all-stagefeedback-opcodes: configure-stagefeedback-opcodes
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/opcodes && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-opcodes)

maybe-clean-stagefeedback-opcodes: clean-stagefeedback-opcodes
clean-stagefeedback: clean-stagefeedback-opcodes
clean-stagefeedback-opcodes:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/opcodes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-opcodes/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/opcodes && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif opcodes-bootstrap


.PHONY: all-stageautoprofile-opcodes maybe-all-stageautoprofile-opcodes
.PHONY: clean-stageautoprofile-opcodes maybe-clean-stageautoprofile-opcodes
maybe-all-stageautoprofile-opcodes:
maybe-clean-stageautoprofile-opcodes:
@if opcodes-bootstrap
maybe-all-stageautoprofile-opcodes: all-stageautoprofile-opcodes
all-stageautoprofile: all-stageautoprofile-opcodes
TARGET-stageautoprofile-opcodes = $(TARGET-opcodes)
all-stageautoprofile-opcodes: configure-stageautoprofile-opcodes
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/opcodes && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-opcodes)

maybe-clean-stageautoprofile-opcodes: clean-stageautoprofile-opcodes
clean-stageautoprofile: clean-stageautoprofile-opcodes
clean-stageautoprofile-opcodes:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/opcodes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-opcodes/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/opcodes && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif opcodes-bootstrap


.PHONY: all-stageautofeedback-opcodes maybe-all-stageautofeedback-opcodes
.PHONY: clean-stageautofeedback-opcodes maybe-clean-stageautofeedback-opcodes
maybe-all-stageautofeedback-opcodes:
maybe-clean-stageautofeedback-opcodes:
@if opcodes-bootstrap
maybe-all-stageautofeedback-opcodes: all-stageautofeedback-opcodes
all-stageautofeedback: all-stageautofeedback-opcodes
TARGET-stageautofeedback-opcodes = $(TARGET-opcodes)
all-stageautofeedback-opcodes: configure-stageautofeedback-opcodes
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/opcodes && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-opcodes)

maybe-clean-stageautofeedback-opcodes: clean-stageautofeedback-opcodes
clean-stageautofeedback: clean-stageautofeedback-opcodes
clean-stageautofeedback-opcodes:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/opcodes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-opcodes/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/opcodes && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif opcodes-bootstrap





.PHONY: check-opcodes maybe-check-opcodes
maybe-check-opcodes:
@if opcodes
maybe-check-opcodes: check-opcodes

check-opcodes:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/opcodes && \
	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif opcodes

.PHONY: install-opcodes maybe-install-opcodes
maybe-install-opcodes:
@if opcodes
maybe-install-opcodes: install-opcodes

install-opcodes: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/opcodes && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif opcodes

.PHONY: install-strip-opcodes maybe-install-strip-opcodes
maybe-install-strip-opcodes:
@if opcodes
maybe-install-strip-opcodes: install-strip-opcodes

install-strip-opcodes: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/opcodes && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif opcodes

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-opcodes info-opcodes
maybe-info-opcodes:
@if opcodes
maybe-info-opcodes: info-opcodes

info-opcodes: \
    configure-opcodes 
	@[ -f ./opcodes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in opcodes"; \
	(cd $(HOST_SUBDIR)/opcodes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif opcodes

.PHONY: maybe-dvi-opcodes dvi-opcodes
maybe-dvi-opcodes:
@if opcodes
maybe-dvi-opcodes: dvi-opcodes

dvi-opcodes: \
    configure-opcodes 
	@[ -f ./opcodes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in opcodes"; \
	(cd $(HOST_SUBDIR)/opcodes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif opcodes

.PHONY: maybe-pdf-opcodes pdf-opcodes
maybe-pdf-opcodes:
@if opcodes
maybe-pdf-opcodes: pdf-opcodes

pdf-opcodes: \
    configure-opcodes 
	@[ -f ./opcodes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in opcodes"; \
	(cd $(HOST_SUBDIR)/opcodes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif opcodes

.PHONY: maybe-html-opcodes html-opcodes
maybe-html-opcodes:
@if opcodes
maybe-html-opcodes: html-opcodes

html-opcodes: \
    configure-opcodes 
	@[ -f ./opcodes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in opcodes"; \
	(cd $(HOST_SUBDIR)/opcodes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif opcodes

.PHONY: maybe-TAGS-opcodes TAGS-opcodes
maybe-TAGS-opcodes:
@if opcodes
maybe-TAGS-opcodes: TAGS-opcodes

TAGS-opcodes: \
    configure-opcodes 
	@[ -f ./opcodes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in opcodes"; \
	(cd $(HOST_SUBDIR)/opcodes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif opcodes

.PHONY: maybe-install-info-opcodes install-info-opcodes
maybe-install-info-opcodes:
@if opcodes
maybe-install-info-opcodes: install-info-opcodes

install-info-opcodes: \
    configure-opcodes \
    info-opcodes 
	@[ -f ./opcodes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in opcodes"; \
	(cd $(HOST_SUBDIR)/opcodes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif opcodes

.PHONY: maybe-install-pdf-opcodes install-pdf-opcodes
maybe-install-pdf-opcodes:
@if opcodes
maybe-install-pdf-opcodes: install-pdf-opcodes

install-pdf-opcodes: \
    configure-opcodes \
    pdf-opcodes 
	@[ -f ./opcodes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in opcodes"; \
	(cd $(HOST_SUBDIR)/opcodes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif opcodes

.PHONY: maybe-install-html-opcodes install-html-opcodes
maybe-install-html-opcodes:
@if opcodes
maybe-install-html-opcodes: install-html-opcodes

install-html-opcodes: \
    configure-opcodes \
    html-opcodes 
	@[ -f ./opcodes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in opcodes"; \
	(cd $(HOST_SUBDIR)/opcodes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif opcodes

.PHONY: maybe-installcheck-opcodes installcheck-opcodes
maybe-installcheck-opcodes:
@if opcodes
maybe-installcheck-opcodes: installcheck-opcodes

installcheck-opcodes: \
    configure-opcodes 
	@[ -f ./opcodes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in opcodes"; \
	(cd $(HOST_SUBDIR)/opcodes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif opcodes

.PHONY: maybe-mostlyclean-opcodes mostlyclean-opcodes
maybe-mostlyclean-opcodes:
@if opcodes
maybe-mostlyclean-opcodes: mostlyclean-opcodes

mostlyclean-opcodes: 
	@[ -f ./opcodes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in opcodes"; \
	(cd $(HOST_SUBDIR)/opcodes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif opcodes

.PHONY: maybe-clean-opcodes clean-opcodes
maybe-clean-opcodes:
@if opcodes
maybe-clean-opcodes: clean-opcodes

clean-opcodes: 
	@[ -f ./opcodes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in opcodes"; \
	(cd $(HOST_SUBDIR)/opcodes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif opcodes

.PHONY: maybe-distclean-opcodes distclean-opcodes
maybe-distclean-opcodes:
@if opcodes
maybe-distclean-opcodes: distclean-opcodes

distclean-opcodes: 
	@[ -f ./opcodes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in opcodes"; \
	(cd $(HOST_SUBDIR)/opcodes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif opcodes

.PHONY: maybe-maintainer-clean-opcodes maintainer-clean-opcodes
maybe-maintainer-clean-opcodes:
@if opcodes
maybe-maintainer-clean-opcodes: maintainer-clean-opcodes

maintainer-clean-opcodes: 
	@[ -f ./opcodes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in opcodes"; \
	(cd $(HOST_SUBDIR)/opcodes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif opcodes



.PHONY: configure-binutils maybe-configure-binutils
maybe-configure-binutils:
@if gcc-bootstrap
configure-binutils: stage_current
@endif gcc-bootstrap
@if binutils
maybe-configure-binutils: configure-binutils
configure-binutils: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/binutils; \
	cd "$(HOST_SUBDIR)/binutils" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/binutils/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=binutils; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif binutils



.PHONY: configure-stage1-binutils maybe-configure-stage1-binutils
maybe-configure-stage1-binutils:
@if binutils-bootstrap
maybe-configure-stage1-binutils: configure-stage1-binutils
configure-stage1-binutils:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/binutils; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils; \
	cd $(HOST_SUBDIR)/binutils || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/binutils/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=binutils; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif binutils-bootstrap

.PHONY: configure-stage2-binutils maybe-configure-stage2-binutils
maybe-configure-stage2-binutils:
@if binutils-bootstrap
maybe-configure-stage2-binutils: configure-stage2-binutils
configure-stage2-binutils:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/binutils; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils; \
	cd $(HOST_SUBDIR)/binutils || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/binutils/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=binutils; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS)
@endif binutils-bootstrap

.PHONY: configure-stage3-binutils maybe-configure-stage3-binutils
maybe-configure-stage3-binutils:
@if binutils-bootstrap
maybe-configure-stage3-binutils: configure-stage3-binutils
configure-stage3-binutils:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/binutils; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils; \
	cd $(HOST_SUBDIR)/binutils || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/binutils/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=binutils; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS)
@endif binutils-bootstrap

.PHONY: configure-stage4-binutils maybe-configure-stage4-binutils
maybe-configure-stage4-binutils:
@if binutils-bootstrap
maybe-configure-stage4-binutils: configure-stage4-binutils
configure-stage4-binutils:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/binutils; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils; \
	cd $(HOST_SUBDIR)/binutils || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/binutils/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=binutils; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS)
@endif binutils-bootstrap

.PHONY: configure-stageprofile-binutils maybe-configure-stageprofile-binutils
maybe-configure-stageprofile-binutils:
@if binutils-bootstrap
maybe-configure-stageprofile-binutils: configure-stageprofile-binutils
configure-stageprofile-binutils:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/binutils; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils; \
	cd $(HOST_SUBDIR)/binutils || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/binutils/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=binutils; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS)
@endif binutils-bootstrap

.PHONY: configure-stagetrain-binutils maybe-configure-stagetrain-binutils
maybe-configure-stagetrain-binutils:
@if binutils-bootstrap
maybe-configure-stagetrain-binutils: configure-stagetrain-binutils
configure-stagetrain-binutils:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/binutils; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils; \
	cd $(HOST_SUBDIR)/binutils || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/binutils/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=binutils; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS)
@endif binutils-bootstrap

.PHONY: configure-stagefeedback-binutils maybe-configure-stagefeedback-binutils
maybe-configure-stagefeedback-binutils:
@if binutils-bootstrap
maybe-configure-stagefeedback-binutils: configure-stagefeedback-binutils
configure-stagefeedback-binutils:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/binutils; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils; \
	cd $(HOST_SUBDIR)/binutils || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/binutils/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=binutils; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS)
@endif binutils-bootstrap

.PHONY: configure-stageautoprofile-binutils maybe-configure-stageautoprofile-binutils
maybe-configure-stageautoprofile-binutils:
@if binutils-bootstrap
maybe-configure-stageautoprofile-binutils: configure-stageautoprofile-binutils
configure-stageautoprofile-binutils:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/binutils; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils; \
	cd $(HOST_SUBDIR)/binutils || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/binutils/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=binutils; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS)
@endif binutils-bootstrap

.PHONY: configure-stageautofeedback-binutils maybe-configure-stageautofeedback-binutils
maybe-configure-stageautofeedback-binutils:
@if binutils-bootstrap
maybe-configure-stageautofeedback-binutils: configure-stageautofeedback-binutils
configure-stageautofeedback-binutils:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/binutils/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/binutils; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/binutils; \
	cd $(HOST_SUBDIR)/binutils || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/binutils/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=binutils; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS)
@endif binutils-bootstrap





.PHONY: all-binutils maybe-all-binutils
maybe-all-binutils:
@if gcc-bootstrap
all-binutils: stage_current
@endif gcc-bootstrap
@if binutils
TARGET-binutils=all
maybe-all-binutils: all-binutils
all-binutils: configure-binutils
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/binutils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-binutils))
@endif binutils



.PHONY: all-stage1-binutils maybe-all-stage1-binutils
.PHONY: clean-stage1-binutils maybe-clean-stage1-binutils
maybe-all-stage1-binutils:
maybe-clean-stage1-binutils:
@if binutils-bootstrap
maybe-all-stage1-binutils: all-stage1-binutils
all-stage1: all-stage1-binutils
TARGET-stage1-binutils = $(TARGET-binutils)
all-stage1-binutils: configure-stage1-binutils
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/binutils && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-binutils)

maybe-clean-stage1-binutils: clean-stage1-binutils
clean-stage1: clean-stage1-binutils
clean-stage1-binutils:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/binutils/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-binutils/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/binutils && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS)  clean
@endif binutils-bootstrap


.PHONY: all-stage2-binutils maybe-all-stage2-binutils
.PHONY: clean-stage2-binutils maybe-clean-stage2-binutils
maybe-all-stage2-binutils:
maybe-clean-stage2-binutils:
@if binutils-bootstrap
maybe-all-stage2-binutils: all-stage2-binutils
all-stage2: all-stage2-binutils
TARGET-stage2-binutils = $(TARGET-binutils)
all-stage2-binutils: configure-stage2-binutils
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/binutils && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-binutils)

maybe-clean-stage2-binutils: clean-stage2-binutils
clean-stage2: clean-stage2-binutils
clean-stage2-binutils:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/binutils/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-binutils/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/binutils && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif binutils-bootstrap


.PHONY: all-stage3-binutils maybe-all-stage3-binutils
.PHONY: clean-stage3-binutils maybe-clean-stage3-binutils
maybe-all-stage3-binutils:
maybe-clean-stage3-binutils:
@if binutils-bootstrap
maybe-all-stage3-binutils: all-stage3-binutils
all-stage3: all-stage3-binutils
TARGET-stage3-binutils = $(TARGET-binutils)
all-stage3-binutils: configure-stage3-binutils
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/binutils && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-binutils)

maybe-clean-stage3-binutils: clean-stage3-binutils
clean-stage3: clean-stage3-binutils
clean-stage3-binutils:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/binutils/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-binutils/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/binutils && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif binutils-bootstrap


.PHONY: all-stage4-binutils maybe-all-stage4-binutils
.PHONY: clean-stage4-binutils maybe-clean-stage4-binutils
maybe-all-stage4-binutils:
maybe-clean-stage4-binutils:
@if binutils-bootstrap
maybe-all-stage4-binutils: all-stage4-binutils
all-stage4: all-stage4-binutils
TARGET-stage4-binutils = $(TARGET-binutils)
all-stage4-binutils: configure-stage4-binutils
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/binutils && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-binutils)

maybe-clean-stage4-binutils: clean-stage4-binutils
clean-stage4: clean-stage4-binutils
clean-stage4-binutils:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/binutils/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-binutils/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/binutils && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif binutils-bootstrap


.PHONY: all-stageprofile-binutils maybe-all-stageprofile-binutils
.PHONY: clean-stageprofile-binutils maybe-clean-stageprofile-binutils
maybe-all-stageprofile-binutils:
maybe-clean-stageprofile-binutils:
@if binutils-bootstrap
maybe-all-stageprofile-binutils: all-stageprofile-binutils
all-stageprofile: all-stageprofile-binutils
TARGET-stageprofile-binutils = $(TARGET-binutils)
all-stageprofile-binutils: configure-stageprofile-binutils
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/binutils && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-binutils)

maybe-clean-stageprofile-binutils: clean-stageprofile-binutils
clean-stageprofile: clean-stageprofile-binutils
clean-stageprofile-binutils:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/binutils/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-binutils/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/binutils && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif binutils-bootstrap


.PHONY: all-stagetrain-binutils maybe-all-stagetrain-binutils
.PHONY: clean-stagetrain-binutils maybe-clean-stagetrain-binutils
maybe-all-stagetrain-binutils:
maybe-clean-stagetrain-binutils:
@if binutils-bootstrap
maybe-all-stagetrain-binutils: all-stagetrain-binutils
all-stagetrain: all-stagetrain-binutils
TARGET-stagetrain-binutils = $(TARGET-binutils)
all-stagetrain-binutils: configure-stagetrain-binutils
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/binutils && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-binutils)

maybe-clean-stagetrain-binutils: clean-stagetrain-binutils
clean-stagetrain: clean-stagetrain-binutils
clean-stagetrain-binutils:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/binutils/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-binutils/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/binutils && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif binutils-bootstrap


.PHONY: all-stagefeedback-binutils maybe-all-stagefeedback-binutils
.PHONY: clean-stagefeedback-binutils maybe-clean-stagefeedback-binutils
maybe-all-stagefeedback-binutils:
maybe-clean-stagefeedback-binutils:
@if binutils-bootstrap
maybe-all-stagefeedback-binutils: all-stagefeedback-binutils
all-stagefeedback: all-stagefeedback-binutils
TARGET-stagefeedback-binutils = $(TARGET-binutils)
all-stagefeedback-binutils: configure-stagefeedback-binutils
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/binutils && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-binutils)

maybe-clean-stagefeedback-binutils: clean-stagefeedback-binutils
clean-stagefeedback: clean-stagefeedback-binutils
clean-stagefeedback-binutils:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/binutils/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-binutils/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/binutils && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif binutils-bootstrap


.PHONY: all-stageautoprofile-binutils maybe-all-stageautoprofile-binutils
.PHONY: clean-stageautoprofile-binutils maybe-clean-stageautoprofile-binutils
maybe-all-stageautoprofile-binutils:
maybe-clean-stageautoprofile-binutils:
@if binutils-bootstrap
maybe-all-stageautoprofile-binutils: all-stageautoprofile-binutils
all-stageautoprofile: all-stageautoprofile-binutils
TARGET-stageautoprofile-binutils = $(TARGET-binutils)
all-stageautoprofile-binutils: configure-stageautoprofile-binutils
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/binutils && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-binutils)

maybe-clean-stageautoprofile-binutils: clean-stageautoprofile-binutils
clean-stageautoprofile: clean-stageautoprofile-binutils
clean-stageautoprofile-binutils:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/binutils/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-binutils/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/binutils && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif binutils-bootstrap


.PHONY: all-stageautofeedback-binutils maybe-all-stageautofeedback-binutils
.PHONY: clean-stageautofeedback-binutils maybe-clean-stageautofeedback-binutils
maybe-all-stageautofeedback-binutils:
maybe-clean-stageautofeedback-binutils:
@if binutils-bootstrap
maybe-all-stageautofeedback-binutils: all-stageautofeedback-binutils
all-stageautofeedback: all-stageautofeedback-binutils
TARGET-stageautofeedback-binutils = $(TARGET-binutils)
all-stageautofeedback-binutils: configure-stageautofeedback-binutils
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/binutils && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-binutils)

maybe-clean-stageautofeedback-binutils: clean-stageautofeedback-binutils
clean-stageautofeedback: clean-stageautofeedback-binutils
clean-stageautofeedback-binutils:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/binutils/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-binutils/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/binutils && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif binutils-bootstrap





.PHONY: check-binutils maybe-check-binutils
maybe-check-binutils:
@if binutils
maybe-check-binutils: check-binutils

check-binutils:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/binutils && \
	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif binutils

.PHONY: install-binutils maybe-install-binutils
maybe-install-binutils:
@if binutils
maybe-install-binutils: install-binutils

install-binutils: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/binutils && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif binutils

.PHONY: install-strip-binutils maybe-install-strip-binutils
maybe-install-strip-binutils:
@if binutils
maybe-install-strip-binutils: install-strip-binutils

install-strip-binutils: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/binutils && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif binutils

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-binutils info-binutils
maybe-info-binutils:
@if binutils
maybe-info-binutils: info-binutils

info-binutils: \
    configure-binutils 
	@[ -f ./binutils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in binutils"; \
	(cd $(HOST_SUBDIR)/binutils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif binutils

.PHONY: maybe-dvi-binutils dvi-binutils
maybe-dvi-binutils:
@if binutils
maybe-dvi-binutils: dvi-binutils

dvi-binutils: \
    configure-binutils 
	@[ -f ./binutils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in binutils"; \
	(cd $(HOST_SUBDIR)/binutils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif binutils

.PHONY: maybe-pdf-binutils pdf-binutils
maybe-pdf-binutils:
@if binutils
maybe-pdf-binutils: pdf-binutils

pdf-binutils: \
    configure-binutils 
	@[ -f ./binutils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in binutils"; \
	(cd $(HOST_SUBDIR)/binutils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif binutils

.PHONY: maybe-html-binutils html-binutils
maybe-html-binutils:
@if binutils
maybe-html-binutils: html-binutils

html-binutils: \
    configure-binutils 
	@[ -f ./binutils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in binutils"; \
	(cd $(HOST_SUBDIR)/binutils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif binutils

.PHONY: maybe-TAGS-binutils TAGS-binutils
maybe-TAGS-binutils:
@if binutils
maybe-TAGS-binutils: TAGS-binutils

TAGS-binutils: \
    configure-binutils 
	@[ -f ./binutils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in binutils"; \
	(cd $(HOST_SUBDIR)/binutils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif binutils

.PHONY: maybe-install-info-binutils install-info-binutils
maybe-install-info-binutils:
@if binutils
maybe-install-info-binutils: install-info-binutils

install-info-binutils: \
    configure-binutils \
    info-binutils 
	@[ -f ./binutils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in binutils"; \
	(cd $(HOST_SUBDIR)/binutils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif binutils

.PHONY: maybe-install-pdf-binutils install-pdf-binutils
maybe-install-pdf-binutils:
@if binutils
maybe-install-pdf-binutils: install-pdf-binutils

install-pdf-binutils: \
    configure-binutils \
    pdf-binutils 
	@[ -f ./binutils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in binutils"; \
	(cd $(HOST_SUBDIR)/binutils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif binutils

.PHONY: maybe-install-html-binutils install-html-binutils
maybe-install-html-binutils:
@if binutils
maybe-install-html-binutils: install-html-binutils

install-html-binutils: \
    configure-binutils \
    html-binutils 
	@[ -f ./binutils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in binutils"; \
	(cd $(HOST_SUBDIR)/binutils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif binutils

.PHONY: maybe-installcheck-binutils installcheck-binutils
maybe-installcheck-binutils:
@if binutils
maybe-installcheck-binutils: installcheck-binutils

installcheck-binutils: \
    configure-binutils 
	@[ -f ./binutils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in binutils"; \
	(cd $(HOST_SUBDIR)/binutils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif binutils

.PHONY: maybe-mostlyclean-binutils mostlyclean-binutils
maybe-mostlyclean-binutils:
@if binutils
maybe-mostlyclean-binutils: mostlyclean-binutils

mostlyclean-binutils: 
	@[ -f ./binutils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in binutils"; \
	(cd $(HOST_SUBDIR)/binutils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif binutils

.PHONY: maybe-clean-binutils clean-binutils
maybe-clean-binutils:
@if binutils
maybe-clean-binutils: clean-binutils

clean-binutils: 
	@[ -f ./binutils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in binutils"; \
	(cd $(HOST_SUBDIR)/binutils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif binutils

.PHONY: maybe-distclean-binutils distclean-binutils
maybe-distclean-binutils:
@if binutils
maybe-distclean-binutils: distclean-binutils

distclean-binutils: 
	@[ -f ./binutils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in binutils"; \
	(cd $(HOST_SUBDIR)/binutils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif binutils

.PHONY: maybe-maintainer-clean-binutils maintainer-clean-binutils
maybe-maintainer-clean-binutils:
@if binutils
maybe-maintainer-clean-binutils: maintainer-clean-binutils

maintainer-clean-binutils: 
	@[ -f ./binutils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in binutils"; \
	(cd $(HOST_SUBDIR)/binutils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif binutils



.PHONY: configure-bison maybe-configure-bison
maybe-configure-bison:
@if gcc-bootstrap
configure-bison: stage_current
@endif gcc-bootstrap
@if bison
maybe-configure-bison: configure-bison
configure-bison: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/bison/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/bison; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/bison; \
	cd "$(HOST_SUBDIR)/bison" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/bison/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=bison; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif bison





.PHONY: all-bison maybe-all-bison
maybe-all-bison:
@if gcc-bootstrap
all-bison: stage_current
@endif gcc-bootstrap
@if bison
TARGET-bison=all
maybe-all-bison: all-bison
all-bison: configure-bison
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/bison && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-bison))
@endif bison




.PHONY: check-bison maybe-check-bison
maybe-check-bison:
@if bison
maybe-check-bison: check-bison

# This module is only tested in a native toolchain.
check-bison:
	@: $(MAKE); $(unstage)
	@if [ '$(host)' = '$(target)' ]; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(HOST_EXPORTS)  \
	  (cd $(HOST_SUBDIR)/bison && \
	    $(MAKE) $(FLAGS_TO_PASS)  check)
	fi

@endif bison

.PHONY: install-bison maybe-install-bison
maybe-install-bison:
@if bison
maybe-install-bison: install-bison

install-bison: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/bison && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif bison

.PHONY: install-strip-bison maybe-install-strip-bison
maybe-install-strip-bison:
@if bison
maybe-install-strip-bison: install-strip-bison

install-strip-bison: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/bison && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif bison

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-bison info-bison
maybe-info-bison:
@if bison
maybe-info-bison: info-bison

info-bison: \
    configure-bison 
	@: $(MAKE); $(unstage)
	@[ -f ./bison/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in bison"; \
	(cd $(HOST_SUBDIR)/bison && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif bison

.PHONY: maybe-dvi-bison dvi-bison
maybe-dvi-bison:
@if bison
maybe-dvi-bison: dvi-bison

dvi-bison: \
    configure-bison 
	@: $(MAKE); $(unstage)
	@[ -f ./bison/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in bison"; \
	(cd $(HOST_SUBDIR)/bison && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif bison

.PHONY: maybe-pdf-bison pdf-bison
maybe-pdf-bison:
@if bison
maybe-pdf-bison: pdf-bison

pdf-bison: \
    configure-bison 
	@: $(MAKE); $(unstage)
	@[ -f ./bison/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in bison"; \
	(cd $(HOST_SUBDIR)/bison && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif bison

.PHONY: maybe-html-bison html-bison
maybe-html-bison:
@if bison
maybe-html-bison: html-bison

html-bison: \
    configure-bison 
	@: $(MAKE); $(unstage)
	@[ -f ./bison/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in bison"; \
	(cd $(HOST_SUBDIR)/bison && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif bison

.PHONY: maybe-TAGS-bison TAGS-bison
maybe-TAGS-bison:
@if bison
maybe-TAGS-bison: TAGS-bison

TAGS-bison: \
    configure-bison 
	@: $(MAKE); $(unstage)
	@[ -f ./bison/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in bison"; \
	(cd $(HOST_SUBDIR)/bison && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif bison

.PHONY: maybe-install-info-bison install-info-bison
maybe-install-info-bison:
@if bison
maybe-install-info-bison: install-info-bison

install-info-bison: \
    configure-bison \
    info-bison 
	@: $(MAKE); $(unstage)
	@[ -f ./bison/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in bison"; \
	(cd $(HOST_SUBDIR)/bison && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif bison

.PHONY: maybe-install-pdf-bison install-pdf-bison
maybe-install-pdf-bison:
@if bison
maybe-install-pdf-bison: install-pdf-bison

install-pdf-bison: \
    configure-bison \
    pdf-bison 
	@: $(MAKE); $(unstage)
	@[ -f ./bison/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in bison"; \
	(cd $(HOST_SUBDIR)/bison && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif bison

.PHONY: maybe-install-html-bison install-html-bison
maybe-install-html-bison:
@if bison
maybe-install-html-bison: install-html-bison

install-html-bison: \
    configure-bison \
    html-bison 
	@: $(MAKE); $(unstage)
	@[ -f ./bison/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in bison"; \
	(cd $(HOST_SUBDIR)/bison && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif bison

.PHONY: maybe-installcheck-bison installcheck-bison
maybe-installcheck-bison:
@if bison
maybe-installcheck-bison: installcheck-bison

installcheck-bison: \
    configure-bison 
	@: $(MAKE); $(unstage)
	@[ -f ./bison/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in bison"; \
	(cd $(HOST_SUBDIR)/bison && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif bison

.PHONY: maybe-mostlyclean-bison mostlyclean-bison
maybe-mostlyclean-bison:
@if bison
maybe-mostlyclean-bison: mostlyclean-bison

mostlyclean-bison: 
	@: $(MAKE); $(unstage)
	@[ -f ./bison/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in bison"; \
	(cd $(HOST_SUBDIR)/bison && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif bison

.PHONY: maybe-clean-bison clean-bison
maybe-clean-bison:
@if bison
maybe-clean-bison: clean-bison

clean-bison: 
	@: $(MAKE); $(unstage)
	@[ -f ./bison/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in bison"; \
	(cd $(HOST_SUBDIR)/bison && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif bison

.PHONY: maybe-distclean-bison distclean-bison
maybe-distclean-bison:
@if bison
maybe-distclean-bison: distclean-bison

distclean-bison: 
	@: $(MAKE); $(unstage)
	@[ -f ./bison/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in bison"; \
	(cd $(HOST_SUBDIR)/bison && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif bison

.PHONY: maybe-maintainer-clean-bison maintainer-clean-bison
maybe-maintainer-clean-bison:
@if bison
maybe-maintainer-clean-bison: maintainer-clean-bison

maintainer-clean-bison: 
	@: $(MAKE); $(unstage)
	@[ -f ./bison/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in bison"; \
	(cd $(HOST_SUBDIR)/bison && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif bison



.PHONY: configure-cgen maybe-configure-cgen
maybe-configure-cgen:
@if gcc-bootstrap
configure-cgen: stage_current
@endif gcc-bootstrap
@if cgen
maybe-configure-cgen: configure-cgen
configure-cgen: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/cgen/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/cgen; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/cgen; \
	cd "$(HOST_SUBDIR)/cgen" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/cgen/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=cgen; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif cgen





.PHONY: all-cgen maybe-all-cgen
maybe-all-cgen:
@if gcc-bootstrap
all-cgen: stage_current
@endif gcc-bootstrap
@if cgen
TARGET-cgen=all
maybe-all-cgen: all-cgen
all-cgen: configure-cgen
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/cgen && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-cgen))
@endif cgen




.PHONY: check-cgen maybe-check-cgen
maybe-check-cgen:
@if cgen
maybe-check-cgen: check-cgen

check-cgen:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/cgen && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif cgen

.PHONY: install-cgen maybe-install-cgen
maybe-install-cgen:
@if cgen
maybe-install-cgen: install-cgen

install-cgen: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/cgen && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif cgen

.PHONY: install-strip-cgen maybe-install-strip-cgen
maybe-install-strip-cgen:
@if cgen
maybe-install-strip-cgen: install-strip-cgen

install-strip-cgen: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/cgen && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif cgen

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-cgen info-cgen
maybe-info-cgen:
@if cgen
maybe-info-cgen: info-cgen

info-cgen: \
    configure-cgen 
	@: $(MAKE); $(unstage)
	@[ -f ./cgen/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in cgen"; \
	(cd $(HOST_SUBDIR)/cgen && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif cgen

.PHONY: maybe-dvi-cgen dvi-cgen
maybe-dvi-cgen:
@if cgen
maybe-dvi-cgen: dvi-cgen

dvi-cgen: \
    configure-cgen 
	@: $(MAKE); $(unstage)
	@[ -f ./cgen/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in cgen"; \
	(cd $(HOST_SUBDIR)/cgen && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif cgen

.PHONY: maybe-pdf-cgen pdf-cgen
maybe-pdf-cgen:
@if cgen
maybe-pdf-cgen: pdf-cgen

pdf-cgen: \
    configure-cgen 
	@: $(MAKE); $(unstage)
	@[ -f ./cgen/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in cgen"; \
	(cd $(HOST_SUBDIR)/cgen && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif cgen

.PHONY: maybe-html-cgen html-cgen
maybe-html-cgen:
@if cgen
maybe-html-cgen: html-cgen

html-cgen: \
    configure-cgen 
	@: $(MAKE); $(unstage)
	@[ -f ./cgen/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in cgen"; \
	(cd $(HOST_SUBDIR)/cgen && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif cgen

.PHONY: maybe-TAGS-cgen TAGS-cgen
maybe-TAGS-cgen:
@if cgen
maybe-TAGS-cgen: TAGS-cgen

TAGS-cgen: \
    configure-cgen 
	@: $(MAKE); $(unstage)
	@[ -f ./cgen/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in cgen"; \
	(cd $(HOST_SUBDIR)/cgen && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif cgen

.PHONY: maybe-install-info-cgen install-info-cgen
maybe-install-info-cgen:
@if cgen
maybe-install-info-cgen: install-info-cgen

install-info-cgen: \
    configure-cgen \
    info-cgen 
	@: $(MAKE); $(unstage)
	@[ -f ./cgen/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in cgen"; \
	(cd $(HOST_SUBDIR)/cgen && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif cgen

.PHONY: maybe-install-pdf-cgen install-pdf-cgen
maybe-install-pdf-cgen:
@if cgen
maybe-install-pdf-cgen: install-pdf-cgen

install-pdf-cgen: \
    configure-cgen \
    pdf-cgen 
	@: $(MAKE); $(unstage)
	@[ -f ./cgen/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in cgen"; \
	(cd $(HOST_SUBDIR)/cgen && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif cgen

.PHONY: maybe-install-html-cgen install-html-cgen
maybe-install-html-cgen:
@if cgen
maybe-install-html-cgen: install-html-cgen

install-html-cgen: \
    configure-cgen \
    html-cgen 
	@: $(MAKE); $(unstage)
	@[ -f ./cgen/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in cgen"; \
	(cd $(HOST_SUBDIR)/cgen && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif cgen

.PHONY: maybe-installcheck-cgen installcheck-cgen
maybe-installcheck-cgen:
@if cgen
maybe-installcheck-cgen: installcheck-cgen

installcheck-cgen: \
    configure-cgen 
	@: $(MAKE); $(unstage)
	@[ -f ./cgen/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in cgen"; \
	(cd $(HOST_SUBDIR)/cgen && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif cgen

.PHONY: maybe-mostlyclean-cgen mostlyclean-cgen
maybe-mostlyclean-cgen:
@if cgen
maybe-mostlyclean-cgen: mostlyclean-cgen

mostlyclean-cgen: 
	@: $(MAKE); $(unstage)
	@[ -f ./cgen/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in cgen"; \
	(cd $(HOST_SUBDIR)/cgen && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif cgen

.PHONY: maybe-clean-cgen clean-cgen
maybe-clean-cgen:
@if cgen
maybe-clean-cgen: clean-cgen

clean-cgen: 
	@: $(MAKE); $(unstage)
	@[ -f ./cgen/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in cgen"; \
	(cd $(HOST_SUBDIR)/cgen && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif cgen

.PHONY: maybe-distclean-cgen distclean-cgen
maybe-distclean-cgen:
@if cgen
maybe-distclean-cgen: distclean-cgen

distclean-cgen: 
	@: $(MAKE); $(unstage)
	@[ -f ./cgen/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in cgen"; \
	(cd $(HOST_SUBDIR)/cgen && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif cgen

.PHONY: maybe-maintainer-clean-cgen maintainer-clean-cgen
maybe-maintainer-clean-cgen:
@if cgen
maybe-maintainer-clean-cgen: maintainer-clean-cgen

maintainer-clean-cgen: 
	@: $(MAKE); $(unstage)
	@[ -f ./cgen/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in cgen"; \
	(cd $(HOST_SUBDIR)/cgen && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif cgen



.PHONY: configure-dejagnu maybe-configure-dejagnu
maybe-configure-dejagnu:
@if gcc-bootstrap
configure-dejagnu: stage_current
@endif gcc-bootstrap
@if dejagnu
maybe-configure-dejagnu: configure-dejagnu
configure-dejagnu: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/dejagnu/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/dejagnu; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/dejagnu; \
	cd "$(HOST_SUBDIR)/dejagnu" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/dejagnu/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=dejagnu; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif dejagnu





.PHONY: all-dejagnu maybe-all-dejagnu
maybe-all-dejagnu:
@if gcc-bootstrap
all-dejagnu: stage_current
@endif gcc-bootstrap
@if dejagnu
TARGET-dejagnu=all
maybe-all-dejagnu: all-dejagnu
all-dejagnu: configure-dejagnu
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/dejagnu && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-dejagnu))
@endif dejagnu




.PHONY: check-dejagnu maybe-check-dejagnu
maybe-check-dejagnu:
@if dejagnu
maybe-check-dejagnu: check-dejagnu

check-dejagnu:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/dejagnu && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif dejagnu

.PHONY: install-dejagnu maybe-install-dejagnu
maybe-install-dejagnu:
@if dejagnu
maybe-install-dejagnu: install-dejagnu

install-dejagnu: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/dejagnu && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif dejagnu

.PHONY: install-strip-dejagnu maybe-install-strip-dejagnu
maybe-install-strip-dejagnu:
@if dejagnu
maybe-install-strip-dejagnu: install-strip-dejagnu

install-strip-dejagnu: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/dejagnu && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif dejagnu

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-dejagnu info-dejagnu
maybe-info-dejagnu:
@if dejagnu
maybe-info-dejagnu: info-dejagnu

info-dejagnu: \
    configure-dejagnu 
	@: $(MAKE); $(unstage)
	@[ -f ./dejagnu/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in dejagnu"; \
	(cd $(HOST_SUBDIR)/dejagnu && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif dejagnu

.PHONY: maybe-dvi-dejagnu dvi-dejagnu
maybe-dvi-dejagnu:
@if dejagnu
maybe-dvi-dejagnu: dvi-dejagnu

dvi-dejagnu: \
    configure-dejagnu 
	@: $(MAKE); $(unstage)
	@[ -f ./dejagnu/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in dejagnu"; \
	(cd $(HOST_SUBDIR)/dejagnu && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif dejagnu

.PHONY: maybe-pdf-dejagnu pdf-dejagnu
maybe-pdf-dejagnu:
@if dejagnu
maybe-pdf-dejagnu: pdf-dejagnu

pdf-dejagnu: \
    configure-dejagnu 
	@: $(MAKE); $(unstage)
	@[ -f ./dejagnu/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in dejagnu"; \
	(cd $(HOST_SUBDIR)/dejagnu && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif dejagnu

.PHONY: maybe-html-dejagnu html-dejagnu
maybe-html-dejagnu:
@if dejagnu
maybe-html-dejagnu: html-dejagnu

html-dejagnu: \
    configure-dejagnu 
	@: $(MAKE); $(unstage)
	@[ -f ./dejagnu/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in dejagnu"; \
	(cd $(HOST_SUBDIR)/dejagnu && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif dejagnu

.PHONY: maybe-TAGS-dejagnu TAGS-dejagnu
maybe-TAGS-dejagnu:
@if dejagnu
maybe-TAGS-dejagnu: TAGS-dejagnu

TAGS-dejagnu: \
    configure-dejagnu 
	@: $(MAKE); $(unstage)
	@[ -f ./dejagnu/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in dejagnu"; \
	(cd $(HOST_SUBDIR)/dejagnu && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif dejagnu

.PHONY: maybe-install-info-dejagnu install-info-dejagnu
maybe-install-info-dejagnu:
@if dejagnu
maybe-install-info-dejagnu: install-info-dejagnu

install-info-dejagnu: \
    configure-dejagnu \
    info-dejagnu 
	@: $(MAKE); $(unstage)
	@[ -f ./dejagnu/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in dejagnu"; \
	(cd $(HOST_SUBDIR)/dejagnu && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif dejagnu

.PHONY: maybe-install-pdf-dejagnu install-pdf-dejagnu
maybe-install-pdf-dejagnu:
@if dejagnu
maybe-install-pdf-dejagnu: install-pdf-dejagnu

install-pdf-dejagnu: \
    configure-dejagnu \
    pdf-dejagnu 
	@: $(MAKE); $(unstage)
	@[ -f ./dejagnu/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in dejagnu"; \
	(cd $(HOST_SUBDIR)/dejagnu && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif dejagnu

.PHONY: maybe-install-html-dejagnu install-html-dejagnu
maybe-install-html-dejagnu:
@if dejagnu
maybe-install-html-dejagnu: install-html-dejagnu

install-html-dejagnu: \
    configure-dejagnu \
    html-dejagnu 
	@: $(MAKE); $(unstage)
	@[ -f ./dejagnu/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in dejagnu"; \
	(cd $(HOST_SUBDIR)/dejagnu && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif dejagnu

.PHONY: maybe-installcheck-dejagnu installcheck-dejagnu
maybe-installcheck-dejagnu:
@if dejagnu
maybe-installcheck-dejagnu: installcheck-dejagnu

installcheck-dejagnu: \
    configure-dejagnu 
	@: $(MAKE); $(unstage)
	@[ -f ./dejagnu/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in dejagnu"; \
	(cd $(HOST_SUBDIR)/dejagnu && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif dejagnu

.PHONY: maybe-mostlyclean-dejagnu mostlyclean-dejagnu
maybe-mostlyclean-dejagnu:
@if dejagnu
maybe-mostlyclean-dejagnu: mostlyclean-dejagnu

mostlyclean-dejagnu: 
	@: $(MAKE); $(unstage)
	@[ -f ./dejagnu/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in dejagnu"; \
	(cd $(HOST_SUBDIR)/dejagnu && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif dejagnu

.PHONY: maybe-clean-dejagnu clean-dejagnu
maybe-clean-dejagnu:
@if dejagnu
maybe-clean-dejagnu: clean-dejagnu

clean-dejagnu: 
	@: $(MAKE); $(unstage)
	@[ -f ./dejagnu/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in dejagnu"; \
	(cd $(HOST_SUBDIR)/dejagnu && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif dejagnu

.PHONY: maybe-distclean-dejagnu distclean-dejagnu
maybe-distclean-dejagnu:
@if dejagnu
maybe-distclean-dejagnu: distclean-dejagnu

distclean-dejagnu: 
	@: $(MAKE); $(unstage)
	@[ -f ./dejagnu/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in dejagnu"; \
	(cd $(HOST_SUBDIR)/dejagnu && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif dejagnu

.PHONY: maybe-maintainer-clean-dejagnu maintainer-clean-dejagnu
maybe-maintainer-clean-dejagnu:
@if dejagnu
maybe-maintainer-clean-dejagnu: maintainer-clean-dejagnu

maintainer-clean-dejagnu: 
	@: $(MAKE); $(unstage)
	@[ -f ./dejagnu/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in dejagnu"; \
	(cd $(HOST_SUBDIR)/dejagnu && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif dejagnu



.PHONY: configure-etc maybe-configure-etc
maybe-configure-etc:
@if gcc-bootstrap
configure-etc: stage_current
@endif gcc-bootstrap
@if etc
maybe-configure-etc: configure-etc
configure-etc: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/etc/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/etc; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/etc; \
	cd "$(HOST_SUBDIR)/etc" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/etc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=etc; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif etc





.PHONY: all-etc maybe-all-etc
maybe-all-etc:
@if gcc-bootstrap
all-etc: stage_current
@endif gcc-bootstrap
@if etc
TARGET-etc=all
maybe-all-etc: all-etc
all-etc: configure-etc
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/etc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-etc))
@endif etc




.PHONY: check-etc maybe-check-etc
maybe-check-etc:
@if etc
maybe-check-etc: check-etc

check-etc:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/etc && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif etc

.PHONY: install-etc maybe-install-etc
maybe-install-etc:
@if etc
maybe-install-etc: install-etc

install-etc: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/etc && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif etc

.PHONY: install-strip-etc maybe-install-strip-etc
maybe-install-strip-etc:
@if etc
maybe-install-strip-etc: install-strip-etc

install-strip-etc: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/etc && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif etc

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-etc info-etc
maybe-info-etc:
@if etc
maybe-info-etc: info-etc

info-etc: \
    configure-etc 
	@: $(MAKE); $(unstage)
	@[ -f ./etc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in etc"; \
	(cd $(HOST_SUBDIR)/etc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif etc

.PHONY: maybe-dvi-etc dvi-etc
maybe-dvi-etc:
@if etc
maybe-dvi-etc: dvi-etc

dvi-etc: \
    configure-etc 
	@: $(MAKE); $(unstage)
	@[ -f ./etc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in etc"; \
	(cd $(HOST_SUBDIR)/etc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif etc

.PHONY: maybe-pdf-etc pdf-etc
maybe-pdf-etc:
@if etc
maybe-pdf-etc: pdf-etc

pdf-etc: \
    configure-etc 
	@: $(MAKE); $(unstage)
	@[ -f ./etc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in etc"; \
	(cd $(HOST_SUBDIR)/etc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif etc

.PHONY: maybe-html-etc html-etc
maybe-html-etc:
@if etc
maybe-html-etc: html-etc

html-etc: \
    configure-etc 
	@: $(MAKE); $(unstage)
	@[ -f ./etc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in etc"; \
	(cd $(HOST_SUBDIR)/etc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif etc

.PHONY: maybe-TAGS-etc TAGS-etc
maybe-TAGS-etc:
@if etc
maybe-TAGS-etc: TAGS-etc

TAGS-etc: \
    configure-etc 
	@: $(MAKE); $(unstage)
	@[ -f ./etc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in etc"; \
	(cd $(HOST_SUBDIR)/etc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif etc

.PHONY: maybe-install-info-etc install-info-etc
maybe-install-info-etc:
@if etc
maybe-install-info-etc: install-info-etc

install-info-etc: \
    configure-etc \
    info-etc 
	@: $(MAKE); $(unstage)
	@[ -f ./etc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in etc"; \
	(cd $(HOST_SUBDIR)/etc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif etc

.PHONY: maybe-install-pdf-etc install-pdf-etc
maybe-install-pdf-etc:
@if etc
maybe-install-pdf-etc: install-pdf-etc

install-pdf-etc: \
    configure-etc \
    pdf-etc 
	@: $(MAKE); $(unstage)
	@[ -f ./etc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in etc"; \
	(cd $(HOST_SUBDIR)/etc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif etc

.PHONY: maybe-install-html-etc install-html-etc
maybe-install-html-etc:
@if etc
maybe-install-html-etc: install-html-etc

install-html-etc: \
    configure-etc \
    html-etc 
	@: $(MAKE); $(unstage)
	@[ -f ./etc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in etc"; \
	(cd $(HOST_SUBDIR)/etc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif etc

.PHONY: maybe-installcheck-etc installcheck-etc
maybe-installcheck-etc:
@if etc
maybe-installcheck-etc: installcheck-etc

installcheck-etc: \
    configure-etc 
	@: $(MAKE); $(unstage)
	@[ -f ./etc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in etc"; \
	(cd $(HOST_SUBDIR)/etc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif etc

.PHONY: maybe-mostlyclean-etc mostlyclean-etc
maybe-mostlyclean-etc:
@if etc
maybe-mostlyclean-etc: mostlyclean-etc

mostlyclean-etc: 
	@: $(MAKE); $(unstage)
	@[ -f ./etc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in etc"; \
	(cd $(HOST_SUBDIR)/etc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif etc

.PHONY: maybe-clean-etc clean-etc
maybe-clean-etc:
@if etc
maybe-clean-etc: clean-etc

clean-etc: 
	@: $(MAKE); $(unstage)
	@[ -f ./etc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in etc"; \
	(cd $(HOST_SUBDIR)/etc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif etc

.PHONY: maybe-distclean-etc distclean-etc
maybe-distclean-etc:
@if etc
maybe-distclean-etc: distclean-etc

distclean-etc: 
	@: $(MAKE); $(unstage)
	@[ -f ./etc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in etc"; \
	(cd $(HOST_SUBDIR)/etc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif etc

.PHONY: maybe-maintainer-clean-etc maintainer-clean-etc
maybe-maintainer-clean-etc:
@if etc
maybe-maintainer-clean-etc: maintainer-clean-etc

maintainer-clean-etc: 
	@: $(MAKE); $(unstage)
	@[ -f ./etc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in etc"; \
	(cd $(HOST_SUBDIR)/etc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif etc



.PHONY: configure-fastjar maybe-configure-fastjar
maybe-configure-fastjar:
@if gcc-bootstrap
configure-fastjar: stage_current
@endif gcc-bootstrap
@if fastjar
maybe-configure-fastjar: configure-fastjar
configure-fastjar: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/fastjar/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fastjar; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/fastjar; \
	cd "$(HOST_SUBDIR)/fastjar" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/fastjar/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=fastjar; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif fastjar





.PHONY: all-fastjar maybe-all-fastjar
maybe-all-fastjar:
@if gcc-bootstrap
all-fastjar: stage_current
@endif gcc-bootstrap
@if fastjar
TARGET-fastjar=all
maybe-all-fastjar: all-fastjar
all-fastjar: configure-fastjar
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/fastjar && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-fastjar))
@endif fastjar




.PHONY: check-fastjar maybe-check-fastjar
maybe-check-fastjar:
@if fastjar
maybe-check-fastjar: check-fastjar

# This module is only tested in a native toolchain.
check-fastjar:
	@: $(MAKE); $(unstage)
	@if [ '$(host)' = '$(target)' ]; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(HOST_EXPORTS)  \
	  (cd $(HOST_SUBDIR)/fastjar && \
	    $(MAKE) $(FLAGS_TO_PASS)  check)
	fi

@endif fastjar

.PHONY: install-fastjar maybe-install-fastjar
maybe-install-fastjar:
@if fastjar
maybe-install-fastjar: install-fastjar

install-fastjar: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/fastjar && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif fastjar

.PHONY: install-strip-fastjar maybe-install-strip-fastjar
maybe-install-strip-fastjar:
@if fastjar
maybe-install-strip-fastjar: install-strip-fastjar

install-strip-fastjar: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/fastjar && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif fastjar

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-fastjar info-fastjar
maybe-info-fastjar:
@if fastjar
maybe-info-fastjar: info-fastjar

info-fastjar: \
    configure-fastjar 
	@: $(MAKE); $(unstage)
	@[ -f ./fastjar/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in fastjar"; \
	(cd $(HOST_SUBDIR)/fastjar && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif fastjar

.PHONY: maybe-dvi-fastjar dvi-fastjar
maybe-dvi-fastjar:
@if fastjar
maybe-dvi-fastjar: dvi-fastjar

dvi-fastjar: \
    configure-fastjar 
	@: $(MAKE); $(unstage)
	@[ -f ./fastjar/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in fastjar"; \
	(cd $(HOST_SUBDIR)/fastjar && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif fastjar

.PHONY: maybe-pdf-fastjar pdf-fastjar
maybe-pdf-fastjar:
@if fastjar
maybe-pdf-fastjar: pdf-fastjar

pdf-fastjar: \
    configure-fastjar 
	@: $(MAKE); $(unstage)
	@[ -f ./fastjar/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in fastjar"; \
	(cd $(HOST_SUBDIR)/fastjar && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif fastjar

.PHONY: maybe-html-fastjar html-fastjar
maybe-html-fastjar:
@if fastjar
maybe-html-fastjar: html-fastjar

html-fastjar: \
    configure-fastjar 
	@: $(MAKE); $(unstage)
	@[ -f ./fastjar/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in fastjar"; \
	(cd $(HOST_SUBDIR)/fastjar && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif fastjar

.PHONY: maybe-TAGS-fastjar TAGS-fastjar
maybe-TAGS-fastjar:
@if fastjar
maybe-TAGS-fastjar: TAGS-fastjar

TAGS-fastjar: \
    configure-fastjar 
	@: $(MAKE); $(unstage)
	@[ -f ./fastjar/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in fastjar"; \
	(cd $(HOST_SUBDIR)/fastjar && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif fastjar

.PHONY: maybe-install-info-fastjar install-info-fastjar
maybe-install-info-fastjar:
@if fastjar
maybe-install-info-fastjar: install-info-fastjar

install-info-fastjar: \
    configure-fastjar \
    info-fastjar 
	@: $(MAKE); $(unstage)
	@[ -f ./fastjar/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in fastjar"; \
	(cd $(HOST_SUBDIR)/fastjar && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif fastjar

.PHONY: maybe-install-pdf-fastjar install-pdf-fastjar
maybe-install-pdf-fastjar:
@if fastjar
maybe-install-pdf-fastjar: install-pdf-fastjar

install-pdf-fastjar: \
    configure-fastjar \
    pdf-fastjar 
	@: $(MAKE); $(unstage)
	@[ -f ./fastjar/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in fastjar"; \
	(cd $(HOST_SUBDIR)/fastjar && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif fastjar

.PHONY: maybe-install-html-fastjar install-html-fastjar
maybe-install-html-fastjar:
@if fastjar
maybe-install-html-fastjar: install-html-fastjar

install-html-fastjar: \
    configure-fastjar \
    html-fastjar 
	@: $(MAKE); $(unstage)
	@[ -f ./fastjar/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in fastjar"; \
	(cd $(HOST_SUBDIR)/fastjar && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif fastjar

.PHONY: maybe-installcheck-fastjar installcheck-fastjar
maybe-installcheck-fastjar:
@if fastjar
maybe-installcheck-fastjar: installcheck-fastjar

installcheck-fastjar: \
    configure-fastjar 
	@: $(MAKE); $(unstage)
	@[ -f ./fastjar/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in fastjar"; \
	(cd $(HOST_SUBDIR)/fastjar && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif fastjar

.PHONY: maybe-mostlyclean-fastjar mostlyclean-fastjar
maybe-mostlyclean-fastjar:
@if fastjar
maybe-mostlyclean-fastjar: mostlyclean-fastjar

mostlyclean-fastjar: 
	@: $(MAKE); $(unstage)
	@[ -f ./fastjar/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in fastjar"; \
	(cd $(HOST_SUBDIR)/fastjar && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif fastjar

.PHONY: maybe-clean-fastjar clean-fastjar
maybe-clean-fastjar:
@if fastjar
maybe-clean-fastjar: clean-fastjar

clean-fastjar: 
	@: $(MAKE); $(unstage)
	@[ -f ./fastjar/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in fastjar"; \
	(cd $(HOST_SUBDIR)/fastjar && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif fastjar

.PHONY: maybe-distclean-fastjar distclean-fastjar
maybe-distclean-fastjar:
@if fastjar
maybe-distclean-fastjar: distclean-fastjar

distclean-fastjar: 
	@: $(MAKE); $(unstage)
	@[ -f ./fastjar/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in fastjar"; \
	(cd $(HOST_SUBDIR)/fastjar && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif fastjar

.PHONY: maybe-maintainer-clean-fastjar maintainer-clean-fastjar
maybe-maintainer-clean-fastjar:
@if fastjar
maybe-maintainer-clean-fastjar: maintainer-clean-fastjar

maintainer-clean-fastjar: 
	@: $(MAKE); $(unstage)
	@[ -f ./fastjar/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in fastjar"; \
	(cd $(HOST_SUBDIR)/fastjar && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif fastjar



.PHONY: configure-fixincludes maybe-configure-fixincludes
maybe-configure-fixincludes:
@if gcc-bootstrap
configure-fixincludes: stage_current
@endif gcc-bootstrap
@if fixincludes
maybe-configure-fixincludes: configure-fixincludes
configure-fixincludes: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/fixincludes/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/fixincludes; \
	cd "$(HOST_SUBDIR)/fixincludes" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/fixincludes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=fixincludes; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif fixincludes



.PHONY: configure-stage1-fixincludes maybe-configure-stage1-fixincludes
maybe-configure-stage1-fixincludes:
@if fixincludes-bootstrap
maybe-configure-stage1-fixincludes: configure-stage1-fixincludes
configure-stage1-fixincludes:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/fixincludes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/fixincludes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes; \
	cd $(HOST_SUBDIR)/fixincludes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/fixincludes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=fixincludes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif fixincludes-bootstrap

.PHONY: configure-stage2-fixincludes maybe-configure-stage2-fixincludes
maybe-configure-stage2-fixincludes:
@if fixincludes-bootstrap
maybe-configure-stage2-fixincludes: configure-stage2-fixincludes
configure-stage2-fixincludes:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/fixincludes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/fixincludes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes; \
	cd $(HOST_SUBDIR)/fixincludes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/fixincludes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=fixincludes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS)
@endif fixincludes-bootstrap

.PHONY: configure-stage3-fixincludes maybe-configure-stage3-fixincludes
maybe-configure-stage3-fixincludes:
@if fixincludes-bootstrap
maybe-configure-stage3-fixincludes: configure-stage3-fixincludes
configure-stage3-fixincludes:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/fixincludes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/fixincludes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes; \
	cd $(HOST_SUBDIR)/fixincludes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/fixincludes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=fixincludes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS)
@endif fixincludes-bootstrap

.PHONY: configure-stage4-fixincludes maybe-configure-stage4-fixincludes
maybe-configure-stage4-fixincludes:
@if fixincludes-bootstrap
maybe-configure-stage4-fixincludes: configure-stage4-fixincludes
configure-stage4-fixincludes:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/fixincludes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/fixincludes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes; \
	cd $(HOST_SUBDIR)/fixincludes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/fixincludes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=fixincludes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS)
@endif fixincludes-bootstrap

.PHONY: configure-stageprofile-fixincludes maybe-configure-stageprofile-fixincludes
maybe-configure-stageprofile-fixincludes:
@if fixincludes-bootstrap
maybe-configure-stageprofile-fixincludes: configure-stageprofile-fixincludes
configure-stageprofile-fixincludes:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/fixincludes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/fixincludes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes; \
	cd $(HOST_SUBDIR)/fixincludes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/fixincludes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=fixincludes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS)
@endif fixincludes-bootstrap

.PHONY: configure-stagetrain-fixincludes maybe-configure-stagetrain-fixincludes
maybe-configure-stagetrain-fixincludes:
@if fixincludes-bootstrap
maybe-configure-stagetrain-fixincludes: configure-stagetrain-fixincludes
configure-stagetrain-fixincludes:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/fixincludes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/fixincludes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes; \
	cd $(HOST_SUBDIR)/fixincludes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/fixincludes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=fixincludes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS)
@endif fixincludes-bootstrap

.PHONY: configure-stagefeedback-fixincludes maybe-configure-stagefeedback-fixincludes
maybe-configure-stagefeedback-fixincludes:
@if fixincludes-bootstrap
maybe-configure-stagefeedback-fixincludes: configure-stagefeedback-fixincludes
configure-stagefeedback-fixincludes:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/fixincludes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/fixincludes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes; \
	cd $(HOST_SUBDIR)/fixincludes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/fixincludes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=fixincludes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS)
@endif fixincludes-bootstrap

.PHONY: configure-stageautoprofile-fixincludes maybe-configure-stageautoprofile-fixincludes
maybe-configure-stageautoprofile-fixincludes:
@if fixincludes-bootstrap
maybe-configure-stageautoprofile-fixincludes: configure-stageautoprofile-fixincludes
configure-stageautoprofile-fixincludes:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/fixincludes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/fixincludes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes; \
	cd $(HOST_SUBDIR)/fixincludes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/fixincludes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=fixincludes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS)
@endif fixincludes-bootstrap

.PHONY: configure-stageautofeedback-fixincludes maybe-configure-stageautofeedback-fixincludes
maybe-configure-stageautofeedback-fixincludes:
@if fixincludes-bootstrap
maybe-configure-stageautofeedback-fixincludes: configure-stageautofeedback-fixincludes
configure-stageautofeedback-fixincludes:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/fixincludes/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/fixincludes; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/fixincludes; \
	cd $(HOST_SUBDIR)/fixincludes || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/fixincludes/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=fixincludes; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS)
@endif fixincludes-bootstrap





.PHONY: all-fixincludes maybe-all-fixincludes
maybe-all-fixincludes:
@if gcc-bootstrap
all-fixincludes: stage_current
@endif gcc-bootstrap
@if fixincludes
TARGET-fixincludes=all
maybe-all-fixincludes: all-fixincludes
all-fixincludes: configure-fixincludes
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/fixincludes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-fixincludes))
@endif fixincludes



.PHONY: all-stage1-fixincludes maybe-all-stage1-fixincludes
.PHONY: clean-stage1-fixincludes maybe-clean-stage1-fixincludes
maybe-all-stage1-fixincludes:
maybe-clean-stage1-fixincludes:
@if fixincludes-bootstrap
maybe-all-stage1-fixincludes: all-stage1-fixincludes
all-stage1: all-stage1-fixincludes
TARGET-stage1-fixincludes = $(TARGET-fixincludes)
all-stage1-fixincludes: configure-stage1-fixincludes
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/fixincludes && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-fixincludes)

maybe-clean-stage1-fixincludes: clean-stage1-fixincludes
clean-stage1: clean-stage1-fixincludes
clean-stage1-fixincludes:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/fixincludes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-fixincludes/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/fixincludes && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS)  clean
@endif fixincludes-bootstrap


.PHONY: all-stage2-fixincludes maybe-all-stage2-fixincludes
.PHONY: clean-stage2-fixincludes maybe-clean-stage2-fixincludes
maybe-all-stage2-fixincludes:
maybe-clean-stage2-fixincludes:
@if fixincludes-bootstrap
maybe-all-stage2-fixincludes: all-stage2-fixincludes
all-stage2: all-stage2-fixincludes
TARGET-stage2-fixincludes = $(TARGET-fixincludes)
all-stage2-fixincludes: configure-stage2-fixincludes
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/fixincludes && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-fixincludes)

maybe-clean-stage2-fixincludes: clean-stage2-fixincludes
clean-stage2: clean-stage2-fixincludes
clean-stage2-fixincludes:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/fixincludes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-fixincludes/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/fixincludes && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif fixincludes-bootstrap


.PHONY: all-stage3-fixincludes maybe-all-stage3-fixincludes
.PHONY: clean-stage3-fixincludes maybe-clean-stage3-fixincludes
maybe-all-stage3-fixincludes:
maybe-clean-stage3-fixincludes:
@if fixincludes-bootstrap
maybe-all-stage3-fixincludes: all-stage3-fixincludes
all-stage3: all-stage3-fixincludes
TARGET-stage3-fixincludes = $(TARGET-fixincludes)
all-stage3-fixincludes: configure-stage3-fixincludes
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/fixincludes && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-fixincludes)

maybe-clean-stage3-fixincludes: clean-stage3-fixincludes
clean-stage3: clean-stage3-fixincludes
clean-stage3-fixincludes:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/fixincludes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-fixincludes/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/fixincludes && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif fixincludes-bootstrap


.PHONY: all-stage4-fixincludes maybe-all-stage4-fixincludes
.PHONY: clean-stage4-fixincludes maybe-clean-stage4-fixincludes
maybe-all-stage4-fixincludes:
maybe-clean-stage4-fixincludes:
@if fixincludes-bootstrap
maybe-all-stage4-fixincludes: all-stage4-fixincludes
all-stage4: all-stage4-fixincludes
TARGET-stage4-fixincludes = $(TARGET-fixincludes)
all-stage4-fixincludes: configure-stage4-fixincludes
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/fixincludes && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-fixincludes)

maybe-clean-stage4-fixincludes: clean-stage4-fixincludes
clean-stage4: clean-stage4-fixincludes
clean-stage4-fixincludes:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/fixincludes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-fixincludes/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/fixincludes && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif fixincludes-bootstrap


.PHONY: all-stageprofile-fixincludes maybe-all-stageprofile-fixincludes
.PHONY: clean-stageprofile-fixincludes maybe-clean-stageprofile-fixincludes
maybe-all-stageprofile-fixincludes:
maybe-clean-stageprofile-fixincludes:
@if fixincludes-bootstrap
maybe-all-stageprofile-fixincludes: all-stageprofile-fixincludes
all-stageprofile: all-stageprofile-fixincludes
TARGET-stageprofile-fixincludes = $(TARGET-fixincludes)
all-stageprofile-fixincludes: configure-stageprofile-fixincludes
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/fixincludes && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-fixincludes)

maybe-clean-stageprofile-fixincludes: clean-stageprofile-fixincludes
clean-stageprofile: clean-stageprofile-fixincludes
clean-stageprofile-fixincludes:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/fixincludes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-fixincludes/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/fixincludes && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif fixincludes-bootstrap


.PHONY: all-stagetrain-fixincludes maybe-all-stagetrain-fixincludes
.PHONY: clean-stagetrain-fixincludes maybe-clean-stagetrain-fixincludes
maybe-all-stagetrain-fixincludes:
maybe-clean-stagetrain-fixincludes:
@if fixincludes-bootstrap
maybe-all-stagetrain-fixincludes: all-stagetrain-fixincludes
all-stagetrain: all-stagetrain-fixincludes
TARGET-stagetrain-fixincludes = $(TARGET-fixincludes)
all-stagetrain-fixincludes: configure-stagetrain-fixincludes
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/fixincludes && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-fixincludes)

maybe-clean-stagetrain-fixincludes: clean-stagetrain-fixincludes
clean-stagetrain: clean-stagetrain-fixincludes
clean-stagetrain-fixincludes:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/fixincludes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-fixincludes/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/fixincludes && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif fixincludes-bootstrap


.PHONY: all-stagefeedback-fixincludes maybe-all-stagefeedback-fixincludes
.PHONY: clean-stagefeedback-fixincludes maybe-clean-stagefeedback-fixincludes
maybe-all-stagefeedback-fixincludes:
maybe-clean-stagefeedback-fixincludes:
@if fixincludes-bootstrap
maybe-all-stagefeedback-fixincludes: all-stagefeedback-fixincludes
all-stagefeedback: all-stagefeedback-fixincludes
TARGET-stagefeedback-fixincludes = $(TARGET-fixincludes)
all-stagefeedback-fixincludes: configure-stagefeedback-fixincludes
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/fixincludes && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-fixincludes)

maybe-clean-stagefeedback-fixincludes: clean-stagefeedback-fixincludes
clean-stagefeedback: clean-stagefeedback-fixincludes
clean-stagefeedback-fixincludes:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/fixincludes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-fixincludes/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/fixincludes && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif fixincludes-bootstrap


.PHONY: all-stageautoprofile-fixincludes maybe-all-stageautoprofile-fixincludes
.PHONY: clean-stageautoprofile-fixincludes maybe-clean-stageautoprofile-fixincludes
maybe-all-stageautoprofile-fixincludes:
maybe-clean-stageautoprofile-fixincludes:
@if fixincludes-bootstrap
maybe-all-stageautoprofile-fixincludes: all-stageautoprofile-fixincludes
all-stageautoprofile: all-stageautoprofile-fixincludes
TARGET-stageautoprofile-fixincludes = $(TARGET-fixincludes)
all-stageautoprofile-fixincludes: configure-stageautoprofile-fixincludes
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/fixincludes && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-fixincludes)

maybe-clean-stageautoprofile-fixincludes: clean-stageautoprofile-fixincludes
clean-stageautoprofile: clean-stageautoprofile-fixincludes
clean-stageautoprofile-fixincludes:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/fixincludes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-fixincludes/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/fixincludes && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif fixincludes-bootstrap


.PHONY: all-stageautofeedback-fixincludes maybe-all-stageautofeedback-fixincludes
.PHONY: clean-stageautofeedback-fixincludes maybe-clean-stageautofeedback-fixincludes
maybe-all-stageautofeedback-fixincludes:
maybe-clean-stageautofeedback-fixincludes:
@if fixincludes-bootstrap
maybe-all-stageautofeedback-fixincludes: all-stageautofeedback-fixincludes
all-stageautofeedback: all-stageautofeedback-fixincludes
TARGET-stageautofeedback-fixincludes = $(TARGET-fixincludes)
all-stageautofeedback-fixincludes: configure-stageautofeedback-fixincludes
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/fixincludes && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-fixincludes)

maybe-clean-stageautofeedback-fixincludes: clean-stageautofeedback-fixincludes
clean-stageautofeedback: clean-stageautofeedback-fixincludes
clean-stageautofeedback-fixincludes:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/fixincludes/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-fixincludes/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/fixincludes && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif fixincludes-bootstrap





.PHONY: check-fixincludes maybe-check-fixincludes
maybe-check-fixincludes:
@if fixincludes
maybe-check-fixincludes: check-fixincludes

check-fixincludes:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/fixincludes && \
	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif fixincludes

.PHONY: install-fixincludes maybe-install-fixincludes
maybe-install-fixincludes:
@if fixincludes
maybe-install-fixincludes: install-fixincludes

install-fixincludes: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/fixincludes && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif fixincludes

.PHONY: install-strip-fixincludes maybe-install-strip-fixincludes
maybe-install-strip-fixincludes:
@if fixincludes
maybe-install-strip-fixincludes: install-strip-fixincludes

install-strip-fixincludes: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/fixincludes && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif fixincludes

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-fixincludes info-fixincludes
maybe-info-fixincludes:
@if fixincludes
maybe-info-fixincludes: info-fixincludes

info-fixincludes: \
    configure-fixincludes 
	@[ -f ./fixincludes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in fixincludes"; \
	(cd $(HOST_SUBDIR)/fixincludes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif fixincludes

.PHONY: maybe-dvi-fixincludes dvi-fixincludes
maybe-dvi-fixincludes:
@if fixincludes
maybe-dvi-fixincludes: dvi-fixincludes

dvi-fixincludes: \
    configure-fixincludes 
	@[ -f ./fixincludes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in fixincludes"; \
	(cd $(HOST_SUBDIR)/fixincludes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif fixincludes

.PHONY: maybe-pdf-fixincludes pdf-fixincludes
maybe-pdf-fixincludes:
@if fixincludes
maybe-pdf-fixincludes: pdf-fixincludes

pdf-fixincludes: \
    configure-fixincludes 
	@[ -f ./fixincludes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in fixincludes"; \
	(cd $(HOST_SUBDIR)/fixincludes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif fixincludes

.PHONY: maybe-html-fixincludes html-fixincludes
maybe-html-fixincludes:
@if fixincludes
maybe-html-fixincludes: html-fixincludes

html-fixincludes: \
    configure-fixincludes 
	@[ -f ./fixincludes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in fixincludes"; \
	(cd $(HOST_SUBDIR)/fixincludes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif fixincludes

.PHONY: maybe-TAGS-fixincludes TAGS-fixincludes
maybe-TAGS-fixincludes:
@if fixincludes
maybe-TAGS-fixincludes: TAGS-fixincludes

# fixincludes doesn't support TAGS.
TAGS-fixincludes:

@endif fixincludes

.PHONY: maybe-install-info-fixincludes install-info-fixincludes
maybe-install-info-fixincludes:
@if fixincludes
maybe-install-info-fixincludes: install-info-fixincludes

install-info-fixincludes: \
    configure-fixincludes \
    info-fixincludes 
	@[ -f ./fixincludes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in fixincludes"; \
	(cd $(HOST_SUBDIR)/fixincludes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif fixincludes

.PHONY: maybe-install-pdf-fixincludes install-pdf-fixincludes
maybe-install-pdf-fixincludes:
@if fixincludes
maybe-install-pdf-fixincludes: install-pdf-fixincludes

install-pdf-fixincludes: \
    configure-fixincludes \
    pdf-fixincludes 
	@[ -f ./fixincludes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in fixincludes"; \
	(cd $(HOST_SUBDIR)/fixincludes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif fixincludes

.PHONY: maybe-install-html-fixincludes install-html-fixincludes
maybe-install-html-fixincludes:
@if fixincludes
maybe-install-html-fixincludes: install-html-fixincludes

install-html-fixincludes: \
    configure-fixincludes \
    html-fixincludes 
	@[ -f ./fixincludes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in fixincludes"; \
	(cd $(HOST_SUBDIR)/fixincludes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif fixincludes

.PHONY: maybe-installcheck-fixincludes installcheck-fixincludes
maybe-installcheck-fixincludes:
@if fixincludes
maybe-installcheck-fixincludes: installcheck-fixincludes

installcheck-fixincludes: \
    configure-fixincludes 
	@[ -f ./fixincludes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in fixincludes"; \
	(cd $(HOST_SUBDIR)/fixincludes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif fixincludes

.PHONY: maybe-mostlyclean-fixincludes mostlyclean-fixincludes
maybe-mostlyclean-fixincludes:
@if fixincludes
maybe-mostlyclean-fixincludes: mostlyclean-fixincludes

mostlyclean-fixincludes: 
	@[ -f ./fixincludes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in fixincludes"; \
	(cd $(HOST_SUBDIR)/fixincludes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif fixincludes

.PHONY: maybe-clean-fixincludes clean-fixincludes
maybe-clean-fixincludes:
@if fixincludes
maybe-clean-fixincludes: clean-fixincludes

clean-fixincludes: 
	@[ -f ./fixincludes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in fixincludes"; \
	(cd $(HOST_SUBDIR)/fixincludes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif fixincludes

.PHONY: maybe-distclean-fixincludes distclean-fixincludes
maybe-distclean-fixincludes:
@if fixincludes
maybe-distclean-fixincludes: distclean-fixincludes

distclean-fixincludes: 
	@[ -f ./fixincludes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in fixincludes"; \
	(cd $(HOST_SUBDIR)/fixincludes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif fixincludes

.PHONY: maybe-maintainer-clean-fixincludes maintainer-clean-fixincludes
maybe-maintainer-clean-fixincludes:
@if fixincludes
maybe-maintainer-clean-fixincludes: maintainer-clean-fixincludes

maintainer-clean-fixincludes: 
	@[ -f ./fixincludes/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in fixincludes"; \
	(cd $(HOST_SUBDIR)/fixincludes && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif fixincludes



.PHONY: configure-flex maybe-configure-flex
maybe-configure-flex:
@if gcc-bootstrap
configure-flex: stage_current
@endif gcc-bootstrap
@if flex
maybe-configure-flex: configure-flex
configure-flex: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/flex/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/flex; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/flex; \
	cd "$(HOST_SUBDIR)/flex" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/flex/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=flex; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif flex





.PHONY: all-flex maybe-all-flex
maybe-all-flex:
@if gcc-bootstrap
all-flex: stage_current
@endif gcc-bootstrap
@if flex
TARGET-flex=all
maybe-all-flex: all-flex
all-flex: configure-flex
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/flex && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-flex))
@endif flex




.PHONY: check-flex maybe-check-flex
maybe-check-flex:
@if flex
maybe-check-flex: check-flex

# This module is only tested in a native toolchain.
check-flex:
	@: $(MAKE); $(unstage)
	@if [ '$(host)' = '$(target)' ]; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(HOST_EXPORTS)  \
	  (cd $(HOST_SUBDIR)/flex && \
	    $(MAKE) $(FLAGS_TO_PASS)  check)
	fi

@endif flex

.PHONY: install-flex maybe-install-flex
maybe-install-flex:
@if flex
maybe-install-flex: install-flex

install-flex: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/flex && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif flex

.PHONY: install-strip-flex maybe-install-strip-flex
maybe-install-strip-flex:
@if flex
maybe-install-strip-flex: install-strip-flex

install-strip-flex: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/flex && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif flex

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-flex info-flex
maybe-info-flex:
@if flex
maybe-info-flex: info-flex

info-flex: \
    configure-flex 
	@: $(MAKE); $(unstage)
	@[ -f ./flex/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in flex"; \
	(cd $(HOST_SUBDIR)/flex && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif flex

.PHONY: maybe-dvi-flex dvi-flex
maybe-dvi-flex:
@if flex
maybe-dvi-flex: dvi-flex

dvi-flex: \
    configure-flex 
	@: $(MAKE); $(unstage)
	@[ -f ./flex/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in flex"; \
	(cd $(HOST_SUBDIR)/flex && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif flex

.PHONY: maybe-pdf-flex pdf-flex
maybe-pdf-flex:
@if flex
maybe-pdf-flex: pdf-flex

pdf-flex: \
    configure-flex 
	@: $(MAKE); $(unstage)
	@[ -f ./flex/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in flex"; \
	(cd $(HOST_SUBDIR)/flex && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif flex

.PHONY: maybe-html-flex html-flex
maybe-html-flex:
@if flex
maybe-html-flex: html-flex

html-flex: \
    configure-flex 
	@: $(MAKE); $(unstage)
	@[ -f ./flex/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in flex"; \
	(cd $(HOST_SUBDIR)/flex && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif flex

.PHONY: maybe-TAGS-flex TAGS-flex
maybe-TAGS-flex:
@if flex
maybe-TAGS-flex: TAGS-flex

TAGS-flex: \
    configure-flex 
	@: $(MAKE); $(unstage)
	@[ -f ./flex/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in flex"; \
	(cd $(HOST_SUBDIR)/flex && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif flex

.PHONY: maybe-install-info-flex install-info-flex
maybe-install-info-flex:
@if flex
maybe-install-info-flex: install-info-flex

install-info-flex: \
    configure-flex \
    info-flex 
	@: $(MAKE); $(unstage)
	@[ -f ./flex/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in flex"; \
	(cd $(HOST_SUBDIR)/flex && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif flex

.PHONY: maybe-install-pdf-flex install-pdf-flex
maybe-install-pdf-flex:
@if flex
maybe-install-pdf-flex: install-pdf-flex

install-pdf-flex: \
    configure-flex \
    pdf-flex 
	@: $(MAKE); $(unstage)
	@[ -f ./flex/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in flex"; \
	(cd $(HOST_SUBDIR)/flex && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif flex

.PHONY: maybe-install-html-flex install-html-flex
maybe-install-html-flex:
@if flex
maybe-install-html-flex: install-html-flex

install-html-flex: \
    configure-flex \
    html-flex 
	@: $(MAKE); $(unstage)
	@[ -f ./flex/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in flex"; \
	(cd $(HOST_SUBDIR)/flex && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif flex

.PHONY: maybe-installcheck-flex installcheck-flex
maybe-installcheck-flex:
@if flex
maybe-installcheck-flex: installcheck-flex

installcheck-flex: \
    configure-flex 
	@: $(MAKE); $(unstage)
	@[ -f ./flex/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in flex"; \
	(cd $(HOST_SUBDIR)/flex && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif flex

.PHONY: maybe-mostlyclean-flex mostlyclean-flex
maybe-mostlyclean-flex:
@if flex
maybe-mostlyclean-flex: mostlyclean-flex

mostlyclean-flex: 
	@: $(MAKE); $(unstage)
	@[ -f ./flex/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in flex"; \
	(cd $(HOST_SUBDIR)/flex && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif flex

.PHONY: maybe-clean-flex clean-flex
maybe-clean-flex:
@if flex
maybe-clean-flex: clean-flex

clean-flex: 
	@: $(MAKE); $(unstage)
	@[ -f ./flex/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in flex"; \
	(cd $(HOST_SUBDIR)/flex && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif flex

.PHONY: maybe-distclean-flex distclean-flex
maybe-distclean-flex:
@if flex
maybe-distclean-flex: distclean-flex

distclean-flex: 
	@: $(MAKE); $(unstage)
	@[ -f ./flex/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in flex"; \
	(cd $(HOST_SUBDIR)/flex && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif flex

.PHONY: maybe-maintainer-clean-flex maintainer-clean-flex
maybe-maintainer-clean-flex:
@if flex
maybe-maintainer-clean-flex: maintainer-clean-flex

maintainer-clean-flex: 
	@: $(MAKE); $(unstage)
	@[ -f ./flex/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in flex"; \
	(cd $(HOST_SUBDIR)/flex && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif flex



.PHONY: configure-gas maybe-configure-gas
maybe-configure-gas:
@if gcc-bootstrap
configure-gas: stage_current
@endif gcc-bootstrap
@if gas
maybe-configure-gas: configure-gas
configure-gas: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/gas; \
	cd "$(HOST_SUBDIR)/gas" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gas/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gas; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif gas



.PHONY: configure-stage1-gas maybe-configure-stage1-gas
maybe-configure-stage1-gas:
@if gas-bootstrap
maybe-configure-stage1-gas: configure-stage1-gas
configure-stage1-gas:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/gas; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas; \
	cd $(HOST_SUBDIR)/gas || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gas/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gas; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif gas-bootstrap

.PHONY: configure-stage2-gas maybe-configure-stage2-gas
maybe-configure-stage2-gas:
@if gas-bootstrap
maybe-configure-stage2-gas: configure-stage2-gas
configure-stage2-gas:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/gas; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas; \
	cd $(HOST_SUBDIR)/gas || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gas/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gas; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS)
@endif gas-bootstrap

.PHONY: configure-stage3-gas maybe-configure-stage3-gas
maybe-configure-stage3-gas:
@if gas-bootstrap
maybe-configure-stage3-gas: configure-stage3-gas
configure-stage3-gas:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/gas; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas; \
	cd $(HOST_SUBDIR)/gas || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gas/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gas; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS)
@endif gas-bootstrap

.PHONY: configure-stage4-gas maybe-configure-stage4-gas
maybe-configure-stage4-gas:
@if gas-bootstrap
maybe-configure-stage4-gas: configure-stage4-gas
configure-stage4-gas:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/gas; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas; \
	cd $(HOST_SUBDIR)/gas || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gas/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gas; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS)
@endif gas-bootstrap

.PHONY: configure-stageprofile-gas maybe-configure-stageprofile-gas
maybe-configure-stageprofile-gas:
@if gas-bootstrap
maybe-configure-stageprofile-gas: configure-stageprofile-gas
configure-stageprofile-gas:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/gas; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas; \
	cd $(HOST_SUBDIR)/gas || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gas/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gas; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS)
@endif gas-bootstrap

.PHONY: configure-stagetrain-gas maybe-configure-stagetrain-gas
maybe-configure-stagetrain-gas:
@if gas-bootstrap
maybe-configure-stagetrain-gas: configure-stagetrain-gas
configure-stagetrain-gas:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/gas; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas; \
	cd $(HOST_SUBDIR)/gas || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gas/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gas; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS)
@endif gas-bootstrap

.PHONY: configure-stagefeedback-gas maybe-configure-stagefeedback-gas
maybe-configure-stagefeedback-gas:
@if gas-bootstrap
maybe-configure-stagefeedback-gas: configure-stagefeedback-gas
configure-stagefeedback-gas:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/gas; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas; \
	cd $(HOST_SUBDIR)/gas || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gas/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gas; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS)
@endif gas-bootstrap

.PHONY: configure-stageautoprofile-gas maybe-configure-stageautoprofile-gas
maybe-configure-stageautoprofile-gas:
@if gas-bootstrap
maybe-configure-stageautoprofile-gas: configure-stageautoprofile-gas
configure-stageautoprofile-gas:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/gas; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas; \
	cd $(HOST_SUBDIR)/gas || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gas/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gas; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS)
@endif gas-bootstrap

.PHONY: configure-stageautofeedback-gas maybe-configure-stageautofeedback-gas
maybe-configure-stageautofeedback-gas:
@if gas-bootstrap
maybe-configure-stageautofeedback-gas: configure-stageautofeedback-gas
configure-stageautofeedback-gas:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gas/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/gas; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gas; \
	cd $(HOST_SUBDIR)/gas || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gas/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gas; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS)
@endif gas-bootstrap





.PHONY: all-gas maybe-all-gas
maybe-all-gas:
@if gcc-bootstrap
all-gas: stage_current
@endif gcc-bootstrap
@if gas
TARGET-gas=all
maybe-all-gas: all-gas
all-gas: configure-gas
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/gas && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-gas))
@endif gas



.PHONY: all-stage1-gas maybe-all-stage1-gas
.PHONY: clean-stage1-gas maybe-clean-stage1-gas
maybe-all-stage1-gas:
maybe-clean-stage1-gas:
@if gas-bootstrap
maybe-all-stage1-gas: all-stage1-gas
all-stage1: all-stage1-gas
TARGET-stage1-gas = $(TARGET-gas)
all-stage1-gas: configure-stage1-gas
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gas && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-gas)

maybe-clean-stage1-gas: clean-stage1-gas
clean-stage1: clean-stage1-gas
clean-stage1-gas:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/gas/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-gas/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/gas && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS)  clean
@endif gas-bootstrap


.PHONY: all-stage2-gas maybe-all-stage2-gas
.PHONY: clean-stage2-gas maybe-clean-stage2-gas
maybe-all-stage2-gas:
maybe-clean-stage2-gas:
@if gas-bootstrap
maybe-all-stage2-gas: all-stage2-gas
all-stage2: all-stage2-gas
TARGET-stage2-gas = $(TARGET-gas)
all-stage2-gas: configure-stage2-gas
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gas && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-gas)

maybe-clean-stage2-gas: clean-stage2-gas
clean-stage2: clean-stage2-gas
clean-stage2-gas:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/gas/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-gas/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/gas && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif gas-bootstrap


.PHONY: all-stage3-gas maybe-all-stage3-gas
.PHONY: clean-stage3-gas maybe-clean-stage3-gas
maybe-all-stage3-gas:
maybe-clean-stage3-gas:
@if gas-bootstrap
maybe-all-stage3-gas: all-stage3-gas
all-stage3: all-stage3-gas
TARGET-stage3-gas = $(TARGET-gas)
all-stage3-gas: configure-stage3-gas
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gas && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-gas)

maybe-clean-stage3-gas: clean-stage3-gas
clean-stage3: clean-stage3-gas
clean-stage3-gas:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/gas/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-gas/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/gas && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif gas-bootstrap


.PHONY: all-stage4-gas maybe-all-stage4-gas
.PHONY: clean-stage4-gas maybe-clean-stage4-gas
maybe-all-stage4-gas:
maybe-clean-stage4-gas:
@if gas-bootstrap
maybe-all-stage4-gas: all-stage4-gas
all-stage4: all-stage4-gas
TARGET-stage4-gas = $(TARGET-gas)
all-stage4-gas: configure-stage4-gas
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gas && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-gas)

maybe-clean-stage4-gas: clean-stage4-gas
clean-stage4: clean-stage4-gas
clean-stage4-gas:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/gas/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-gas/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/gas && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif gas-bootstrap


.PHONY: all-stageprofile-gas maybe-all-stageprofile-gas
.PHONY: clean-stageprofile-gas maybe-clean-stageprofile-gas
maybe-all-stageprofile-gas:
maybe-clean-stageprofile-gas:
@if gas-bootstrap
maybe-all-stageprofile-gas: all-stageprofile-gas
all-stageprofile: all-stageprofile-gas
TARGET-stageprofile-gas = $(TARGET-gas)
all-stageprofile-gas: configure-stageprofile-gas
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gas && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-gas)

maybe-clean-stageprofile-gas: clean-stageprofile-gas
clean-stageprofile: clean-stageprofile-gas
clean-stageprofile-gas:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/gas/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-gas/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/gas && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif gas-bootstrap


.PHONY: all-stagetrain-gas maybe-all-stagetrain-gas
.PHONY: clean-stagetrain-gas maybe-clean-stagetrain-gas
maybe-all-stagetrain-gas:
maybe-clean-stagetrain-gas:
@if gas-bootstrap
maybe-all-stagetrain-gas: all-stagetrain-gas
all-stagetrain: all-stagetrain-gas
TARGET-stagetrain-gas = $(TARGET-gas)
all-stagetrain-gas: configure-stagetrain-gas
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gas && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-gas)

maybe-clean-stagetrain-gas: clean-stagetrain-gas
clean-stagetrain: clean-stagetrain-gas
clean-stagetrain-gas:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/gas/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-gas/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/gas && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif gas-bootstrap


.PHONY: all-stagefeedback-gas maybe-all-stagefeedback-gas
.PHONY: clean-stagefeedback-gas maybe-clean-stagefeedback-gas
maybe-all-stagefeedback-gas:
maybe-clean-stagefeedback-gas:
@if gas-bootstrap
maybe-all-stagefeedback-gas: all-stagefeedback-gas
all-stagefeedback: all-stagefeedback-gas
TARGET-stagefeedback-gas = $(TARGET-gas)
all-stagefeedback-gas: configure-stagefeedback-gas
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gas && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-gas)

maybe-clean-stagefeedback-gas: clean-stagefeedback-gas
clean-stagefeedback: clean-stagefeedback-gas
clean-stagefeedback-gas:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/gas/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-gas/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/gas && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif gas-bootstrap


.PHONY: all-stageautoprofile-gas maybe-all-stageautoprofile-gas
.PHONY: clean-stageautoprofile-gas maybe-clean-stageautoprofile-gas
maybe-all-stageautoprofile-gas:
maybe-clean-stageautoprofile-gas:
@if gas-bootstrap
maybe-all-stageautoprofile-gas: all-stageautoprofile-gas
all-stageautoprofile: all-stageautoprofile-gas
TARGET-stageautoprofile-gas = $(TARGET-gas)
all-stageautoprofile-gas: configure-stageautoprofile-gas
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gas && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-gas)

maybe-clean-stageautoprofile-gas: clean-stageautoprofile-gas
clean-stageautoprofile: clean-stageautoprofile-gas
clean-stageautoprofile-gas:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/gas/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-gas/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/gas && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif gas-bootstrap


.PHONY: all-stageautofeedback-gas maybe-all-stageautofeedback-gas
.PHONY: clean-stageautofeedback-gas maybe-clean-stageautofeedback-gas
maybe-all-stageautofeedback-gas:
maybe-clean-stageautofeedback-gas:
@if gas-bootstrap
maybe-all-stageautofeedback-gas: all-stageautofeedback-gas
all-stageautofeedback: all-stageautofeedback-gas
TARGET-stageautofeedback-gas = $(TARGET-gas)
all-stageautofeedback-gas: configure-stageautofeedback-gas
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gas && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-gas)

maybe-clean-stageautofeedback-gas: clean-stageautofeedback-gas
clean-stageautofeedback: clean-stageautofeedback-gas
clean-stageautofeedback-gas:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/gas/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-gas/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/gas && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif gas-bootstrap





.PHONY: check-gas maybe-check-gas
maybe-check-gas:
@if gas
maybe-check-gas: check-gas

check-gas:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gas && \
	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif gas

.PHONY: install-gas maybe-install-gas
maybe-install-gas:
@if gas
maybe-install-gas: install-gas

install-gas: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gas && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif gas

.PHONY: install-strip-gas maybe-install-strip-gas
maybe-install-strip-gas:
@if gas
maybe-install-strip-gas: install-strip-gas

install-strip-gas: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gas && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif gas

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-gas info-gas
maybe-info-gas:
@if gas
maybe-info-gas: info-gas

info-gas: \
    configure-gas 
	@[ -f ./gas/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in gas"; \
	(cd $(HOST_SUBDIR)/gas && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif gas

.PHONY: maybe-dvi-gas dvi-gas
maybe-dvi-gas:
@if gas
maybe-dvi-gas: dvi-gas

dvi-gas: \
    configure-gas 
	@[ -f ./gas/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in gas"; \
	(cd $(HOST_SUBDIR)/gas && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif gas

.PHONY: maybe-pdf-gas pdf-gas
maybe-pdf-gas:
@if gas
maybe-pdf-gas: pdf-gas

pdf-gas: \
    configure-gas 
	@[ -f ./gas/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in gas"; \
	(cd $(HOST_SUBDIR)/gas && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif gas

.PHONY: maybe-html-gas html-gas
maybe-html-gas:
@if gas
maybe-html-gas: html-gas

html-gas: \
    configure-gas 
	@[ -f ./gas/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in gas"; \
	(cd $(HOST_SUBDIR)/gas && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif gas

.PHONY: maybe-TAGS-gas TAGS-gas
maybe-TAGS-gas:
@if gas
maybe-TAGS-gas: TAGS-gas

TAGS-gas: \
    configure-gas 
	@[ -f ./gas/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in gas"; \
	(cd $(HOST_SUBDIR)/gas && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif gas

.PHONY: maybe-install-info-gas install-info-gas
maybe-install-info-gas:
@if gas
maybe-install-info-gas: install-info-gas

install-info-gas: \
    configure-gas \
    info-gas 
	@[ -f ./gas/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in gas"; \
	(cd $(HOST_SUBDIR)/gas && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif gas

.PHONY: maybe-install-pdf-gas install-pdf-gas
maybe-install-pdf-gas:
@if gas
maybe-install-pdf-gas: install-pdf-gas

install-pdf-gas: \
    configure-gas \
    pdf-gas 
	@[ -f ./gas/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in gas"; \
	(cd $(HOST_SUBDIR)/gas && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif gas

.PHONY: maybe-install-html-gas install-html-gas
maybe-install-html-gas:
@if gas
maybe-install-html-gas: install-html-gas

install-html-gas: \
    configure-gas \
    html-gas 
	@[ -f ./gas/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in gas"; \
	(cd $(HOST_SUBDIR)/gas && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif gas

.PHONY: maybe-installcheck-gas installcheck-gas
maybe-installcheck-gas:
@if gas
maybe-installcheck-gas: installcheck-gas

installcheck-gas: \
    configure-gas 
	@[ -f ./gas/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in gas"; \
	(cd $(HOST_SUBDIR)/gas && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif gas

.PHONY: maybe-mostlyclean-gas mostlyclean-gas
maybe-mostlyclean-gas:
@if gas
maybe-mostlyclean-gas: mostlyclean-gas

mostlyclean-gas: 
	@[ -f ./gas/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in gas"; \
	(cd $(HOST_SUBDIR)/gas && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif gas

.PHONY: maybe-clean-gas clean-gas
maybe-clean-gas:
@if gas
maybe-clean-gas: clean-gas

clean-gas: 
	@[ -f ./gas/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in gas"; \
	(cd $(HOST_SUBDIR)/gas && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif gas

.PHONY: maybe-distclean-gas distclean-gas
maybe-distclean-gas:
@if gas
maybe-distclean-gas: distclean-gas

distclean-gas: 
	@[ -f ./gas/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in gas"; \
	(cd $(HOST_SUBDIR)/gas && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif gas

.PHONY: maybe-maintainer-clean-gas maintainer-clean-gas
maybe-maintainer-clean-gas:
@if gas
maybe-maintainer-clean-gas: maintainer-clean-gas

maintainer-clean-gas: 
	@[ -f ./gas/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in gas"; \
	(cd $(HOST_SUBDIR)/gas && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif gas



.PHONY: configure-gcc maybe-configure-gcc
maybe-configure-gcc:
@if gcc-bootstrap
configure-gcc: stage_current
@endif gcc-bootstrap
@if gcc
maybe-configure-gcc: configure-gcc
configure-gcc: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/gcc; \
	cd "$(HOST_SUBDIR)/gcc" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gcc; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif gcc



.PHONY: configure-stage1-gcc maybe-configure-stage1-gcc
maybe-configure-stage1-gcc:
@if gcc-bootstrap
maybe-configure-stage1-gcc: configure-stage1-gcc
configure-stage1-gcc:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/gcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
	cd $(HOST_SUBDIR)/gcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif gcc-bootstrap

.PHONY: configure-stage2-gcc maybe-configure-stage2-gcc
maybe-configure-stage2-gcc:
@if gcc-bootstrap
maybe-configure-stage2-gcc: configure-stage2-gcc
configure-stage2-gcc:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/gcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
	cd $(HOST_SUBDIR)/gcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS)
@endif gcc-bootstrap

.PHONY: configure-stage3-gcc maybe-configure-stage3-gcc
maybe-configure-stage3-gcc:
@if gcc-bootstrap
maybe-configure-stage3-gcc: configure-stage3-gcc
configure-stage3-gcc:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/gcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
	cd $(HOST_SUBDIR)/gcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS)
@endif gcc-bootstrap

.PHONY: configure-stage4-gcc maybe-configure-stage4-gcc
maybe-configure-stage4-gcc:
@if gcc-bootstrap
maybe-configure-stage4-gcc: configure-stage4-gcc
configure-stage4-gcc:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/gcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
	cd $(HOST_SUBDIR)/gcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS)
@endif gcc-bootstrap

.PHONY: configure-stageprofile-gcc maybe-configure-stageprofile-gcc
maybe-configure-stageprofile-gcc:
@if gcc-bootstrap
maybe-configure-stageprofile-gcc: configure-stageprofile-gcc
configure-stageprofile-gcc:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/gcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
	cd $(HOST_SUBDIR)/gcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS)
@endif gcc-bootstrap

.PHONY: configure-stagetrain-gcc maybe-configure-stagetrain-gcc
maybe-configure-stagetrain-gcc:
@if gcc-bootstrap
maybe-configure-stagetrain-gcc: configure-stagetrain-gcc
configure-stagetrain-gcc:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/gcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
	cd $(HOST_SUBDIR)/gcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS)
@endif gcc-bootstrap

.PHONY: configure-stagefeedback-gcc maybe-configure-stagefeedback-gcc
maybe-configure-stagefeedback-gcc:
@if gcc-bootstrap
maybe-configure-stagefeedback-gcc: configure-stagefeedback-gcc
configure-stagefeedback-gcc:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/gcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
	cd $(HOST_SUBDIR)/gcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS)
@endif gcc-bootstrap

.PHONY: configure-stageautoprofile-gcc maybe-configure-stageautoprofile-gcc
maybe-configure-stageautoprofile-gcc:
@if gcc-bootstrap
maybe-configure-stageautoprofile-gcc: configure-stageautoprofile-gcc
configure-stageautoprofile-gcc:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/gcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
	cd $(HOST_SUBDIR)/gcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS)
@endif gcc-bootstrap

.PHONY: configure-stageautofeedback-gcc maybe-configure-stageautofeedback-gcc
maybe-configure-stageautofeedback-gcc:
@if gcc-bootstrap
maybe-configure-stageautofeedback-gcc: configure-stageautofeedback-gcc
configure-stageautofeedback-gcc:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gcc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/gcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gcc; \
	cd $(HOST_SUBDIR)/gcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS)
@endif gcc-bootstrap





.PHONY: all-gcc maybe-all-gcc
maybe-all-gcc:
@if gcc-bootstrap
all-gcc: stage_current
@endif gcc-bootstrap
@if gcc
TARGET-gcc=all
maybe-all-gcc: all-gcc
all-gcc: configure-gcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/gcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
		$(TARGET-gcc))
@endif gcc



.PHONY: all-stage1-gcc maybe-all-stage1-gcc
.PHONY: clean-stage1-gcc maybe-clean-stage1-gcc
maybe-all-stage1-gcc:
maybe-clean-stage1-gcc:
@if gcc-bootstrap
maybe-all-stage1-gcc: all-stage1-gcc
all-stage1: all-stage1-gcc
TARGET-stage1-gcc = $(TARGET-gcc)
all-stage1-gcc: configure-stage1-gcc
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gcc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-gcc)

maybe-clean-stage1-gcc: clean-stage1-gcc
clean-stage1: clean-stage1-gcc
clean-stage1-gcc:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/gcc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-gcc/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/gcc && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) clean
@endif gcc-bootstrap


.PHONY: all-stage2-gcc maybe-all-stage2-gcc
.PHONY: clean-stage2-gcc maybe-clean-stage2-gcc
maybe-all-stage2-gcc:
maybe-clean-stage2-gcc:
@if gcc-bootstrap
maybe-all-stage2-gcc: all-stage2-gcc
all-stage2: all-stage2-gcc
TARGET-stage2-gcc = $(TARGET-gcc)
all-stage2-gcc: configure-stage2-gcc
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gcc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-gcc)

maybe-clean-stage2-gcc: clean-stage2-gcc
clean-stage2: clean-stage2-gcc
clean-stage2-gcc:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/gcc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-gcc/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/gcc && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) clean
@endif gcc-bootstrap


.PHONY: all-stage3-gcc maybe-all-stage3-gcc
.PHONY: clean-stage3-gcc maybe-clean-stage3-gcc
maybe-all-stage3-gcc:
maybe-clean-stage3-gcc:
@if gcc-bootstrap
maybe-all-stage3-gcc: all-stage3-gcc
all-stage3: all-stage3-gcc
TARGET-stage3-gcc = $(TARGET-gcc)
all-stage3-gcc: configure-stage3-gcc
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gcc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-gcc)

maybe-clean-stage3-gcc: clean-stage3-gcc
clean-stage3: clean-stage3-gcc
clean-stage3-gcc:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/gcc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-gcc/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/gcc && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) clean
@endif gcc-bootstrap


.PHONY: all-stage4-gcc maybe-all-stage4-gcc
.PHONY: clean-stage4-gcc maybe-clean-stage4-gcc
maybe-all-stage4-gcc:
maybe-clean-stage4-gcc:
@if gcc-bootstrap
maybe-all-stage4-gcc: all-stage4-gcc
all-stage4: all-stage4-gcc
TARGET-stage4-gcc = $(TARGET-gcc)
all-stage4-gcc: configure-stage4-gcc
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gcc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-gcc)

maybe-clean-stage4-gcc: clean-stage4-gcc
clean-stage4: clean-stage4-gcc
clean-stage4-gcc:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/gcc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-gcc/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/gcc && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) clean
@endif gcc-bootstrap


.PHONY: all-stageprofile-gcc maybe-all-stageprofile-gcc
.PHONY: clean-stageprofile-gcc maybe-clean-stageprofile-gcc
maybe-all-stageprofile-gcc:
maybe-clean-stageprofile-gcc:
@if gcc-bootstrap
maybe-all-stageprofile-gcc: all-stageprofile-gcc
all-stageprofile: all-stageprofile-gcc
TARGET-stageprofile-gcc = $(TARGET-gcc)
all-stageprofile-gcc: configure-stageprofile-gcc
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gcc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-gcc)

maybe-clean-stageprofile-gcc: clean-stageprofile-gcc
clean-stageprofile: clean-stageprofile-gcc
clean-stageprofile-gcc:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/gcc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-gcc/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/gcc && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) clean
@endif gcc-bootstrap


.PHONY: all-stagetrain-gcc maybe-all-stagetrain-gcc
.PHONY: clean-stagetrain-gcc maybe-clean-stagetrain-gcc
maybe-all-stagetrain-gcc:
maybe-clean-stagetrain-gcc:
@if gcc-bootstrap
maybe-all-stagetrain-gcc: all-stagetrain-gcc
all-stagetrain: all-stagetrain-gcc
TARGET-stagetrain-gcc = $(TARGET-gcc)
all-stagetrain-gcc: configure-stagetrain-gcc
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gcc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-gcc)

maybe-clean-stagetrain-gcc: clean-stagetrain-gcc
clean-stagetrain: clean-stagetrain-gcc
clean-stagetrain-gcc:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/gcc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-gcc/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/gcc && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) clean
@endif gcc-bootstrap


.PHONY: all-stagefeedback-gcc maybe-all-stagefeedback-gcc
.PHONY: clean-stagefeedback-gcc maybe-clean-stagefeedback-gcc
maybe-all-stagefeedback-gcc:
maybe-clean-stagefeedback-gcc:
@if gcc-bootstrap
maybe-all-stagefeedback-gcc: all-stagefeedback-gcc
all-stagefeedback: all-stagefeedback-gcc
TARGET-stagefeedback-gcc = $(TARGET-gcc)
all-stagefeedback-gcc: configure-stagefeedback-gcc
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gcc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-gcc)

maybe-clean-stagefeedback-gcc: clean-stagefeedback-gcc
clean-stagefeedback: clean-stagefeedback-gcc
clean-stagefeedback-gcc:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/gcc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-gcc/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/gcc && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) clean
@endif gcc-bootstrap


.PHONY: all-stageautoprofile-gcc maybe-all-stageautoprofile-gcc
.PHONY: clean-stageautoprofile-gcc maybe-clean-stageautoprofile-gcc
maybe-all-stageautoprofile-gcc:
maybe-clean-stageautoprofile-gcc:
@if gcc-bootstrap
maybe-all-stageautoprofile-gcc: all-stageautoprofile-gcc
all-stageautoprofile: all-stageautoprofile-gcc
TARGET-stageautoprofile-gcc = $(TARGET-gcc)
all-stageautoprofile-gcc: configure-stageautoprofile-gcc
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gcc && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-gcc)

maybe-clean-stageautoprofile-gcc: clean-stageautoprofile-gcc
clean-stageautoprofile: clean-stageautoprofile-gcc
clean-stageautoprofile-gcc:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/gcc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-gcc/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/gcc && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) clean
@endif gcc-bootstrap


.PHONY: all-stageautofeedback-gcc maybe-all-stageautofeedback-gcc
.PHONY: clean-stageautofeedback-gcc maybe-clean-stageautofeedback-gcc
maybe-all-stageautofeedback-gcc:
maybe-clean-stageautofeedback-gcc:
@if gcc-bootstrap
maybe-all-stageautofeedback-gcc: all-stageautofeedback-gcc
all-stageautofeedback: all-stageautofeedback-gcc
TARGET-stageautofeedback-gcc = $(TARGET-gcc)
all-stageautofeedback-gcc: configure-stageautofeedback-gcc
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gcc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-gcc)

maybe-clean-stageautofeedback-gcc: clean-stageautofeedback-gcc
clean-stageautofeedback: clean-stageautofeedback-gcc
clean-stageautofeedback-gcc:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/gcc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-gcc/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/gcc && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) clean
@endif gcc-bootstrap





.PHONY: check-gcc maybe-check-gcc
maybe-check-gcc:
@if gcc
maybe-check-gcc: check-gcc

check-gcc:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gcc && \
	  $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif gcc

.PHONY: install-gcc maybe-install-gcc
maybe-install-gcc:
@if gcc
maybe-install-gcc: install-gcc

install-gcc: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gcc && \
	  $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) install)

@endif gcc

.PHONY: install-strip-gcc maybe-install-strip-gcc
maybe-install-strip-gcc:
@if gcc
maybe-install-strip-gcc: install-strip-gcc

install-strip-gcc: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gcc && \
	  $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) install-strip)

@endif gcc

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-gcc info-gcc
maybe-info-gcc:
@if gcc
maybe-info-gcc: info-gcc

info-gcc: \
    configure-gcc 
	@[ -f ./gcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in gcc"; \
	(cd $(HOST_SUBDIR)/gcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif gcc

.PHONY: maybe-dvi-gcc dvi-gcc
maybe-dvi-gcc:
@if gcc
maybe-dvi-gcc: dvi-gcc

dvi-gcc: \
    configure-gcc 
	@[ -f ./gcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in gcc"; \
	(cd $(HOST_SUBDIR)/gcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif gcc

.PHONY: maybe-pdf-gcc pdf-gcc
maybe-pdf-gcc:
@if gcc
maybe-pdf-gcc: pdf-gcc

pdf-gcc: \
    configure-gcc 
	@[ -f ./gcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in gcc"; \
	(cd $(HOST_SUBDIR)/gcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif gcc

.PHONY: maybe-html-gcc html-gcc
maybe-html-gcc:
@if gcc
maybe-html-gcc: html-gcc

html-gcc: \
    configure-gcc 
	@[ -f ./gcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in gcc"; \
	(cd $(HOST_SUBDIR)/gcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif gcc

.PHONY: maybe-TAGS-gcc TAGS-gcc
maybe-TAGS-gcc:
@if gcc
maybe-TAGS-gcc: TAGS-gcc

TAGS-gcc: \
    configure-gcc 
	@[ -f ./gcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in gcc"; \
	(cd $(HOST_SUBDIR)/gcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif gcc

.PHONY: maybe-install-info-gcc install-info-gcc
maybe-install-info-gcc:
@if gcc
maybe-install-info-gcc: install-info-gcc

install-info-gcc: \
    configure-gcc \
    info-gcc 
	@[ -f ./gcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in gcc"; \
	(cd $(HOST_SUBDIR)/gcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif gcc

.PHONY: maybe-install-pdf-gcc install-pdf-gcc
maybe-install-pdf-gcc:
@if gcc
maybe-install-pdf-gcc: install-pdf-gcc

install-pdf-gcc: \
    configure-gcc \
    pdf-gcc 
	@[ -f ./gcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in gcc"; \
	(cd $(HOST_SUBDIR)/gcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif gcc

.PHONY: maybe-install-html-gcc install-html-gcc
maybe-install-html-gcc:
@if gcc
maybe-install-html-gcc: install-html-gcc

install-html-gcc: \
    configure-gcc \
    html-gcc 
	@[ -f ./gcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in gcc"; \
	(cd $(HOST_SUBDIR)/gcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif gcc

.PHONY: maybe-installcheck-gcc installcheck-gcc
maybe-installcheck-gcc:
@if gcc
maybe-installcheck-gcc: installcheck-gcc

installcheck-gcc: \
    configure-gcc 
	@[ -f ./gcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in gcc"; \
	(cd $(HOST_SUBDIR)/gcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif gcc

.PHONY: maybe-mostlyclean-gcc mostlyclean-gcc
maybe-mostlyclean-gcc:
@if gcc
maybe-mostlyclean-gcc: mostlyclean-gcc

mostlyclean-gcc: 
	@[ -f ./gcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in gcc"; \
	(cd $(HOST_SUBDIR)/gcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif gcc

.PHONY: maybe-clean-gcc clean-gcc
maybe-clean-gcc:
@if gcc
maybe-clean-gcc: clean-gcc

clean-gcc: 
	@[ -f ./gcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in gcc"; \
	(cd $(HOST_SUBDIR)/gcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif gcc

.PHONY: maybe-distclean-gcc distclean-gcc
maybe-distclean-gcc:
@if gcc
maybe-distclean-gcc: distclean-gcc

distclean-gcc: 
	@[ -f ./gcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in gcc"; \
	(cd $(HOST_SUBDIR)/gcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif gcc

.PHONY: maybe-maintainer-clean-gcc maintainer-clean-gcc
maybe-maintainer-clean-gcc:
@if gcc
maybe-maintainer-clean-gcc: maintainer-clean-gcc

maintainer-clean-gcc: 
	@[ -f ./gcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in gcc"; \
	(cd $(HOST_SUBDIR)/gcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif gcc



.PHONY: configure-gmp maybe-configure-gmp
maybe-configure-gmp:
@if gcc-bootstrap
configure-gmp: stage_current
@endif gcc-bootstrap
@if gmp
maybe-configure-gmp: configure-gmp
configure-gmp: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/gmp; \
	cd "$(HOST_SUBDIR)/gmp" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gmp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gmp; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
	  --target=none-${host_vendor}-${host_os} --disable-shared LEX="touch lex.yy.c" \
	  || exit 1
@endif gmp



.PHONY: configure-stage1-gmp maybe-configure-stage1-gmp
maybe-configure-stage1-gmp:
@if gmp-bootstrap
maybe-configure-stage1-gmp: configure-stage1-gmp
configure-stage1-gmp:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/gmp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp; \
	cd $(HOST_SUBDIR)/gmp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gmp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gmp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
	  --target=none-${host_vendor}-${host_os} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS) \
	  --disable-shared LEX="touch lex.yy.c"
@endif gmp-bootstrap

.PHONY: configure-stage2-gmp maybe-configure-stage2-gmp
maybe-configure-stage2-gmp:
@if gmp-bootstrap
maybe-configure-stage2-gmp: configure-stage2-gmp
configure-stage2-gmp:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/gmp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp; \
	cd $(HOST_SUBDIR)/gmp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gmp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gmp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
	  --target=none-${host_vendor}-${host_os} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS) \
	  --disable-shared LEX="touch lex.yy.c"
@endif gmp-bootstrap

.PHONY: configure-stage3-gmp maybe-configure-stage3-gmp
maybe-configure-stage3-gmp:
@if gmp-bootstrap
maybe-configure-stage3-gmp: configure-stage3-gmp
configure-stage3-gmp:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/gmp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp; \
	cd $(HOST_SUBDIR)/gmp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gmp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gmp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
	  --target=none-${host_vendor}-${host_os} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS) \
	  --disable-shared LEX="touch lex.yy.c"
@endif gmp-bootstrap

.PHONY: configure-stage4-gmp maybe-configure-stage4-gmp
maybe-configure-stage4-gmp:
@if gmp-bootstrap
maybe-configure-stage4-gmp: configure-stage4-gmp
configure-stage4-gmp:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/gmp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp; \
	cd $(HOST_SUBDIR)/gmp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gmp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gmp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
	  --target=none-${host_vendor}-${host_os} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS) \
	  --disable-shared LEX="touch lex.yy.c"
@endif gmp-bootstrap

.PHONY: configure-stageprofile-gmp maybe-configure-stageprofile-gmp
maybe-configure-stageprofile-gmp:
@if gmp-bootstrap
maybe-configure-stageprofile-gmp: configure-stageprofile-gmp
configure-stageprofile-gmp:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/gmp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp; \
	cd $(HOST_SUBDIR)/gmp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gmp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gmp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
	  --target=none-${host_vendor}-${host_os} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS) \
	  --disable-shared LEX="touch lex.yy.c"
@endif gmp-bootstrap

.PHONY: configure-stagetrain-gmp maybe-configure-stagetrain-gmp
maybe-configure-stagetrain-gmp:
@if gmp-bootstrap
maybe-configure-stagetrain-gmp: configure-stagetrain-gmp
configure-stagetrain-gmp:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/gmp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp; \
	cd $(HOST_SUBDIR)/gmp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gmp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gmp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
	  --target=none-${host_vendor}-${host_os} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS) \
	  --disable-shared LEX="touch lex.yy.c"
@endif gmp-bootstrap

.PHONY: configure-stagefeedback-gmp maybe-configure-stagefeedback-gmp
maybe-configure-stagefeedback-gmp:
@if gmp-bootstrap
maybe-configure-stagefeedback-gmp: configure-stagefeedback-gmp
configure-stagefeedback-gmp:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/gmp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp; \
	cd $(HOST_SUBDIR)/gmp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gmp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gmp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
	  --target=none-${host_vendor}-${host_os} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS) \
	  --disable-shared LEX="touch lex.yy.c"
@endif gmp-bootstrap

.PHONY: configure-stageautoprofile-gmp maybe-configure-stageautoprofile-gmp
maybe-configure-stageautoprofile-gmp:
@if gmp-bootstrap
maybe-configure-stageautoprofile-gmp: configure-stageautoprofile-gmp
configure-stageautoprofile-gmp:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/gmp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp; \
	cd $(HOST_SUBDIR)/gmp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gmp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gmp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
	  --target=none-${host_vendor}-${host_os} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS) \
	  --disable-shared LEX="touch lex.yy.c"
@endif gmp-bootstrap

.PHONY: configure-stageautofeedback-gmp maybe-configure-stageautofeedback-gmp
maybe-configure-stageautofeedback-gmp:
@if gmp-bootstrap
maybe-configure-stageautofeedback-gmp: configure-stageautofeedback-gmp
configure-stageautofeedback-gmp:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gmp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/gmp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gmp; \
	cd $(HOST_SUBDIR)/gmp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gmp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gmp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
	  --target=none-${host_vendor}-${host_os} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS) \
	  --disable-shared LEX="touch lex.yy.c"
@endif gmp-bootstrap





.PHONY: all-gmp maybe-all-gmp
maybe-all-gmp:
@if gcc-bootstrap
all-gmp: stage_current
@endif gcc-bootstrap
@if gmp
TARGET-gmp=all
maybe-all-gmp: all-gmp
all-gmp: configure-gmp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/gmp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		$(TARGET-gmp))
@endif gmp



.PHONY: all-stage1-gmp maybe-all-stage1-gmp
.PHONY: clean-stage1-gmp maybe-clean-stage1-gmp
maybe-all-stage1-gmp:
maybe-clean-stage1-gmp:
@if gmp-bootstrap
maybe-all-stage1-gmp: all-stage1-gmp
all-stage1: all-stage1-gmp
TARGET-stage1-gmp = $(TARGET-gmp)
all-stage1-gmp: configure-stage1-gmp
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gmp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-gmp)

maybe-clean-stage1-gmp: clean-stage1-gmp
clean-stage1: clean-stage1-gmp
clean-stage1-gmp:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/gmp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-gmp/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/gmp && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif gmp-bootstrap


.PHONY: all-stage2-gmp maybe-all-stage2-gmp
.PHONY: clean-stage2-gmp maybe-clean-stage2-gmp
maybe-all-stage2-gmp:
maybe-clean-stage2-gmp:
@if gmp-bootstrap
maybe-all-stage2-gmp: all-stage2-gmp
all-stage2: all-stage2-gmp
TARGET-stage2-gmp = $(TARGET-gmp)
all-stage2-gmp: configure-stage2-gmp
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gmp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-gmp)

maybe-clean-stage2-gmp: clean-stage2-gmp
clean-stage2: clean-stage2-gmp
clean-stage2-gmp:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/gmp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-gmp/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/gmp && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif gmp-bootstrap


.PHONY: all-stage3-gmp maybe-all-stage3-gmp
.PHONY: clean-stage3-gmp maybe-clean-stage3-gmp
maybe-all-stage3-gmp:
maybe-clean-stage3-gmp:
@if gmp-bootstrap
maybe-all-stage3-gmp: all-stage3-gmp
all-stage3: all-stage3-gmp
TARGET-stage3-gmp = $(TARGET-gmp)
all-stage3-gmp: configure-stage3-gmp
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gmp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-gmp)

maybe-clean-stage3-gmp: clean-stage3-gmp
clean-stage3: clean-stage3-gmp
clean-stage3-gmp:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/gmp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-gmp/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/gmp && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif gmp-bootstrap


.PHONY: all-stage4-gmp maybe-all-stage4-gmp
.PHONY: clean-stage4-gmp maybe-clean-stage4-gmp
maybe-all-stage4-gmp:
maybe-clean-stage4-gmp:
@if gmp-bootstrap
maybe-all-stage4-gmp: all-stage4-gmp
all-stage4: all-stage4-gmp
TARGET-stage4-gmp = $(TARGET-gmp)
all-stage4-gmp: configure-stage4-gmp
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gmp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-gmp)

maybe-clean-stage4-gmp: clean-stage4-gmp
clean-stage4: clean-stage4-gmp
clean-stage4-gmp:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/gmp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-gmp/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/gmp && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif gmp-bootstrap


.PHONY: all-stageprofile-gmp maybe-all-stageprofile-gmp
.PHONY: clean-stageprofile-gmp maybe-clean-stageprofile-gmp
maybe-all-stageprofile-gmp:
maybe-clean-stageprofile-gmp:
@if gmp-bootstrap
maybe-all-stageprofile-gmp: all-stageprofile-gmp
all-stageprofile: all-stageprofile-gmp
TARGET-stageprofile-gmp = $(TARGET-gmp)
all-stageprofile-gmp: configure-stageprofile-gmp
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gmp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-gmp)

maybe-clean-stageprofile-gmp: clean-stageprofile-gmp
clean-stageprofile: clean-stageprofile-gmp
clean-stageprofile-gmp:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/gmp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-gmp/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/gmp && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif gmp-bootstrap


.PHONY: all-stagetrain-gmp maybe-all-stagetrain-gmp
.PHONY: clean-stagetrain-gmp maybe-clean-stagetrain-gmp
maybe-all-stagetrain-gmp:
maybe-clean-stagetrain-gmp:
@if gmp-bootstrap
maybe-all-stagetrain-gmp: all-stagetrain-gmp
all-stagetrain: all-stagetrain-gmp
TARGET-stagetrain-gmp = $(TARGET-gmp)
all-stagetrain-gmp: configure-stagetrain-gmp
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gmp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-gmp)

maybe-clean-stagetrain-gmp: clean-stagetrain-gmp
clean-stagetrain: clean-stagetrain-gmp
clean-stagetrain-gmp:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/gmp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-gmp/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/gmp && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif gmp-bootstrap


.PHONY: all-stagefeedback-gmp maybe-all-stagefeedback-gmp
.PHONY: clean-stagefeedback-gmp maybe-clean-stagefeedback-gmp
maybe-all-stagefeedback-gmp:
maybe-clean-stagefeedback-gmp:
@if gmp-bootstrap
maybe-all-stagefeedback-gmp: all-stagefeedback-gmp
all-stagefeedback: all-stagefeedback-gmp
TARGET-stagefeedback-gmp = $(TARGET-gmp)
all-stagefeedback-gmp: configure-stagefeedback-gmp
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gmp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-gmp)

maybe-clean-stagefeedback-gmp: clean-stagefeedback-gmp
clean-stagefeedback: clean-stagefeedback-gmp
clean-stagefeedback-gmp:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/gmp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-gmp/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/gmp && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif gmp-bootstrap


.PHONY: all-stageautoprofile-gmp maybe-all-stageautoprofile-gmp
.PHONY: clean-stageautoprofile-gmp maybe-clean-stageautoprofile-gmp
maybe-all-stageautoprofile-gmp:
maybe-clean-stageautoprofile-gmp:
@if gmp-bootstrap
maybe-all-stageautoprofile-gmp: all-stageautoprofile-gmp
all-stageautoprofile: all-stageautoprofile-gmp
TARGET-stageautoprofile-gmp = $(TARGET-gmp)
all-stageautoprofile-gmp: configure-stageautoprofile-gmp
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gmp && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-gmp)

maybe-clean-stageautoprofile-gmp: clean-stageautoprofile-gmp
clean-stageautoprofile: clean-stageautoprofile-gmp
clean-stageautoprofile-gmp:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/gmp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-gmp/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/gmp && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif gmp-bootstrap


.PHONY: all-stageautofeedback-gmp maybe-all-stageautofeedback-gmp
.PHONY: clean-stageautofeedback-gmp maybe-clean-stageautofeedback-gmp
maybe-all-stageautofeedback-gmp:
maybe-clean-stageautofeedback-gmp:
@if gmp-bootstrap
maybe-all-stageautofeedback-gmp: all-stageautofeedback-gmp
all-stageautofeedback: all-stageautofeedback-gmp
TARGET-stageautofeedback-gmp = $(TARGET-gmp)
all-stageautofeedback-gmp: configure-stageautofeedback-gmp
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gmp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-gmp)

maybe-clean-stageautofeedback-gmp: clean-stageautofeedback-gmp
clean-stageautofeedback: clean-stageautofeedback-gmp
clean-stageautofeedback-gmp:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/gmp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-gmp/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/gmp && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif gmp-bootstrap





.PHONY: check-gmp maybe-check-gmp
maybe-check-gmp:
@if gmp
maybe-check-gmp: check-gmp

check-gmp:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gmp && \
	  $(MAKE) $(FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif gmp

.PHONY: install-gmp maybe-install-gmp
maybe-install-gmp:
@if gmp
maybe-install-gmp: install-gmp

install-gmp:

@endif gmp

.PHONY: install-strip-gmp maybe-install-strip-gmp
maybe-install-strip-gmp:
@if gmp
maybe-install-strip-gmp: install-strip-gmp

install-strip-gmp:

@endif gmp

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-gmp info-gmp
maybe-info-gmp:
@if gmp
maybe-info-gmp: info-gmp

info-gmp: \
    configure-gmp 
	@[ -f ./gmp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in gmp"; \
	(cd $(HOST_SUBDIR)/gmp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif gmp

.PHONY: maybe-dvi-gmp dvi-gmp
maybe-dvi-gmp:
@if gmp
maybe-dvi-gmp: dvi-gmp

dvi-gmp: \
    configure-gmp 
	@[ -f ./gmp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in gmp"; \
	(cd $(HOST_SUBDIR)/gmp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif gmp

.PHONY: maybe-pdf-gmp pdf-gmp
maybe-pdf-gmp:
@if gmp
maybe-pdf-gmp: pdf-gmp

pdf-gmp: \
    configure-gmp 
	@[ -f ./gmp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in gmp"; \
	(cd $(HOST_SUBDIR)/gmp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif gmp

.PHONY: maybe-html-gmp html-gmp
maybe-html-gmp:
@if gmp
maybe-html-gmp: html-gmp

html-gmp: \
    configure-gmp 
	@[ -f ./gmp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in gmp"; \
	(cd $(HOST_SUBDIR)/gmp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif gmp

.PHONY: maybe-TAGS-gmp TAGS-gmp
maybe-TAGS-gmp:
@if gmp
maybe-TAGS-gmp: TAGS-gmp

TAGS-gmp: \
    configure-gmp 
	@[ -f ./gmp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in gmp"; \
	(cd $(HOST_SUBDIR)/gmp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif gmp

.PHONY: maybe-install-info-gmp install-info-gmp
maybe-install-info-gmp:
@if gmp
maybe-install-info-gmp: install-info-gmp

install-info-gmp: \
    configure-gmp \
    info-gmp 
	@[ -f ./gmp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in gmp"; \
	(cd $(HOST_SUBDIR)/gmp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif gmp

.PHONY: maybe-install-pdf-gmp install-pdf-gmp
maybe-install-pdf-gmp:
@if gmp
maybe-install-pdf-gmp: install-pdf-gmp

install-pdf-gmp: \
    configure-gmp \
    pdf-gmp 
	@[ -f ./gmp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in gmp"; \
	(cd $(HOST_SUBDIR)/gmp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif gmp

.PHONY: maybe-install-html-gmp install-html-gmp
maybe-install-html-gmp:
@if gmp
maybe-install-html-gmp: install-html-gmp

install-html-gmp: \
    configure-gmp \
    html-gmp 
	@[ -f ./gmp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in gmp"; \
	(cd $(HOST_SUBDIR)/gmp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif gmp

.PHONY: maybe-installcheck-gmp installcheck-gmp
maybe-installcheck-gmp:
@if gmp
maybe-installcheck-gmp: installcheck-gmp

installcheck-gmp: \
    configure-gmp 
	@[ -f ./gmp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in gmp"; \
	(cd $(HOST_SUBDIR)/gmp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif gmp

.PHONY: maybe-mostlyclean-gmp mostlyclean-gmp
maybe-mostlyclean-gmp:
@if gmp
maybe-mostlyclean-gmp: mostlyclean-gmp

mostlyclean-gmp: 
	@[ -f ./gmp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in gmp"; \
	(cd $(HOST_SUBDIR)/gmp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif gmp

.PHONY: maybe-clean-gmp clean-gmp
maybe-clean-gmp:
@if gmp
maybe-clean-gmp: clean-gmp

clean-gmp: 
	@[ -f ./gmp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in gmp"; \
	(cd $(HOST_SUBDIR)/gmp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif gmp

.PHONY: maybe-distclean-gmp distclean-gmp
maybe-distclean-gmp:
@if gmp
maybe-distclean-gmp: distclean-gmp

distclean-gmp: 
	@[ -f ./gmp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in gmp"; \
	(cd $(HOST_SUBDIR)/gmp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif gmp

.PHONY: maybe-maintainer-clean-gmp maintainer-clean-gmp
maybe-maintainer-clean-gmp:
@if gmp
maybe-maintainer-clean-gmp: maintainer-clean-gmp

maintainer-clean-gmp: 
	@[ -f ./gmp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in gmp"; \
	(cd $(HOST_SUBDIR)/gmp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif gmp



.PHONY: configure-mpfr maybe-configure-mpfr
maybe-configure-mpfr:
@if gcc-bootstrap
configure-mpfr: stage_current
@endif gcc-bootstrap
@if mpfr
maybe-configure-mpfr: configure-mpfr
configure-mpfr: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/mpfr; \
	cd "$(HOST_SUBDIR)/mpfr" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpfr/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpfr; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} --disable-shared @extra_mpfr_configure_flags@ \
	  || exit 1
@endif mpfr



.PHONY: configure-stage1-mpfr maybe-configure-stage1-mpfr
maybe-configure-stage1-mpfr:
@if mpfr-bootstrap
maybe-configure-stage1-mpfr: configure-stage1-mpfr
configure-stage1-mpfr:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/mpfr; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr; \
	cd $(HOST_SUBDIR)/mpfr || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpfr/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpfr; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpfr_configure_flags@
@endif mpfr-bootstrap

.PHONY: configure-stage2-mpfr maybe-configure-stage2-mpfr
maybe-configure-stage2-mpfr:
@if mpfr-bootstrap
maybe-configure-stage2-mpfr: configure-stage2-mpfr
configure-stage2-mpfr:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/mpfr; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr; \
	cd $(HOST_SUBDIR)/mpfr || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpfr/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpfr; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpfr_configure_flags@
@endif mpfr-bootstrap

.PHONY: configure-stage3-mpfr maybe-configure-stage3-mpfr
maybe-configure-stage3-mpfr:
@if mpfr-bootstrap
maybe-configure-stage3-mpfr: configure-stage3-mpfr
configure-stage3-mpfr:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/mpfr; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr; \
	cd $(HOST_SUBDIR)/mpfr || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpfr/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpfr; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpfr_configure_flags@
@endif mpfr-bootstrap

.PHONY: configure-stage4-mpfr maybe-configure-stage4-mpfr
maybe-configure-stage4-mpfr:
@if mpfr-bootstrap
maybe-configure-stage4-mpfr: configure-stage4-mpfr
configure-stage4-mpfr:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/mpfr; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr; \
	cd $(HOST_SUBDIR)/mpfr || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpfr/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpfr; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpfr_configure_flags@
@endif mpfr-bootstrap

.PHONY: configure-stageprofile-mpfr maybe-configure-stageprofile-mpfr
maybe-configure-stageprofile-mpfr:
@if mpfr-bootstrap
maybe-configure-stageprofile-mpfr: configure-stageprofile-mpfr
configure-stageprofile-mpfr:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/mpfr; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr; \
	cd $(HOST_SUBDIR)/mpfr || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpfr/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpfr; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpfr_configure_flags@
@endif mpfr-bootstrap

.PHONY: configure-stagetrain-mpfr maybe-configure-stagetrain-mpfr
maybe-configure-stagetrain-mpfr:
@if mpfr-bootstrap
maybe-configure-stagetrain-mpfr: configure-stagetrain-mpfr
configure-stagetrain-mpfr:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/mpfr; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr; \
	cd $(HOST_SUBDIR)/mpfr || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpfr/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpfr; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpfr_configure_flags@
@endif mpfr-bootstrap

.PHONY: configure-stagefeedback-mpfr maybe-configure-stagefeedback-mpfr
maybe-configure-stagefeedback-mpfr:
@if mpfr-bootstrap
maybe-configure-stagefeedback-mpfr: configure-stagefeedback-mpfr
configure-stagefeedback-mpfr:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/mpfr; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr; \
	cd $(HOST_SUBDIR)/mpfr || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpfr/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpfr; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpfr_configure_flags@
@endif mpfr-bootstrap

.PHONY: configure-stageautoprofile-mpfr maybe-configure-stageautoprofile-mpfr
maybe-configure-stageautoprofile-mpfr:
@if mpfr-bootstrap
maybe-configure-stageautoprofile-mpfr: configure-stageautoprofile-mpfr
configure-stageautoprofile-mpfr:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/mpfr; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr; \
	cd $(HOST_SUBDIR)/mpfr || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpfr/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpfr; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpfr_configure_flags@
@endif mpfr-bootstrap

.PHONY: configure-stageautofeedback-mpfr maybe-configure-stageautofeedback-mpfr
maybe-configure-stageautofeedback-mpfr:
@if mpfr-bootstrap
maybe-configure-stageautofeedback-mpfr: configure-stageautofeedback-mpfr
configure-stageautofeedback-mpfr:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpfr/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/mpfr; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpfr; \
	cd $(HOST_SUBDIR)/mpfr || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpfr/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpfr; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpfr_configure_flags@
@endif mpfr-bootstrap





.PHONY: all-mpfr maybe-all-mpfr
maybe-all-mpfr:
@if gcc-bootstrap
all-mpfr: stage_current
@endif gcc-bootstrap
@if mpfr
TARGET-mpfr=all
maybe-all-mpfr: all-mpfr
all-mpfr: configure-mpfr
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/mpfr && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		$(TARGET-mpfr))
@endif mpfr



.PHONY: all-stage1-mpfr maybe-all-stage1-mpfr
.PHONY: clean-stage1-mpfr maybe-clean-stage1-mpfr
maybe-all-stage1-mpfr:
maybe-clean-stage1-mpfr:
@if mpfr-bootstrap
maybe-all-stage1-mpfr: all-stage1-mpfr
all-stage1: all-stage1-mpfr
TARGET-stage1-mpfr = $(TARGET-mpfr)
all-stage1-mpfr: configure-stage1-mpfr
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpfr && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-mpfr)

maybe-clean-stage1-mpfr: clean-stage1-mpfr
clean-stage1: clean-stage1-mpfr
clean-stage1-mpfr:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/mpfr/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-mpfr/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpfr && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif mpfr-bootstrap


.PHONY: all-stage2-mpfr maybe-all-stage2-mpfr
.PHONY: clean-stage2-mpfr maybe-clean-stage2-mpfr
maybe-all-stage2-mpfr:
maybe-clean-stage2-mpfr:
@if mpfr-bootstrap
maybe-all-stage2-mpfr: all-stage2-mpfr
all-stage2: all-stage2-mpfr
TARGET-stage2-mpfr = $(TARGET-mpfr)
all-stage2-mpfr: configure-stage2-mpfr
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpfr && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-mpfr)

maybe-clean-stage2-mpfr: clean-stage2-mpfr
clean-stage2: clean-stage2-mpfr
clean-stage2-mpfr:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/mpfr/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-mpfr/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpfr && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif mpfr-bootstrap


.PHONY: all-stage3-mpfr maybe-all-stage3-mpfr
.PHONY: clean-stage3-mpfr maybe-clean-stage3-mpfr
maybe-all-stage3-mpfr:
maybe-clean-stage3-mpfr:
@if mpfr-bootstrap
maybe-all-stage3-mpfr: all-stage3-mpfr
all-stage3: all-stage3-mpfr
TARGET-stage3-mpfr = $(TARGET-mpfr)
all-stage3-mpfr: configure-stage3-mpfr
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpfr && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-mpfr)

maybe-clean-stage3-mpfr: clean-stage3-mpfr
clean-stage3: clean-stage3-mpfr
clean-stage3-mpfr:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/mpfr/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-mpfr/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpfr && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif mpfr-bootstrap


.PHONY: all-stage4-mpfr maybe-all-stage4-mpfr
.PHONY: clean-stage4-mpfr maybe-clean-stage4-mpfr
maybe-all-stage4-mpfr:
maybe-clean-stage4-mpfr:
@if mpfr-bootstrap
maybe-all-stage4-mpfr: all-stage4-mpfr
all-stage4: all-stage4-mpfr
TARGET-stage4-mpfr = $(TARGET-mpfr)
all-stage4-mpfr: configure-stage4-mpfr
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpfr && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-mpfr)

maybe-clean-stage4-mpfr: clean-stage4-mpfr
clean-stage4: clean-stage4-mpfr
clean-stage4-mpfr:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/mpfr/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-mpfr/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpfr && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif mpfr-bootstrap


.PHONY: all-stageprofile-mpfr maybe-all-stageprofile-mpfr
.PHONY: clean-stageprofile-mpfr maybe-clean-stageprofile-mpfr
maybe-all-stageprofile-mpfr:
maybe-clean-stageprofile-mpfr:
@if mpfr-bootstrap
maybe-all-stageprofile-mpfr: all-stageprofile-mpfr
all-stageprofile: all-stageprofile-mpfr
TARGET-stageprofile-mpfr = $(TARGET-mpfr)
all-stageprofile-mpfr: configure-stageprofile-mpfr
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpfr && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-mpfr)

maybe-clean-stageprofile-mpfr: clean-stageprofile-mpfr
clean-stageprofile: clean-stageprofile-mpfr
clean-stageprofile-mpfr:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/mpfr/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-mpfr/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpfr && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif mpfr-bootstrap


.PHONY: all-stagetrain-mpfr maybe-all-stagetrain-mpfr
.PHONY: clean-stagetrain-mpfr maybe-clean-stagetrain-mpfr
maybe-all-stagetrain-mpfr:
maybe-clean-stagetrain-mpfr:
@if mpfr-bootstrap
maybe-all-stagetrain-mpfr: all-stagetrain-mpfr
all-stagetrain: all-stagetrain-mpfr
TARGET-stagetrain-mpfr = $(TARGET-mpfr)
all-stagetrain-mpfr: configure-stagetrain-mpfr
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpfr && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-mpfr)

maybe-clean-stagetrain-mpfr: clean-stagetrain-mpfr
clean-stagetrain: clean-stagetrain-mpfr
clean-stagetrain-mpfr:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/mpfr/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-mpfr/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpfr && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif mpfr-bootstrap


.PHONY: all-stagefeedback-mpfr maybe-all-stagefeedback-mpfr
.PHONY: clean-stagefeedback-mpfr maybe-clean-stagefeedback-mpfr
maybe-all-stagefeedback-mpfr:
maybe-clean-stagefeedback-mpfr:
@if mpfr-bootstrap
maybe-all-stagefeedback-mpfr: all-stagefeedback-mpfr
all-stagefeedback: all-stagefeedback-mpfr
TARGET-stagefeedback-mpfr = $(TARGET-mpfr)
all-stagefeedback-mpfr: configure-stagefeedback-mpfr
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpfr && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-mpfr)

maybe-clean-stagefeedback-mpfr: clean-stagefeedback-mpfr
clean-stagefeedback: clean-stagefeedback-mpfr
clean-stagefeedback-mpfr:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/mpfr/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-mpfr/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpfr && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif mpfr-bootstrap


.PHONY: all-stageautoprofile-mpfr maybe-all-stageautoprofile-mpfr
.PHONY: clean-stageautoprofile-mpfr maybe-clean-stageautoprofile-mpfr
maybe-all-stageautoprofile-mpfr:
maybe-clean-stageautoprofile-mpfr:
@if mpfr-bootstrap
maybe-all-stageautoprofile-mpfr: all-stageautoprofile-mpfr
all-stageautoprofile: all-stageautoprofile-mpfr
TARGET-stageautoprofile-mpfr = $(TARGET-mpfr)
all-stageautoprofile-mpfr: configure-stageautoprofile-mpfr
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpfr && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-mpfr)

maybe-clean-stageautoprofile-mpfr: clean-stageautoprofile-mpfr
clean-stageautoprofile: clean-stageautoprofile-mpfr
clean-stageautoprofile-mpfr:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/mpfr/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-mpfr/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpfr && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif mpfr-bootstrap


.PHONY: all-stageautofeedback-mpfr maybe-all-stageautofeedback-mpfr
.PHONY: clean-stageautofeedback-mpfr maybe-clean-stageautofeedback-mpfr
maybe-all-stageautofeedback-mpfr:
maybe-clean-stageautofeedback-mpfr:
@if mpfr-bootstrap
maybe-all-stageautofeedback-mpfr: all-stageautofeedback-mpfr
all-stageautofeedback: all-stageautofeedback-mpfr
TARGET-stageautofeedback-mpfr = $(TARGET-mpfr)
all-stageautofeedback-mpfr: configure-stageautofeedback-mpfr
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpfr && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-mpfr)

maybe-clean-stageautofeedback-mpfr: clean-stageautofeedback-mpfr
clean-stageautofeedback: clean-stageautofeedback-mpfr
clean-stageautofeedback-mpfr:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/mpfr/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-mpfr/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpfr && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" clean
@endif mpfr-bootstrap





.PHONY: check-mpfr maybe-check-mpfr
maybe-check-mpfr:
@if mpfr
maybe-check-mpfr: check-mpfr

check-mpfr:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/mpfr && \
	  $(MAKE) $(FLAGS_TO_PASS) AM_CFLAGS="-DNO_ASM" $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif mpfr

.PHONY: install-mpfr maybe-install-mpfr
maybe-install-mpfr:
@if mpfr
maybe-install-mpfr: install-mpfr

install-mpfr:

@endif mpfr

.PHONY: install-strip-mpfr maybe-install-strip-mpfr
maybe-install-strip-mpfr:
@if mpfr
maybe-install-strip-mpfr: install-strip-mpfr

install-strip-mpfr:

@endif mpfr

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-mpfr info-mpfr
maybe-info-mpfr:
@if mpfr
maybe-info-mpfr: info-mpfr

info-mpfr: \
    configure-mpfr 
	@[ -f ./mpfr/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in mpfr"; \
	(cd $(HOST_SUBDIR)/mpfr && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif mpfr

.PHONY: maybe-dvi-mpfr dvi-mpfr
maybe-dvi-mpfr:
@if mpfr
maybe-dvi-mpfr: dvi-mpfr

dvi-mpfr: \
    configure-mpfr 
	@[ -f ./mpfr/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in mpfr"; \
	(cd $(HOST_SUBDIR)/mpfr && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif mpfr

.PHONY: maybe-pdf-mpfr pdf-mpfr
maybe-pdf-mpfr:
@if mpfr
maybe-pdf-mpfr: pdf-mpfr

pdf-mpfr: \
    configure-mpfr 
	@[ -f ./mpfr/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in mpfr"; \
	(cd $(HOST_SUBDIR)/mpfr && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif mpfr

.PHONY: maybe-html-mpfr html-mpfr
maybe-html-mpfr:
@if mpfr
maybe-html-mpfr: html-mpfr

html-mpfr: \
    configure-mpfr 
	@[ -f ./mpfr/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in mpfr"; \
	(cd $(HOST_SUBDIR)/mpfr && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif mpfr

.PHONY: maybe-TAGS-mpfr TAGS-mpfr
maybe-TAGS-mpfr:
@if mpfr
maybe-TAGS-mpfr: TAGS-mpfr

TAGS-mpfr: \
    configure-mpfr 
	@[ -f ./mpfr/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in mpfr"; \
	(cd $(HOST_SUBDIR)/mpfr && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif mpfr

.PHONY: maybe-install-info-mpfr install-info-mpfr
maybe-install-info-mpfr:
@if mpfr
maybe-install-info-mpfr: install-info-mpfr

install-info-mpfr: \
    configure-mpfr \
    info-mpfr 
	@[ -f ./mpfr/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in mpfr"; \
	(cd $(HOST_SUBDIR)/mpfr && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif mpfr

.PHONY: maybe-install-pdf-mpfr install-pdf-mpfr
maybe-install-pdf-mpfr:
@if mpfr
maybe-install-pdf-mpfr: install-pdf-mpfr

install-pdf-mpfr: \
    configure-mpfr \
    pdf-mpfr 
	@[ -f ./mpfr/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in mpfr"; \
	(cd $(HOST_SUBDIR)/mpfr && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif mpfr

.PHONY: maybe-install-html-mpfr install-html-mpfr
maybe-install-html-mpfr:
@if mpfr
maybe-install-html-mpfr: install-html-mpfr

install-html-mpfr: \
    configure-mpfr \
    html-mpfr 
	@[ -f ./mpfr/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in mpfr"; \
	(cd $(HOST_SUBDIR)/mpfr && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif mpfr

.PHONY: maybe-installcheck-mpfr installcheck-mpfr
maybe-installcheck-mpfr:
@if mpfr
maybe-installcheck-mpfr: installcheck-mpfr

installcheck-mpfr: \
    configure-mpfr 
	@[ -f ./mpfr/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in mpfr"; \
	(cd $(HOST_SUBDIR)/mpfr && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif mpfr

.PHONY: maybe-mostlyclean-mpfr mostlyclean-mpfr
maybe-mostlyclean-mpfr:
@if mpfr
maybe-mostlyclean-mpfr: mostlyclean-mpfr

mostlyclean-mpfr: 
	@[ -f ./mpfr/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in mpfr"; \
	(cd $(HOST_SUBDIR)/mpfr && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif mpfr

.PHONY: maybe-clean-mpfr clean-mpfr
maybe-clean-mpfr:
@if mpfr
maybe-clean-mpfr: clean-mpfr

clean-mpfr: 
	@[ -f ./mpfr/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in mpfr"; \
	(cd $(HOST_SUBDIR)/mpfr && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif mpfr

.PHONY: maybe-distclean-mpfr distclean-mpfr
maybe-distclean-mpfr:
@if mpfr
maybe-distclean-mpfr: distclean-mpfr

distclean-mpfr: 
	@[ -f ./mpfr/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in mpfr"; \
	(cd $(HOST_SUBDIR)/mpfr && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif mpfr

.PHONY: maybe-maintainer-clean-mpfr maintainer-clean-mpfr
maybe-maintainer-clean-mpfr:
@if mpfr
maybe-maintainer-clean-mpfr: maintainer-clean-mpfr

maintainer-clean-mpfr: 
	@[ -f ./mpfr/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) AM_CFLAGS="-DNO_ASM"; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in mpfr"; \
	(cd $(HOST_SUBDIR)/mpfr && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif mpfr



.PHONY: configure-mpc maybe-configure-mpc
maybe-configure-mpc:
@if gcc-bootstrap
configure-mpc: stage_current
@endif gcc-bootstrap
@if mpc
maybe-configure-mpc: configure-mpc
configure-mpc: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/mpc; \
	cd "$(HOST_SUBDIR)/mpc" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpc; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode \
	  || exit 1
@endif mpc



.PHONY: configure-stage1-mpc maybe-configure-stage1-mpc
maybe-configure-stage1-mpc:
@if mpc-bootstrap
maybe-configure-stage1-mpc: configure-stage1-mpc
configure-stage1-mpc:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/mpc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc; \
	cd $(HOST_SUBDIR)/mpc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
@endif mpc-bootstrap

.PHONY: configure-stage2-mpc maybe-configure-stage2-mpc
maybe-configure-stage2-mpc:
@if mpc-bootstrap
maybe-configure-stage2-mpc: configure-stage2-mpc
configure-stage2-mpc:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/mpc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc; \
	cd $(HOST_SUBDIR)/mpc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
@endif mpc-bootstrap

.PHONY: configure-stage3-mpc maybe-configure-stage3-mpc
maybe-configure-stage3-mpc:
@if mpc-bootstrap
maybe-configure-stage3-mpc: configure-stage3-mpc
configure-stage3-mpc:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/mpc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc; \
	cd $(HOST_SUBDIR)/mpc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
@endif mpc-bootstrap

.PHONY: configure-stage4-mpc maybe-configure-stage4-mpc
maybe-configure-stage4-mpc:
@if mpc-bootstrap
maybe-configure-stage4-mpc: configure-stage4-mpc
configure-stage4-mpc:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/mpc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc; \
	cd $(HOST_SUBDIR)/mpc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
@endif mpc-bootstrap

.PHONY: configure-stageprofile-mpc maybe-configure-stageprofile-mpc
maybe-configure-stageprofile-mpc:
@if mpc-bootstrap
maybe-configure-stageprofile-mpc: configure-stageprofile-mpc
configure-stageprofile-mpc:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/mpc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc; \
	cd $(HOST_SUBDIR)/mpc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
@endif mpc-bootstrap

.PHONY: configure-stagetrain-mpc maybe-configure-stagetrain-mpc
maybe-configure-stagetrain-mpc:
@if mpc-bootstrap
maybe-configure-stagetrain-mpc: configure-stagetrain-mpc
configure-stagetrain-mpc:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/mpc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc; \
	cd $(HOST_SUBDIR)/mpc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
@endif mpc-bootstrap

.PHONY: configure-stagefeedback-mpc maybe-configure-stagefeedback-mpc
maybe-configure-stagefeedback-mpc:
@if mpc-bootstrap
maybe-configure-stagefeedback-mpc: configure-stagefeedback-mpc
configure-stagefeedback-mpc:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/mpc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc; \
	cd $(HOST_SUBDIR)/mpc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
@endif mpc-bootstrap

.PHONY: configure-stageautoprofile-mpc maybe-configure-stageautoprofile-mpc
maybe-configure-stageautoprofile-mpc:
@if mpc-bootstrap
maybe-configure-stageautoprofile-mpc: configure-stageautoprofile-mpc
configure-stageautoprofile-mpc:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/mpc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc; \
	cd $(HOST_SUBDIR)/mpc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
@endif mpc-bootstrap

.PHONY: configure-stageautofeedback-mpc maybe-configure-stageautofeedback-mpc
maybe-configure-stageautofeedback-mpc:
@if mpc-bootstrap
maybe-configure-stageautofeedback-mpc: configure-stageautofeedback-mpc
configure-stageautofeedback-mpc:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/mpc/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/mpc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/mpc; \
	cd $(HOST_SUBDIR)/mpc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/mpc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=mpc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS) \
	  --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
@endif mpc-bootstrap





.PHONY: all-mpc maybe-all-mpc
maybe-all-mpc:
@if gcc-bootstrap
all-mpc: stage_current
@endif gcc-bootstrap
@if mpc
TARGET-mpc=all
maybe-all-mpc: all-mpc
all-mpc: configure-mpc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/mpc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-mpc))
@endif mpc



.PHONY: all-stage1-mpc maybe-all-stage1-mpc
.PHONY: clean-stage1-mpc maybe-clean-stage1-mpc
maybe-all-stage1-mpc:
maybe-clean-stage1-mpc:
@if mpc-bootstrap
maybe-all-stage1-mpc: all-stage1-mpc
all-stage1: all-stage1-mpc
TARGET-stage1-mpc = $(TARGET-mpc)
all-stage1-mpc: configure-stage1-mpc
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-mpc)

maybe-clean-stage1-mpc: clean-stage1-mpc
clean-stage1: clean-stage1-mpc
clean-stage1-mpc:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/mpc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-mpc/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpc && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS)  clean
@endif mpc-bootstrap


.PHONY: all-stage2-mpc maybe-all-stage2-mpc
.PHONY: clean-stage2-mpc maybe-clean-stage2-mpc
maybe-all-stage2-mpc:
maybe-clean-stage2-mpc:
@if mpc-bootstrap
maybe-all-stage2-mpc: all-stage2-mpc
all-stage2: all-stage2-mpc
TARGET-stage2-mpc = $(TARGET-mpc)
all-stage2-mpc: configure-stage2-mpc
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-mpc)

maybe-clean-stage2-mpc: clean-stage2-mpc
clean-stage2: clean-stage2-mpc
clean-stage2-mpc:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/mpc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-mpc/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpc && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif mpc-bootstrap


.PHONY: all-stage3-mpc maybe-all-stage3-mpc
.PHONY: clean-stage3-mpc maybe-clean-stage3-mpc
maybe-all-stage3-mpc:
maybe-clean-stage3-mpc:
@if mpc-bootstrap
maybe-all-stage3-mpc: all-stage3-mpc
all-stage3: all-stage3-mpc
TARGET-stage3-mpc = $(TARGET-mpc)
all-stage3-mpc: configure-stage3-mpc
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-mpc)

maybe-clean-stage3-mpc: clean-stage3-mpc
clean-stage3: clean-stage3-mpc
clean-stage3-mpc:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/mpc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-mpc/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpc && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif mpc-bootstrap


.PHONY: all-stage4-mpc maybe-all-stage4-mpc
.PHONY: clean-stage4-mpc maybe-clean-stage4-mpc
maybe-all-stage4-mpc:
maybe-clean-stage4-mpc:
@if mpc-bootstrap
maybe-all-stage4-mpc: all-stage4-mpc
all-stage4: all-stage4-mpc
TARGET-stage4-mpc = $(TARGET-mpc)
all-stage4-mpc: configure-stage4-mpc
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-mpc)

maybe-clean-stage4-mpc: clean-stage4-mpc
clean-stage4: clean-stage4-mpc
clean-stage4-mpc:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/mpc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-mpc/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpc && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif mpc-bootstrap


.PHONY: all-stageprofile-mpc maybe-all-stageprofile-mpc
.PHONY: clean-stageprofile-mpc maybe-clean-stageprofile-mpc
maybe-all-stageprofile-mpc:
maybe-clean-stageprofile-mpc:
@if mpc-bootstrap
maybe-all-stageprofile-mpc: all-stageprofile-mpc
all-stageprofile: all-stageprofile-mpc
TARGET-stageprofile-mpc = $(TARGET-mpc)
all-stageprofile-mpc: configure-stageprofile-mpc
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-mpc)

maybe-clean-stageprofile-mpc: clean-stageprofile-mpc
clean-stageprofile: clean-stageprofile-mpc
clean-stageprofile-mpc:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/mpc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-mpc/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpc && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif mpc-bootstrap


.PHONY: all-stagetrain-mpc maybe-all-stagetrain-mpc
.PHONY: clean-stagetrain-mpc maybe-clean-stagetrain-mpc
maybe-all-stagetrain-mpc:
maybe-clean-stagetrain-mpc:
@if mpc-bootstrap
maybe-all-stagetrain-mpc: all-stagetrain-mpc
all-stagetrain: all-stagetrain-mpc
TARGET-stagetrain-mpc = $(TARGET-mpc)
all-stagetrain-mpc: configure-stagetrain-mpc
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-mpc)

maybe-clean-stagetrain-mpc: clean-stagetrain-mpc
clean-stagetrain: clean-stagetrain-mpc
clean-stagetrain-mpc:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/mpc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-mpc/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpc && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif mpc-bootstrap


.PHONY: all-stagefeedback-mpc maybe-all-stagefeedback-mpc
.PHONY: clean-stagefeedback-mpc maybe-clean-stagefeedback-mpc
maybe-all-stagefeedback-mpc:
maybe-clean-stagefeedback-mpc:
@if mpc-bootstrap
maybe-all-stagefeedback-mpc: all-stagefeedback-mpc
all-stagefeedback: all-stagefeedback-mpc
TARGET-stagefeedback-mpc = $(TARGET-mpc)
all-stagefeedback-mpc: configure-stagefeedback-mpc
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-mpc)

maybe-clean-stagefeedback-mpc: clean-stagefeedback-mpc
clean-stagefeedback: clean-stagefeedback-mpc
clean-stagefeedback-mpc:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/mpc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-mpc/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpc && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif mpc-bootstrap


.PHONY: all-stageautoprofile-mpc maybe-all-stageautoprofile-mpc
.PHONY: clean-stageautoprofile-mpc maybe-clean-stageautoprofile-mpc
maybe-all-stageautoprofile-mpc:
maybe-clean-stageautoprofile-mpc:
@if mpc-bootstrap
maybe-all-stageautoprofile-mpc: all-stageautoprofile-mpc
all-stageautoprofile: all-stageautoprofile-mpc
TARGET-stageautoprofile-mpc = $(TARGET-mpc)
all-stageautoprofile-mpc: configure-stageautoprofile-mpc
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpc && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-mpc)

maybe-clean-stageautoprofile-mpc: clean-stageautoprofile-mpc
clean-stageautoprofile: clean-stageautoprofile-mpc
clean-stageautoprofile-mpc:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/mpc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-mpc/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpc && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif mpc-bootstrap


.PHONY: all-stageautofeedback-mpc maybe-all-stageautofeedback-mpc
.PHONY: clean-stageautofeedback-mpc maybe-clean-stageautofeedback-mpc
maybe-all-stageautofeedback-mpc:
maybe-clean-stageautofeedback-mpc:
@if mpc-bootstrap
maybe-all-stageautofeedback-mpc: all-stageautofeedback-mpc
all-stageautofeedback: all-stageautofeedback-mpc
TARGET-stageautofeedback-mpc = $(TARGET-mpc)
all-stageautofeedback-mpc: configure-stageautofeedback-mpc
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/mpc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-mpc)

maybe-clean-stageautofeedback-mpc: clean-stageautofeedback-mpc
clean-stageautofeedback: clean-stageautofeedback-mpc
clean-stageautofeedback-mpc:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/mpc/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-mpc/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/mpc && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif mpc-bootstrap





.PHONY: check-mpc maybe-check-mpc
maybe-check-mpc:
@if mpc
maybe-check-mpc: check-mpc

check-mpc:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/mpc && \
	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif mpc

.PHONY: install-mpc maybe-install-mpc
maybe-install-mpc:
@if mpc
maybe-install-mpc: install-mpc

install-mpc:

@endif mpc

.PHONY: install-strip-mpc maybe-install-strip-mpc
maybe-install-strip-mpc:
@if mpc
maybe-install-strip-mpc: install-strip-mpc

install-strip-mpc:

@endif mpc

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-mpc info-mpc
maybe-info-mpc:
@if mpc
maybe-info-mpc: info-mpc

info-mpc: \
    configure-mpc 
	@[ -f ./mpc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in mpc"; \
	(cd $(HOST_SUBDIR)/mpc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif mpc

.PHONY: maybe-dvi-mpc dvi-mpc
maybe-dvi-mpc:
@if mpc
maybe-dvi-mpc: dvi-mpc

dvi-mpc: \
    configure-mpc 
	@[ -f ./mpc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in mpc"; \
	(cd $(HOST_SUBDIR)/mpc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif mpc

.PHONY: maybe-pdf-mpc pdf-mpc
maybe-pdf-mpc:
@if mpc
maybe-pdf-mpc: pdf-mpc

pdf-mpc: \
    configure-mpc 
	@[ -f ./mpc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in mpc"; \
	(cd $(HOST_SUBDIR)/mpc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif mpc

.PHONY: maybe-html-mpc html-mpc
maybe-html-mpc:
@if mpc
maybe-html-mpc: html-mpc

html-mpc: \
    configure-mpc 
	@[ -f ./mpc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in mpc"; \
	(cd $(HOST_SUBDIR)/mpc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif mpc

.PHONY: maybe-TAGS-mpc TAGS-mpc
maybe-TAGS-mpc:
@if mpc
maybe-TAGS-mpc: TAGS-mpc

TAGS-mpc: \
    configure-mpc 
	@[ -f ./mpc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in mpc"; \
	(cd $(HOST_SUBDIR)/mpc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif mpc

.PHONY: maybe-install-info-mpc install-info-mpc
maybe-install-info-mpc:
@if mpc
maybe-install-info-mpc: install-info-mpc

install-info-mpc: \
    configure-mpc \
    info-mpc 
	@[ -f ./mpc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in mpc"; \
	(cd $(HOST_SUBDIR)/mpc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif mpc

.PHONY: maybe-install-pdf-mpc install-pdf-mpc
maybe-install-pdf-mpc:
@if mpc
maybe-install-pdf-mpc: install-pdf-mpc

install-pdf-mpc: \
    configure-mpc \
    pdf-mpc 
	@[ -f ./mpc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in mpc"; \
	(cd $(HOST_SUBDIR)/mpc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif mpc

.PHONY: maybe-install-html-mpc install-html-mpc
maybe-install-html-mpc:
@if mpc
maybe-install-html-mpc: install-html-mpc

install-html-mpc: \
    configure-mpc \
    html-mpc 
	@[ -f ./mpc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in mpc"; \
	(cd $(HOST_SUBDIR)/mpc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif mpc

.PHONY: maybe-installcheck-mpc installcheck-mpc
maybe-installcheck-mpc:
@if mpc
maybe-installcheck-mpc: installcheck-mpc

installcheck-mpc: \
    configure-mpc 
	@[ -f ./mpc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in mpc"; \
	(cd $(HOST_SUBDIR)/mpc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif mpc

.PHONY: maybe-mostlyclean-mpc mostlyclean-mpc
maybe-mostlyclean-mpc:
@if mpc
maybe-mostlyclean-mpc: mostlyclean-mpc

mostlyclean-mpc: 
	@[ -f ./mpc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in mpc"; \
	(cd $(HOST_SUBDIR)/mpc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif mpc

.PHONY: maybe-clean-mpc clean-mpc
maybe-clean-mpc:
@if mpc
maybe-clean-mpc: clean-mpc

clean-mpc: 
	@[ -f ./mpc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in mpc"; \
	(cd $(HOST_SUBDIR)/mpc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif mpc

.PHONY: maybe-distclean-mpc distclean-mpc
maybe-distclean-mpc:
@if mpc
maybe-distclean-mpc: distclean-mpc

distclean-mpc: 
	@[ -f ./mpc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in mpc"; \
	(cd $(HOST_SUBDIR)/mpc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif mpc

.PHONY: maybe-maintainer-clean-mpc maintainer-clean-mpc
maybe-maintainer-clean-mpc:
@if mpc
maybe-maintainer-clean-mpc: maintainer-clean-mpc

maintainer-clean-mpc: 
	@[ -f ./mpc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in mpc"; \
	(cd $(HOST_SUBDIR)/mpc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif mpc



.PHONY: configure-isl maybe-configure-isl
maybe-configure-isl:
@if gcc-bootstrap
configure-isl: stage_current
@endif gcc-bootstrap
@if isl
maybe-configure-isl: configure-isl
configure-isl: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/isl/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/isl; \
	cd "$(HOST_SUBDIR)/isl" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/isl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=isl; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} --disable-shared @extra_isl_gmp_configure_flags@ \
	  || exit 1
@endif isl



.PHONY: configure-stage1-isl maybe-configure-stage1-isl
maybe-configure-stage1-isl:
@if isl-bootstrap
maybe-configure-stage1-isl: configure-stage1-isl
configure-stage1-isl:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/isl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/isl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl; \
	cd $(HOST_SUBDIR)/isl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/isl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=isl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS) \
	  --disable-shared @extra_isl_gmp_configure_flags@
@endif isl-bootstrap

.PHONY: configure-stage2-isl maybe-configure-stage2-isl
maybe-configure-stage2-isl:
@if isl-bootstrap
maybe-configure-stage2-isl: configure-stage2-isl
configure-stage2-isl:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/isl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/isl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl; \
	cd $(HOST_SUBDIR)/isl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/isl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=isl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS) \
	  --disable-shared @extra_isl_gmp_configure_flags@
@endif isl-bootstrap

.PHONY: configure-stage3-isl maybe-configure-stage3-isl
maybe-configure-stage3-isl:
@if isl-bootstrap
maybe-configure-stage3-isl: configure-stage3-isl
configure-stage3-isl:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/isl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/isl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl; \
	cd $(HOST_SUBDIR)/isl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/isl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=isl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS) \
	  --disable-shared @extra_isl_gmp_configure_flags@
@endif isl-bootstrap

.PHONY: configure-stage4-isl maybe-configure-stage4-isl
maybe-configure-stage4-isl:
@if isl-bootstrap
maybe-configure-stage4-isl: configure-stage4-isl
configure-stage4-isl:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/isl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/isl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl; \
	cd $(HOST_SUBDIR)/isl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/isl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=isl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS) \
	  --disable-shared @extra_isl_gmp_configure_flags@
@endif isl-bootstrap

.PHONY: configure-stageprofile-isl maybe-configure-stageprofile-isl
maybe-configure-stageprofile-isl:
@if isl-bootstrap
maybe-configure-stageprofile-isl: configure-stageprofile-isl
configure-stageprofile-isl:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/isl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/isl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl; \
	cd $(HOST_SUBDIR)/isl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/isl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=isl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS) \
	  --disable-shared @extra_isl_gmp_configure_flags@
@endif isl-bootstrap

.PHONY: configure-stagetrain-isl maybe-configure-stagetrain-isl
maybe-configure-stagetrain-isl:
@if isl-bootstrap
maybe-configure-stagetrain-isl: configure-stagetrain-isl
configure-stagetrain-isl:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/isl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/isl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl; \
	cd $(HOST_SUBDIR)/isl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/isl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=isl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS) \
	  --disable-shared @extra_isl_gmp_configure_flags@
@endif isl-bootstrap

.PHONY: configure-stagefeedback-isl maybe-configure-stagefeedback-isl
maybe-configure-stagefeedback-isl:
@if isl-bootstrap
maybe-configure-stagefeedback-isl: configure-stagefeedback-isl
configure-stagefeedback-isl:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/isl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/isl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl; \
	cd $(HOST_SUBDIR)/isl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/isl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=isl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS) \
	  --disable-shared @extra_isl_gmp_configure_flags@
@endif isl-bootstrap

.PHONY: configure-stageautoprofile-isl maybe-configure-stageautoprofile-isl
maybe-configure-stageautoprofile-isl:
@if isl-bootstrap
maybe-configure-stageautoprofile-isl: configure-stageautoprofile-isl
configure-stageautoprofile-isl:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/isl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/isl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl; \
	cd $(HOST_SUBDIR)/isl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/isl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=isl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS) \
	  --disable-shared @extra_isl_gmp_configure_flags@
@endif isl-bootstrap

.PHONY: configure-stageautofeedback-isl maybe-configure-stageautofeedback-isl
maybe-configure-stageautofeedback-isl:
@if isl-bootstrap
maybe-configure-stageautofeedback-isl: configure-stageautofeedback-isl
configure-stageautofeedback-isl:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/isl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/isl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/isl; \
	cd $(HOST_SUBDIR)/isl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/isl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=isl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS) \
	  --disable-shared @extra_isl_gmp_configure_flags@
@endif isl-bootstrap





.PHONY: all-isl maybe-all-isl
maybe-all-isl:
@if gcc-bootstrap
all-isl: stage_current
@endif gcc-bootstrap
@if isl
TARGET-isl=all
maybe-all-isl: all-isl
all-isl: configure-isl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/isl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS) V=1 \
		$(TARGET-isl))
@endif isl



.PHONY: all-stage1-isl maybe-all-stage1-isl
.PHONY: clean-stage1-isl maybe-clean-stage1-isl
maybe-all-stage1-isl:
maybe-clean-stage1-isl:
@if isl-bootstrap
maybe-all-stage1-isl: all-stage1-isl
all-stage1: all-stage1-isl
TARGET-stage1-isl = $(TARGET-isl)
all-stage1-isl: configure-stage1-isl
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/isl && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS) V=1 \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-isl)

maybe-clean-stage1-isl: clean-stage1-isl
clean-stage1: clean-stage1-isl
clean-stage1-isl:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/isl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-isl/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/isl && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS) V=1 clean
@endif isl-bootstrap


.PHONY: all-stage2-isl maybe-all-stage2-isl
.PHONY: clean-stage2-isl maybe-clean-stage2-isl
maybe-all-stage2-isl:
maybe-clean-stage2-isl:
@if isl-bootstrap
maybe-all-stage2-isl: all-stage2-isl
all-stage2: all-stage2-isl
TARGET-stage2-isl = $(TARGET-isl)
all-stage2-isl: configure-stage2-isl
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/isl && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) V=1 \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-isl)

maybe-clean-stage2-isl: clean-stage2-isl
clean-stage2: clean-stage2-isl
clean-stage2-isl:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/isl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-isl/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/isl && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) V=1 clean
@endif isl-bootstrap


.PHONY: all-stage3-isl maybe-all-stage3-isl
.PHONY: clean-stage3-isl maybe-clean-stage3-isl
maybe-all-stage3-isl:
maybe-clean-stage3-isl:
@if isl-bootstrap
maybe-all-stage3-isl: all-stage3-isl
all-stage3: all-stage3-isl
TARGET-stage3-isl = $(TARGET-isl)
all-stage3-isl: configure-stage3-isl
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/isl && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) V=1 \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-isl)

maybe-clean-stage3-isl: clean-stage3-isl
clean-stage3: clean-stage3-isl
clean-stage3-isl:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/isl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-isl/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/isl && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) V=1 clean
@endif isl-bootstrap


.PHONY: all-stage4-isl maybe-all-stage4-isl
.PHONY: clean-stage4-isl maybe-clean-stage4-isl
maybe-all-stage4-isl:
maybe-clean-stage4-isl:
@if isl-bootstrap
maybe-all-stage4-isl: all-stage4-isl
all-stage4: all-stage4-isl
TARGET-stage4-isl = $(TARGET-isl)
all-stage4-isl: configure-stage4-isl
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/isl && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) V=1 \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-isl)

maybe-clean-stage4-isl: clean-stage4-isl
clean-stage4: clean-stage4-isl
clean-stage4-isl:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/isl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-isl/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/isl && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) V=1 clean
@endif isl-bootstrap


.PHONY: all-stageprofile-isl maybe-all-stageprofile-isl
.PHONY: clean-stageprofile-isl maybe-clean-stageprofile-isl
maybe-all-stageprofile-isl:
maybe-clean-stageprofile-isl:
@if isl-bootstrap
maybe-all-stageprofile-isl: all-stageprofile-isl
all-stageprofile: all-stageprofile-isl
TARGET-stageprofile-isl = $(TARGET-isl)
all-stageprofile-isl: configure-stageprofile-isl
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/isl && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) V=1 \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-isl)

maybe-clean-stageprofile-isl: clean-stageprofile-isl
clean-stageprofile: clean-stageprofile-isl
clean-stageprofile-isl:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/isl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-isl/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/isl && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) V=1 clean
@endif isl-bootstrap


.PHONY: all-stagetrain-isl maybe-all-stagetrain-isl
.PHONY: clean-stagetrain-isl maybe-clean-stagetrain-isl
maybe-all-stagetrain-isl:
maybe-clean-stagetrain-isl:
@if isl-bootstrap
maybe-all-stagetrain-isl: all-stagetrain-isl
all-stagetrain: all-stagetrain-isl
TARGET-stagetrain-isl = $(TARGET-isl)
all-stagetrain-isl: configure-stagetrain-isl
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/isl && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) V=1 \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-isl)

maybe-clean-stagetrain-isl: clean-stagetrain-isl
clean-stagetrain: clean-stagetrain-isl
clean-stagetrain-isl:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/isl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-isl/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/isl && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) V=1 clean
@endif isl-bootstrap


.PHONY: all-stagefeedback-isl maybe-all-stagefeedback-isl
.PHONY: clean-stagefeedback-isl maybe-clean-stagefeedback-isl
maybe-all-stagefeedback-isl:
maybe-clean-stagefeedback-isl:
@if isl-bootstrap
maybe-all-stagefeedback-isl: all-stagefeedback-isl
all-stagefeedback: all-stagefeedback-isl
TARGET-stagefeedback-isl = $(TARGET-isl)
all-stagefeedback-isl: configure-stagefeedback-isl
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/isl && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) V=1 \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-isl)

maybe-clean-stagefeedback-isl: clean-stagefeedback-isl
clean-stagefeedback: clean-stagefeedback-isl
clean-stagefeedback-isl:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/isl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-isl/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/isl && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) V=1 clean
@endif isl-bootstrap


.PHONY: all-stageautoprofile-isl maybe-all-stageautoprofile-isl
.PHONY: clean-stageautoprofile-isl maybe-clean-stageautoprofile-isl
maybe-all-stageautoprofile-isl:
maybe-clean-stageautoprofile-isl:
@if isl-bootstrap
maybe-all-stageautoprofile-isl: all-stageautoprofile-isl
all-stageautoprofile: all-stageautoprofile-isl
TARGET-stageautoprofile-isl = $(TARGET-isl)
all-stageautoprofile-isl: configure-stageautoprofile-isl
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/isl && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) V=1 \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-isl)

maybe-clean-stageautoprofile-isl: clean-stageautoprofile-isl
clean-stageautoprofile: clean-stageautoprofile-isl
clean-stageautoprofile-isl:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/isl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-isl/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/isl && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) V=1 clean
@endif isl-bootstrap


.PHONY: all-stageautofeedback-isl maybe-all-stageautofeedback-isl
.PHONY: clean-stageautofeedback-isl maybe-clean-stageautofeedback-isl
maybe-all-stageautofeedback-isl:
maybe-clean-stageautofeedback-isl:
@if isl-bootstrap
maybe-all-stageautofeedback-isl: all-stageautofeedback-isl
all-stageautofeedback: all-stageautofeedback-isl
TARGET-stageautofeedback-isl = $(TARGET-isl)
all-stageautofeedback-isl: configure-stageautofeedback-isl
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/isl && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) V=1 \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-isl)

maybe-clean-stageautofeedback-isl: clean-stageautofeedback-isl
clean-stageautofeedback: clean-stageautofeedback-isl
clean-stageautofeedback-isl:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/isl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-isl/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/isl && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) V=1 clean
@endif isl-bootstrap





.PHONY: check-isl maybe-check-isl
maybe-check-isl:
@if isl
maybe-check-isl: check-isl

check-isl:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/isl && \
	  $(MAKE) $(FLAGS_TO_PASS) V=1 $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif isl

.PHONY: install-isl maybe-install-isl
maybe-install-isl:
@if isl
maybe-install-isl: install-isl

install-isl:

@endif isl

.PHONY: install-strip-isl maybe-install-strip-isl
maybe-install-strip-isl:
@if isl
maybe-install-strip-isl: install-strip-isl

install-strip-isl:

@endif isl

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-isl info-isl
maybe-info-isl:
@if isl
maybe-info-isl: info-isl

info-isl: \
    configure-isl 
	@[ -f ./isl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) V=1; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in isl"; \
	(cd $(HOST_SUBDIR)/isl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif isl

.PHONY: maybe-dvi-isl dvi-isl
maybe-dvi-isl:
@if isl
maybe-dvi-isl: dvi-isl

dvi-isl: \
    configure-isl 
	@[ -f ./isl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) V=1; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in isl"; \
	(cd $(HOST_SUBDIR)/isl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif isl

.PHONY: maybe-pdf-isl pdf-isl
maybe-pdf-isl:
@if isl
maybe-pdf-isl: pdf-isl

pdf-isl: \
    configure-isl 
	@[ -f ./isl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) V=1; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in isl"; \
	(cd $(HOST_SUBDIR)/isl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif isl

.PHONY: maybe-html-isl html-isl
maybe-html-isl:
@if isl
maybe-html-isl: html-isl

html-isl: \
    configure-isl 
	@[ -f ./isl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) V=1; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in isl"; \
	(cd $(HOST_SUBDIR)/isl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif isl

.PHONY: maybe-TAGS-isl TAGS-isl
maybe-TAGS-isl:
@if isl
maybe-TAGS-isl: TAGS-isl

TAGS-isl: \
    configure-isl 
	@[ -f ./isl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) V=1; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in isl"; \
	(cd $(HOST_SUBDIR)/isl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif isl

.PHONY: maybe-install-info-isl install-info-isl
maybe-install-info-isl:
@if isl
maybe-install-info-isl: install-info-isl

install-info-isl: \
    configure-isl \
    info-isl 
	@[ -f ./isl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) V=1; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in isl"; \
	(cd $(HOST_SUBDIR)/isl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif isl

.PHONY: maybe-install-pdf-isl install-pdf-isl
maybe-install-pdf-isl:
@if isl
maybe-install-pdf-isl: install-pdf-isl

install-pdf-isl: \
    configure-isl \
    pdf-isl 
	@[ -f ./isl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) V=1; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in isl"; \
	(cd $(HOST_SUBDIR)/isl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif isl

.PHONY: maybe-install-html-isl install-html-isl
maybe-install-html-isl:
@if isl
maybe-install-html-isl: install-html-isl

install-html-isl: \
    configure-isl \
    html-isl 
	@[ -f ./isl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) V=1; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in isl"; \
	(cd $(HOST_SUBDIR)/isl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif isl

.PHONY: maybe-installcheck-isl installcheck-isl
maybe-installcheck-isl:
@if isl
maybe-installcheck-isl: installcheck-isl

installcheck-isl: \
    configure-isl 
	@[ -f ./isl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) V=1; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in isl"; \
	(cd $(HOST_SUBDIR)/isl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif isl

.PHONY: maybe-mostlyclean-isl mostlyclean-isl
maybe-mostlyclean-isl:
@if isl
maybe-mostlyclean-isl: mostlyclean-isl

mostlyclean-isl: 
	@[ -f ./isl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) V=1; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in isl"; \
	(cd $(HOST_SUBDIR)/isl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif isl

.PHONY: maybe-clean-isl clean-isl
maybe-clean-isl:
@if isl
maybe-clean-isl: clean-isl

clean-isl: 
	@[ -f ./isl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) V=1; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in isl"; \
	(cd $(HOST_SUBDIR)/isl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif isl

.PHONY: maybe-distclean-isl distclean-isl
maybe-distclean-isl:
@if isl
maybe-distclean-isl: distclean-isl

distclean-isl: 
	@[ -f ./isl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) V=1; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in isl"; \
	(cd $(HOST_SUBDIR)/isl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif isl

.PHONY: maybe-maintainer-clean-isl maintainer-clean-isl
maybe-maintainer-clean-isl:
@if isl
maybe-maintainer-clean-isl: maintainer-clean-isl

maintainer-clean-isl: 
	@[ -f ./isl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) V=1; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in isl"; \
	(cd $(HOST_SUBDIR)/isl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif isl



.PHONY: configure-libelf maybe-configure-libelf
maybe-configure-libelf:
@if gcc-bootstrap
configure-libelf: stage_current
@endif gcc-bootstrap
@if libelf
maybe-configure-libelf: configure-libelf
configure-libelf: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/libelf/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/libelf; \
	cd "$(HOST_SUBDIR)/libelf" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libelf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libelf; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} --disable-shared \
	  || exit 1
@endif libelf



.PHONY: configure-stage1-libelf maybe-configure-stage1-libelf
maybe-configure-stage1-libelf:
@if libelf-bootstrap
maybe-configure-stage1-libelf: configure-stage1-libelf
configure-stage1-libelf:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libelf/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/libelf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf; \
	cd $(HOST_SUBDIR)/libelf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libelf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libelf; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libelf-bootstrap

.PHONY: configure-stage2-libelf maybe-configure-stage2-libelf
maybe-configure-stage2-libelf:
@if libelf-bootstrap
maybe-configure-stage2-libelf: configure-stage2-libelf
configure-stage2-libelf:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libelf/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/libelf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf; \
	cd $(HOST_SUBDIR)/libelf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libelf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libelf; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libelf-bootstrap

.PHONY: configure-stage3-libelf maybe-configure-stage3-libelf
maybe-configure-stage3-libelf:
@if libelf-bootstrap
maybe-configure-stage3-libelf: configure-stage3-libelf
configure-stage3-libelf:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libelf/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/libelf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf; \
	cd $(HOST_SUBDIR)/libelf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libelf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libelf; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libelf-bootstrap

.PHONY: configure-stage4-libelf maybe-configure-stage4-libelf
maybe-configure-stage4-libelf:
@if libelf-bootstrap
maybe-configure-stage4-libelf: configure-stage4-libelf
configure-stage4-libelf:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libelf/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/libelf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf; \
	cd $(HOST_SUBDIR)/libelf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libelf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libelf; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libelf-bootstrap

.PHONY: configure-stageprofile-libelf maybe-configure-stageprofile-libelf
maybe-configure-stageprofile-libelf:
@if libelf-bootstrap
maybe-configure-stageprofile-libelf: configure-stageprofile-libelf
configure-stageprofile-libelf:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libelf/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/libelf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf; \
	cd $(HOST_SUBDIR)/libelf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libelf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libelf; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libelf-bootstrap

.PHONY: configure-stagetrain-libelf maybe-configure-stagetrain-libelf
maybe-configure-stagetrain-libelf:
@if libelf-bootstrap
maybe-configure-stagetrain-libelf: configure-stagetrain-libelf
configure-stagetrain-libelf:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libelf/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/libelf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf; \
	cd $(HOST_SUBDIR)/libelf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libelf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libelf; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libelf-bootstrap

.PHONY: configure-stagefeedback-libelf maybe-configure-stagefeedback-libelf
maybe-configure-stagefeedback-libelf:
@if libelf-bootstrap
maybe-configure-stagefeedback-libelf: configure-stagefeedback-libelf
configure-stagefeedback-libelf:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libelf/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/libelf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf; \
	cd $(HOST_SUBDIR)/libelf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libelf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libelf; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libelf-bootstrap

.PHONY: configure-stageautoprofile-libelf maybe-configure-stageautoprofile-libelf
maybe-configure-stageautoprofile-libelf:
@if libelf-bootstrap
maybe-configure-stageautoprofile-libelf: configure-stageautoprofile-libelf
configure-stageautoprofile-libelf:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libelf/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/libelf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf; \
	cd $(HOST_SUBDIR)/libelf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libelf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libelf; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libelf-bootstrap

.PHONY: configure-stageautofeedback-libelf maybe-configure-stageautofeedback-libelf
maybe-configure-stageautofeedback-libelf:
@if libelf-bootstrap
maybe-configure-stageautofeedback-libelf: configure-stageautofeedback-libelf
configure-stageautofeedback-libelf:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libelf/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/libelf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libelf; \
	cd $(HOST_SUBDIR)/libelf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libelf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libelf; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libelf-bootstrap





.PHONY: all-libelf maybe-all-libelf
maybe-all-libelf:
@if gcc-bootstrap
all-libelf: stage_current
@endif gcc-bootstrap
@if libelf
TARGET-libelf=all
maybe-all-libelf: all-libelf
all-libelf: configure-libelf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/libelf && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-libelf))
@endif libelf



.PHONY: all-stage1-libelf maybe-all-stage1-libelf
.PHONY: clean-stage1-libelf maybe-clean-stage1-libelf
maybe-all-stage1-libelf:
maybe-clean-stage1-libelf:
@if libelf-bootstrap
maybe-all-stage1-libelf: all-stage1-libelf
all-stage1: all-stage1-libelf
TARGET-stage1-libelf = $(TARGET-libelf)
all-stage1-libelf: configure-stage1-libelf
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libelf && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-libelf)

maybe-clean-stage1-libelf: clean-stage1-libelf
clean-stage1: clean-stage1-libelf
clean-stage1-libelf:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/libelf/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-libelf/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/libelf && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS)  clean
@endif libelf-bootstrap


.PHONY: all-stage2-libelf maybe-all-stage2-libelf
.PHONY: clean-stage2-libelf maybe-clean-stage2-libelf
maybe-all-stage2-libelf:
maybe-clean-stage2-libelf:
@if libelf-bootstrap
maybe-all-stage2-libelf: all-stage2-libelf
all-stage2: all-stage2-libelf
TARGET-stage2-libelf = $(TARGET-libelf)
all-stage2-libelf: configure-stage2-libelf
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libelf && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-libelf)

maybe-clean-stage2-libelf: clean-stage2-libelf
clean-stage2: clean-stage2-libelf
clean-stage2-libelf:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/libelf/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-libelf/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/libelf && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libelf-bootstrap


.PHONY: all-stage3-libelf maybe-all-stage3-libelf
.PHONY: clean-stage3-libelf maybe-clean-stage3-libelf
maybe-all-stage3-libelf:
maybe-clean-stage3-libelf:
@if libelf-bootstrap
maybe-all-stage3-libelf: all-stage3-libelf
all-stage3: all-stage3-libelf
TARGET-stage3-libelf = $(TARGET-libelf)
all-stage3-libelf: configure-stage3-libelf
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libelf && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-libelf)

maybe-clean-stage3-libelf: clean-stage3-libelf
clean-stage3: clean-stage3-libelf
clean-stage3-libelf:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/libelf/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-libelf/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/libelf && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libelf-bootstrap


.PHONY: all-stage4-libelf maybe-all-stage4-libelf
.PHONY: clean-stage4-libelf maybe-clean-stage4-libelf
maybe-all-stage4-libelf:
maybe-clean-stage4-libelf:
@if libelf-bootstrap
maybe-all-stage4-libelf: all-stage4-libelf
all-stage4: all-stage4-libelf
TARGET-stage4-libelf = $(TARGET-libelf)
all-stage4-libelf: configure-stage4-libelf
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libelf && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-libelf)

maybe-clean-stage4-libelf: clean-stage4-libelf
clean-stage4: clean-stage4-libelf
clean-stage4-libelf:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/libelf/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-libelf/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/libelf && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libelf-bootstrap


.PHONY: all-stageprofile-libelf maybe-all-stageprofile-libelf
.PHONY: clean-stageprofile-libelf maybe-clean-stageprofile-libelf
maybe-all-stageprofile-libelf:
maybe-clean-stageprofile-libelf:
@if libelf-bootstrap
maybe-all-stageprofile-libelf: all-stageprofile-libelf
all-stageprofile: all-stageprofile-libelf
TARGET-stageprofile-libelf = $(TARGET-libelf)
all-stageprofile-libelf: configure-stageprofile-libelf
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libelf && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-libelf)

maybe-clean-stageprofile-libelf: clean-stageprofile-libelf
clean-stageprofile: clean-stageprofile-libelf
clean-stageprofile-libelf:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/libelf/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-libelf/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/libelf && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libelf-bootstrap


.PHONY: all-stagetrain-libelf maybe-all-stagetrain-libelf
.PHONY: clean-stagetrain-libelf maybe-clean-stagetrain-libelf
maybe-all-stagetrain-libelf:
maybe-clean-stagetrain-libelf:
@if libelf-bootstrap
maybe-all-stagetrain-libelf: all-stagetrain-libelf
all-stagetrain: all-stagetrain-libelf
TARGET-stagetrain-libelf = $(TARGET-libelf)
all-stagetrain-libelf: configure-stagetrain-libelf
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libelf && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-libelf)

maybe-clean-stagetrain-libelf: clean-stagetrain-libelf
clean-stagetrain: clean-stagetrain-libelf
clean-stagetrain-libelf:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/libelf/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-libelf/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/libelf && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libelf-bootstrap


.PHONY: all-stagefeedback-libelf maybe-all-stagefeedback-libelf
.PHONY: clean-stagefeedback-libelf maybe-clean-stagefeedback-libelf
maybe-all-stagefeedback-libelf:
maybe-clean-stagefeedback-libelf:
@if libelf-bootstrap
maybe-all-stagefeedback-libelf: all-stagefeedback-libelf
all-stagefeedback: all-stagefeedback-libelf
TARGET-stagefeedback-libelf = $(TARGET-libelf)
all-stagefeedback-libelf: configure-stagefeedback-libelf
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libelf && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-libelf)

maybe-clean-stagefeedback-libelf: clean-stagefeedback-libelf
clean-stagefeedback: clean-stagefeedback-libelf
clean-stagefeedback-libelf:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/libelf/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-libelf/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/libelf && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libelf-bootstrap


.PHONY: all-stageautoprofile-libelf maybe-all-stageautoprofile-libelf
.PHONY: clean-stageautoprofile-libelf maybe-clean-stageautoprofile-libelf
maybe-all-stageautoprofile-libelf:
maybe-clean-stageautoprofile-libelf:
@if libelf-bootstrap
maybe-all-stageautoprofile-libelf: all-stageautoprofile-libelf
all-stageautoprofile: all-stageautoprofile-libelf
TARGET-stageautoprofile-libelf = $(TARGET-libelf)
all-stageautoprofile-libelf: configure-stageautoprofile-libelf
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libelf && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-libelf)

maybe-clean-stageautoprofile-libelf: clean-stageautoprofile-libelf
clean-stageautoprofile: clean-stageautoprofile-libelf
clean-stageautoprofile-libelf:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/libelf/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-libelf/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/libelf && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libelf-bootstrap


.PHONY: all-stageautofeedback-libelf maybe-all-stageautofeedback-libelf
.PHONY: clean-stageautofeedback-libelf maybe-clean-stageautofeedback-libelf
maybe-all-stageautofeedback-libelf:
maybe-clean-stageautofeedback-libelf:
@if libelf-bootstrap
maybe-all-stageautofeedback-libelf: all-stageautofeedback-libelf
all-stageautofeedback: all-stageautofeedback-libelf
TARGET-stageautofeedback-libelf = $(TARGET-libelf)
all-stageautofeedback-libelf: configure-stageautofeedback-libelf
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libelf && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-libelf)

maybe-clean-stageautofeedback-libelf: clean-stageautofeedback-libelf
clean-stageautofeedback: clean-stageautofeedback-libelf
clean-stageautofeedback-libelf:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/libelf/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-libelf/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/libelf && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libelf-bootstrap





.PHONY: check-libelf maybe-check-libelf
maybe-check-libelf:
@if libelf
maybe-check-libelf: check-libelf

check-libelf:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libelf && \
	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif libelf

.PHONY: install-libelf maybe-install-libelf
maybe-install-libelf:
@if libelf
maybe-install-libelf: install-libelf

install-libelf:

@endif libelf

.PHONY: install-strip-libelf maybe-install-strip-libelf
maybe-install-strip-libelf:
@if libelf
maybe-install-strip-libelf: install-strip-libelf

install-strip-libelf:

@endif libelf

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-libelf info-libelf
maybe-info-libelf:
@if libelf
maybe-info-libelf: info-libelf

info-libelf: \
    configure-libelf 
	@[ -f ./libelf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in libelf"; \
	(cd $(HOST_SUBDIR)/libelf && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif libelf

.PHONY: maybe-dvi-libelf dvi-libelf
maybe-dvi-libelf:
@if libelf
maybe-dvi-libelf: dvi-libelf

dvi-libelf: \
    configure-libelf 
	@[ -f ./libelf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in libelf"; \
	(cd $(HOST_SUBDIR)/libelf && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif libelf

.PHONY: maybe-pdf-libelf pdf-libelf
maybe-pdf-libelf:
@if libelf
maybe-pdf-libelf: pdf-libelf

pdf-libelf: \
    configure-libelf 
	@[ -f ./libelf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in libelf"; \
	(cd $(HOST_SUBDIR)/libelf && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif libelf

.PHONY: maybe-html-libelf html-libelf
maybe-html-libelf:
@if libelf
maybe-html-libelf: html-libelf

html-libelf: \
    configure-libelf 
	@[ -f ./libelf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in libelf"; \
	(cd $(HOST_SUBDIR)/libelf && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif libelf

.PHONY: maybe-TAGS-libelf TAGS-libelf
maybe-TAGS-libelf:
@if libelf
maybe-TAGS-libelf: TAGS-libelf

TAGS-libelf: \
    configure-libelf 
	@[ -f ./libelf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in libelf"; \
	(cd $(HOST_SUBDIR)/libelf && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif libelf

.PHONY: maybe-install-info-libelf install-info-libelf
maybe-install-info-libelf:
@if libelf
maybe-install-info-libelf: install-info-libelf

install-info-libelf: \
    configure-libelf \
    info-libelf 
	@[ -f ./libelf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in libelf"; \
	(cd $(HOST_SUBDIR)/libelf && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif libelf

.PHONY: maybe-install-pdf-libelf install-pdf-libelf
maybe-install-pdf-libelf:
@if libelf
maybe-install-pdf-libelf: install-pdf-libelf

install-pdf-libelf: \
    configure-libelf \
    pdf-libelf 
	@[ -f ./libelf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in libelf"; \
	(cd $(HOST_SUBDIR)/libelf && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif libelf

.PHONY: maybe-install-html-libelf install-html-libelf
maybe-install-html-libelf:
@if libelf
maybe-install-html-libelf: install-html-libelf

install-html-libelf: \
    configure-libelf \
    html-libelf 
	@[ -f ./libelf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in libelf"; \
	(cd $(HOST_SUBDIR)/libelf && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif libelf

.PHONY: maybe-installcheck-libelf installcheck-libelf
maybe-installcheck-libelf:
@if libelf
maybe-installcheck-libelf: installcheck-libelf

installcheck-libelf: \
    configure-libelf 
	@[ -f ./libelf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in libelf"; \
	(cd $(HOST_SUBDIR)/libelf && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif libelf

.PHONY: maybe-mostlyclean-libelf mostlyclean-libelf
maybe-mostlyclean-libelf:
@if libelf
maybe-mostlyclean-libelf: mostlyclean-libelf

mostlyclean-libelf: 
	@[ -f ./libelf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in libelf"; \
	(cd $(HOST_SUBDIR)/libelf && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif libelf

.PHONY: maybe-clean-libelf clean-libelf
maybe-clean-libelf:
@if libelf
maybe-clean-libelf: clean-libelf

clean-libelf: 
	@[ -f ./libelf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in libelf"; \
	(cd $(HOST_SUBDIR)/libelf && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif libelf

.PHONY: maybe-distclean-libelf distclean-libelf
maybe-distclean-libelf:
@if libelf
maybe-distclean-libelf: distclean-libelf

distclean-libelf: 
	@[ -f ./libelf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in libelf"; \
	(cd $(HOST_SUBDIR)/libelf && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif libelf

.PHONY: maybe-maintainer-clean-libelf maintainer-clean-libelf
maybe-maintainer-clean-libelf:
@if libelf
maybe-maintainer-clean-libelf: maintainer-clean-libelf

maintainer-clean-libelf: 
	@[ -f ./libelf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in libelf"; \
	(cd $(HOST_SUBDIR)/libelf && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif libelf



.PHONY: configure-gold maybe-configure-gold
maybe-configure-gold:
@if gcc-bootstrap
configure-gold: stage_current
@endif gcc-bootstrap
@if gold
maybe-configure-gold: configure-gold
configure-gold: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/gold/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/gold; \
	cd "$(HOST_SUBDIR)/gold" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gold/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gold; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif gold



.PHONY: configure-stage1-gold maybe-configure-stage1-gold
maybe-configure-stage1-gold:
@if gold-bootstrap
maybe-configure-stage1-gold: configure-stage1-gold
configure-stage1-gold:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gold/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/gold; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold; \
	cd $(HOST_SUBDIR)/gold || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gold/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gold; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif gold-bootstrap

.PHONY: configure-stage2-gold maybe-configure-stage2-gold
maybe-configure-stage2-gold:
@if gold-bootstrap
maybe-configure-stage2-gold: configure-stage2-gold
configure-stage2-gold:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gold/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/gold; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold; \
	cd $(HOST_SUBDIR)/gold || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gold/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gold; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS)
@endif gold-bootstrap

.PHONY: configure-stage3-gold maybe-configure-stage3-gold
maybe-configure-stage3-gold:
@if gold-bootstrap
maybe-configure-stage3-gold: configure-stage3-gold
configure-stage3-gold:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gold/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/gold; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold; \
	cd $(HOST_SUBDIR)/gold || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gold/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gold; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS)
@endif gold-bootstrap

.PHONY: configure-stage4-gold maybe-configure-stage4-gold
maybe-configure-stage4-gold:
@if gold-bootstrap
maybe-configure-stage4-gold: configure-stage4-gold
configure-stage4-gold:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gold/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/gold; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold; \
	cd $(HOST_SUBDIR)/gold || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gold/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gold; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS)
@endif gold-bootstrap

.PHONY: configure-stageprofile-gold maybe-configure-stageprofile-gold
maybe-configure-stageprofile-gold:
@if gold-bootstrap
maybe-configure-stageprofile-gold: configure-stageprofile-gold
configure-stageprofile-gold:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gold/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/gold; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold; \
	cd $(HOST_SUBDIR)/gold || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gold/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gold; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS)
@endif gold-bootstrap

.PHONY: configure-stagetrain-gold maybe-configure-stagetrain-gold
maybe-configure-stagetrain-gold:
@if gold-bootstrap
maybe-configure-stagetrain-gold: configure-stagetrain-gold
configure-stagetrain-gold:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gold/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/gold; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold; \
	cd $(HOST_SUBDIR)/gold || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gold/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gold; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS)
@endif gold-bootstrap

.PHONY: configure-stagefeedback-gold maybe-configure-stagefeedback-gold
maybe-configure-stagefeedback-gold:
@if gold-bootstrap
maybe-configure-stagefeedback-gold: configure-stagefeedback-gold
configure-stagefeedback-gold:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gold/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/gold; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold; \
	cd $(HOST_SUBDIR)/gold || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gold/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gold; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS)
@endif gold-bootstrap

.PHONY: configure-stageautoprofile-gold maybe-configure-stageautoprofile-gold
maybe-configure-stageautoprofile-gold:
@if gold-bootstrap
maybe-configure-stageautoprofile-gold: configure-stageautoprofile-gold
configure-stageautoprofile-gold:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gold/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/gold; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold; \
	cd $(HOST_SUBDIR)/gold || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gold/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gold; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS)
@endif gold-bootstrap

.PHONY: configure-stageautofeedback-gold maybe-configure-stageautofeedback-gold
maybe-configure-stageautofeedback-gold:
@if gold-bootstrap
maybe-configure-stageautofeedback-gold: configure-stageautofeedback-gold
configure-stageautofeedback-gold:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/gold/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/gold; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gold; \
	cd $(HOST_SUBDIR)/gold || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gold/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gold; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS)
@endif gold-bootstrap





.PHONY: all-gold maybe-all-gold
maybe-all-gold:
@if gcc-bootstrap
all-gold: stage_current
@endif gcc-bootstrap
@if gold
TARGET-gold=all
maybe-all-gold: all-gold
all-gold: configure-gold
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/gold && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-gold))
@endif gold



.PHONY: all-stage1-gold maybe-all-stage1-gold
.PHONY: clean-stage1-gold maybe-clean-stage1-gold
maybe-all-stage1-gold:
maybe-clean-stage1-gold:
@if gold-bootstrap
maybe-all-stage1-gold: all-stage1-gold
all-stage1: all-stage1-gold
TARGET-stage1-gold = $(TARGET-gold)
all-stage1-gold: configure-stage1-gold
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gold && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-gold)

maybe-clean-stage1-gold: clean-stage1-gold
clean-stage1: clean-stage1-gold
clean-stage1-gold:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/gold/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-gold/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/gold && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS)  clean
@endif gold-bootstrap


.PHONY: all-stage2-gold maybe-all-stage2-gold
.PHONY: clean-stage2-gold maybe-clean-stage2-gold
maybe-all-stage2-gold:
maybe-clean-stage2-gold:
@if gold-bootstrap
maybe-all-stage2-gold: all-stage2-gold
all-stage2: all-stage2-gold
TARGET-stage2-gold = $(TARGET-gold)
all-stage2-gold: configure-stage2-gold
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gold && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-gold)

maybe-clean-stage2-gold: clean-stage2-gold
clean-stage2: clean-stage2-gold
clean-stage2-gold:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/gold/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-gold/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/gold && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif gold-bootstrap


.PHONY: all-stage3-gold maybe-all-stage3-gold
.PHONY: clean-stage3-gold maybe-clean-stage3-gold
maybe-all-stage3-gold:
maybe-clean-stage3-gold:
@if gold-bootstrap
maybe-all-stage3-gold: all-stage3-gold
all-stage3: all-stage3-gold
TARGET-stage3-gold = $(TARGET-gold)
all-stage3-gold: configure-stage3-gold
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gold && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-gold)

maybe-clean-stage3-gold: clean-stage3-gold
clean-stage3: clean-stage3-gold
clean-stage3-gold:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/gold/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-gold/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/gold && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif gold-bootstrap


.PHONY: all-stage4-gold maybe-all-stage4-gold
.PHONY: clean-stage4-gold maybe-clean-stage4-gold
maybe-all-stage4-gold:
maybe-clean-stage4-gold:
@if gold-bootstrap
maybe-all-stage4-gold: all-stage4-gold
all-stage4: all-stage4-gold
TARGET-stage4-gold = $(TARGET-gold)
all-stage4-gold: configure-stage4-gold
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gold && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-gold)

maybe-clean-stage4-gold: clean-stage4-gold
clean-stage4: clean-stage4-gold
clean-stage4-gold:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/gold/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-gold/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/gold && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif gold-bootstrap


.PHONY: all-stageprofile-gold maybe-all-stageprofile-gold
.PHONY: clean-stageprofile-gold maybe-clean-stageprofile-gold
maybe-all-stageprofile-gold:
maybe-clean-stageprofile-gold:
@if gold-bootstrap
maybe-all-stageprofile-gold: all-stageprofile-gold
all-stageprofile: all-stageprofile-gold
TARGET-stageprofile-gold = $(TARGET-gold)
all-stageprofile-gold: configure-stageprofile-gold
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gold && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-gold)

maybe-clean-stageprofile-gold: clean-stageprofile-gold
clean-stageprofile: clean-stageprofile-gold
clean-stageprofile-gold:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/gold/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-gold/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/gold && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif gold-bootstrap


.PHONY: all-stagetrain-gold maybe-all-stagetrain-gold
.PHONY: clean-stagetrain-gold maybe-clean-stagetrain-gold
maybe-all-stagetrain-gold:
maybe-clean-stagetrain-gold:
@if gold-bootstrap
maybe-all-stagetrain-gold: all-stagetrain-gold
all-stagetrain: all-stagetrain-gold
TARGET-stagetrain-gold = $(TARGET-gold)
all-stagetrain-gold: configure-stagetrain-gold
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gold && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-gold)

maybe-clean-stagetrain-gold: clean-stagetrain-gold
clean-stagetrain: clean-stagetrain-gold
clean-stagetrain-gold:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/gold/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-gold/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/gold && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif gold-bootstrap


.PHONY: all-stagefeedback-gold maybe-all-stagefeedback-gold
.PHONY: clean-stagefeedback-gold maybe-clean-stagefeedback-gold
maybe-all-stagefeedback-gold:
maybe-clean-stagefeedback-gold:
@if gold-bootstrap
maybe-all-stagefeedback-gold: all-stagefeedback-gold
all-stagefeedback: all-stagefeedback-gold
TARGET-stagefeedback-gold = $(TARGET-gold)
all-stagefeedback-gold: configure-stagefeedback-gold
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gold && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-gold)

maybe-clean-stagefeedback-gold: clean-stagefeedback-gold
clean-stagefeedback: clean-stagefeedback-gold
clean-stagefeedback-gold:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/gold/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-gold/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/gold && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif gold-bootstrap


.PHONY: all-stageautoprofile-gold maybe-all-stageautoprofile-gold
.PHONY: clean-stageautoprofile-gold maybe-clean-stageautoprofile-gold
maybe-all-stageautoprofile-gold:
maybe-clean-stageautoprofile-gold:
@if gold-bootstrap
maybe-all-stageautoprofile-gold: all-stageautoprofile-gold
all-stageautoprofile: all-stageautoprofile-gold
TARGET-stageautoprofile-gold = $(TARGET-gold)
all-stageautoprofile-gold: configure-stageautoprofile-gold
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gold && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-gold)

maybe-clean-stageautoprofile-gold: clean-stageautoprofile-gold
clean-stageautoprofile: clean-stageautoprofile-gold
clean-stageautoprofile-gold:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/gold/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-gold/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/gold && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif gold-bootstrap


.PHONY: all-stageautofeedback-gold maybe-all-stageautofeedback-gold
.PHONY: clean-stageautofeedback-gold maybe-clean-stageautofeedback-gold
maybe-all-stageautofeedback-gold:
maybe-clean-stageautofeedback-gold:
@if gold-bootstrap
maybe-all-stageautofeedback-gold: all-stageautofeedback-gold
all-stageautofeedback: all-stageautofeedback-gold
TARGET-stageautofeedback-gold = $(TARGET-gold)
all-stageautofeedback-gold: configure-stageautofeedback-gold
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/gold && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-gold)

maybe-clean-stageautofeedback-gold: clean-stageautofeedback-gold
clean-stageautofeedback: clean-stageautofeedback-gold
clean-stageautofeedback-gold:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/gold/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-gold/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/gold && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif gold-bootstrap





.PHONY: check-gold maybe-check-gold
maybe-check-gold:
@if gold
maybe-check-gold: check-gold

check-gold:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gold && \
	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif gold

.PHONY: install-gold maybe-install-gold
maybe-install-gold:
@if gold
maybe-install-gold: install-gold

install-gold: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gold && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif gold

.PHONY: install-strip-gold maybe-install-strip-gold
maybe-install-strip-gold:
@if gold
maybe-install-strip-gold: install-strip-gold

install-strip-gold: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gold && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif gold

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-gold info-gold
maybe-info-gold:
@if gold
maybe-info-gold: info-gold

info-gold: \
    configure-gold 
	@[ -f ./gold/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in gold"; \
	(cd $(HOST_SUBDIR)/gold && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif gold

.PHONY: maybe-dvi-gold dvi-gold
maybe-dvi-gold:
@if gold
maybe-dvi-gold: dvi-gold

dvi-gold: \
    configure-gold 
	@[ -f ./gold/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in gold"; \
	(cd $(HOST_SUBDIR)/gold && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif gold

.PHONY: maybe-pdf-gold pdf-gold
maybe-pdf-gold:
@if gold
maybe-pdf-gold: pdf-gold

pdf-gold: \
    configure-gold 
	@[ -f ./gold/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in gold"; \
	(cd $(HOST_SUBDIR)/gold && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif gold

.PHONY: maybe-html-gold html-gold
maybe-html-gold:
@if gold
maybe-html-gold: html-gold

html-gold: \
    configure-gold 
	@[ -f ./gold/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in gold"; \
	(cd $(HOST_SUBDIR)/gold && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif gold

.PHONY: maybe-TAGS-gold TAGS-gold
maybe-TAGS-gold:
@if gold
maybe-TAGS-gold: TAGS-gold

TAGS-gold: \
    configure-gold 
	@[ -f ./gold/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in gold"; \
	(cd $(HOST_SUBDIR)/gold && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif gold

.PHONY: maybe-install-info-gold install-info-gold
maybe-install-info-gold:
@if gold
maybe-install-info-gold: install-info-gold

install-info-gold: \
    configure-gold \
    info-gold 
	@[ -f ./gold/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in gold"; \
	(cd $(HOST_SUBDIR)/gold && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif gold

.PHONY: maybe-install-pdf-gold install-pdf-gold
maybe-install-pdf-gold:
@if gold
maybe-install-pdf-gold: install-pdf-gold

install-pdf-gold: \
    configure-gold \
    pdf-gold 
	@[ -f ./gold/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in gold"; \
	(cd $(HOST_SUBDIR)/gold && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif gold

.PHONY: maybe-install-html-gold install-html-gold
maybe-install-html-gold:
@if gold
maybe-install-html-gold: install-html-gold

install-html-gold: \
    configure-gold \
    html-gold 
	@[ -f ./gold/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in gold"; \
	(cd $(HOST_SUBDIR)/gold && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif gold

.PHONY: maybe-installcheck-gold installcheck-gold
maybe-installcheck-gold:
@if gold
maybe-installcheck-gold: installcheck-gold

installcheck-gold: \
    configure-gold 
	@[ -f ./gold/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in gold"; \
	(cd $(HOST_SUBDIR)/gold && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif gold

.PHONY: maybe-mostlyclean-gold mostlyclean-gold
maybe-mostlyclean-gold:
@if gold
maybe-mostlyclean-gold: mostlyclean-gold

mostlyclean-gold: 
	@[ -f ./gold/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in gold"; \
	(cd $(HOST_SUBDIR)/gold && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif gold

.PHONY: maybe-clean-gold clean-gold
maybe-clean-gold:
@if gold
maybe-clean-gold: clean-gold

clean-gold: 
	@[ -f ./gold/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in gold"; \
	(cd $(HOST_SUBDIR)/gold && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif gold

.PHONY: maybe-distclean-gold distclean-gold
maybe-distclean-gold:
@if gold
maybe-distclean-gold: distclean-gold

distclean-gold: 
	@[ -f ./gold/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in gold"; \
	(cd $(HOST_SUBDIR)/gold && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif gold

.PHONY: maybe-maintainer-clean-gold maintainer-clean-gold
maybe-maintainer-clean-gold:
@if gold
maybe-maintainer-clean-gold: maintainer-clean-gold

maintainer-clean-gold: 
	@[ -f ./gold/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in gold"; \
	(cd $(HOST_SUBDIR)/gold && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif gold



.PHONY: configure-gprof maybe-configure-gprof
maybe-configure-gprof:
@if gcc-bootstrap
configure-gprof: stage_current
@endif gcc-bootstrap
@if gprof
maybe-configure-gprof: configure-gprof
configure-gprof: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/gprof/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gprof; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/gprof; \
	cd "$(HOST_SUBDIR)/gprof" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gprof/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gprof; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif gprof





.PHONY: all-gprof maybe-all-gprof
maybe-all-gprof:
@if gcc-bootstrap
all-gprof: stage_current
@endif gcc-bootstrap
@if gprof
TARGET-gprof=all
maybe-all-gprof: all-gprof
all-gprof: configure-gprof
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/gprof && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-gprof))
@endif gprof




.PHONY: check-gprof maybe-check-gprof
maybe-check-gprof:
@if gprof
maybe-check-gprof: check-gprof

check-gprof:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/gprof && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif gprof

.PHONY: install-gprof maybe-install-gprof
maybe-install-gprof:
@if gprof
maybe-install-gprof: install-gprof

install-gprof: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gprof && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif gprof

.PHONY: install-strip-gprof maybe-install-strip-gprof
maybe-install-strip-gprof:
@if gprof
maybe-install-strip-gprof: install-strip-gprof

install-strip-gprof: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gprof && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif gprof

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-gprof info-gprof
maybe-info-gprof:
@if gprof
maybe-info-gprof: info-gprof

info-gprof: \
    configure-gprof 
	@: $(MAKE); $(unstage)
	@[ -f ./gprof/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in gprof"; \
	(cd $(HOST_SUBDIR)/gprof && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif gprof

.PHONY: maybe-dvi-gprof dvi-gprof
maybe-dvi-gprof:
@if gprof
maybe-dvi-gprof: dvi-gprof

dvi-gprof: \
    configure-gprof 
	@: $(MAKE); $(unstage)
	@[ -f ./gprof/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in gprof"; \
	(cd $(HOST_SUBDIR)/gprof && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif gprof

.PHONY: maybe-pdf-gprof pdf-gprof
maybe-pdf-gprof:
@if gprof
maybe-pdf-gprof: pdf-gprof

pdf-gprof: \
    configure-gprof 
	@: $(MAKE); $(unstage)
	@[ -f ./gprof/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in gprof"; \
	(cd $(HOST_SUBDIR)/gprof && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif gprof

.PHONY: maybe-html-gprof html-gprof
maybe-html-gprof:
@if gprof
maybe-html-gprof: html-gprof

html-gprof: \
    configure-gprof 
	@: $(MAKE); $(unstage)
	@[ -f ./gprof/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in gprof"; \
	(cd $(HOST_SUBDIR)/gprof && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif gprof

.PHONY: maybe-TAGS-gprof TAGS-gprof
maybe-TAGS-gprof:
@if gprof
maybe-TAGS-gprof: TAGS-gprof

TAGS-gprof: \
    configure-gprof 
	@: $(MAKE); $(unstage)
	@[ -f ./gprof/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in gprof"; \
	(cd $(HOST_SUBDIR)/gprof && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif gprof

.PHONY: maybe-install-info-gprof install-info-gprof
maybe-install-info-gprof:
@if gprof
maybe-install-info-gprof: install-info-gprof

install-info-gprof: \
    configure-gprof \
    info-gprof 
	@: $(MAKE); $(unstage)
	@[ -f ./gprof/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in gprof"; \
	(cd $(HOST_SUBDIR)/gprof && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif gprof

.PHONY: maybe-install-pdf-gprof install-pdf-gprof
maybe-install-pdf-gprof:
@if gprof
maybe-install-pdf-gprof: install-pdf-gprof

install-pdf-gprof: \
    configure-gprof \
    pdf-gprof 
	@: $(MAKE); $(unstage)
	@[ -f ./gprof/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in gprof"; \
	(cd $(HOST_SUBDIR)/gprof && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif gprof

.PHONY: maybe-install-html-gprof install-html-gprof
maybe-install-html-gprof:
@if gprof
maybe-install-html-gprof: install-html-gprof

install-html-gprof: \
    configure-gprof \
    html-gprof 
	@: $(MAKE); $(unstage)
	@[ -f ./gprof/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in gprof"; \
	(cd $(HOST_SUBDIR)/gprof && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif gprof

.PHONY: maybe-installcheck-gprof installcheck-gprof
maybe-installcheck-gprof:
@if gprof
maybe-installcheck-gprof: installcheck-gprof

installcheck-gprof: \
    configure-gprof 
	@: $(MAKE); $(unstage)
	@[ -f ./gprof/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in gprof"; \
	(cd $(HOST_SUBDIR)/gprof && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif gprof

.PHONY: maybe-mostlyclean-gprof mostlyclean-gprof
maybe-mostlyclean-gprof:
@if gprof
maybe-mostlyclean-gprof: mostlyclean-gprof

mostlyclean-gprof: 
	@: $(MAKE); $(unstage)
	@[ -f ./gprof/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in gprof"; \
	(cd $(HOST_SUBDIR)/gprof && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif gprof

.PHONY: maybe-clean-gprof clean-gprof
maybe-clean-gprof:
@if gprof
maybe-clean-gprof: clean-gprof

clean-gprof: 
	@: $(MAKE); $(unstage)
	@[ -f ./gprof/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in gprof"; \
	(cd $(HOST_SUBDIR)/gprof && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif gprof

.PHONY: maybe-distclean-gprof distclean-gprof
maybe-distclean-gprof:
@if gprof
maybe-distclean-gprof: distclean-gprof

distclean-gprof: 
	@: $(MAKE); $(unstage)
	@[ -f ./gprof/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in gprof"; \
	(cd $(HOST_SUBDIR)/gprof && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif gprof

.PHONY: maybe-maintainer-clean-gprof maintainer-clean-gprof
maybe-maintainer-clean-gprof:
@if gprof
maybe-maintainer-clean-gprof: maintainer-clean-gprof

maintainer-clean-gprof: 
	@: $(MAKE); $(unstage)
	@[ -f ./gprof/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in gprof"; \
	(cd $(HOST_SUBDIR)/gprof && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif gprof



.PHONY: configure-intl maybe-configure-intl
maybe-configure-intl:
@if gcc-bootstrap
configure-intl: stage_current
@endif gcc-bootstrap
@if intl
maybe-configure-intl: configure-intl
configure-intl: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/intl; \
	cd "$(HOST_SUBDIR)/intl" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=intl; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif intl



.PHONY: configure-stage1-intl maybe-configure-stage1-intl
maybe-configure-stage1-intl:
@if intl-bootstrap
maybe-configure-stage1-intl: configure-stage1-intl
configure-stage1-intl:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/intl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
	cd $(HOST_SUBDIR)/intl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=intl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif intl-bootstrap

.PHONY: configure-stage2-intl maybe-configure-stage2-intl
maybe-configure-stage2-intl:
@if intl-bootstrap
maybe-configure-stage2-intl: configure-stage2-intl
configure-stage2-intl:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/intl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
	cd $(HOST_SUBDIR)/intl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=intl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS)
@endif intl-bootstrap

.PHONY: configure-stage3-intl maybe-configure-stage3-intl
maybe-configure-stage3-intl:
@if intl-bootstrap
maybe-configure-stage3-intl: configure-stage3-intl
configure-stage3-intl:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/intl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
	cd $(HOST_SUBDIR)/intl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=intl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS)
@endif intl-bootstrap

.PHONY: configure-stage4-intl maybe-configure-stage4-intl
maybe-configure-stage4-intl:
@if intl-bootstrap
maybe-configure-stage4-intl: configure-stage4-intl
configure-stage4-intl:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/intl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
	cd $(HOST_SUBDIR)/intl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=intl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS)
@endif intl-bootstrap

.PHONY: configure-stageprofile-intl maybe-configure-stageprofile-intl
maybe-configure-stageprofile-intl:
@if intl-bootstrap
maybe-configure-stageprofile-intl: configure-stageprofile-intl
configure-stageprofile-intl:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/intl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
	cd $(HOST_SUBDIR)/intl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=intl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS)
@endif intl-bootstrap

.PHONY: configure-stagetrain-intl maybe-configure-stagetrain-intl
maybe-configure-stagetrain-intl:
@if intl-bootstrap
maybe-configure-stagetrain-intl: configure-stagetrain-intl
configure-stagetrain-intl:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/intl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
	cd $(HOST_SUBDIR)/intl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=intl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS)
@endif intl-bootstrap

.PHONY: configure-stagefeedback-intl maybe-configure-stagefeedback-intl
maybe-configure-stagefeedback-intl:
@if intl-bootstrap
maybe-configure-stagefeedback-intl: configure-stagefeedback-intl
configure-stagefeedback-intl:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/intl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
	cd $(HOST_SUBDIR)/intl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=intl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS)
@endif intl-bootstrap

.PHONY: configure-stageautoprofile-intl maybe-configure-stageautoprofile-intl
maybe-configure-stageautoprofile-intl:
@if intl-bootstrap
maybe-configure-stageautoprofile-intl: configure-stageautoprofile-intl
configure-stageautoprofile-intl:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/intl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
	cd $(HOST_SUBDIR)/intl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=intl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS)
@endif intl-bootstrap

.PHONY: configure-stageautofeedback-intl maybe-configure-stageautofeedback-intl
maybe-configure-stageautofeedback-intl:
@if intl-bootstrap
maybe-configure-stageautofeedback-intl: configure-stageautofeedback-intl
configure-stageautofeedback-intl:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/intl/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/intl; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/intl; \
	cd $(HOST_SUBDIR)/intl || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/intl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=intl; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS)
@endif intl-bootstrap





.PHONY: all-intl maybe-all-intl
maybe-all-intl:
@if gcc-bootstrap
all-intl: stage_current
@endif gcc-bootstrap
@if intl
TARGET-intl=all
maybe-all-intl: all-intl
all-intl: configure-intl
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/intl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-intl))
@endif intl



.PHONY: all-stage1-intl maybe-all-stage1-intl
.PHONY: clean-stage1-intl maybe-clean-stage1-intl
maybe-all-stage1-intl:
maybe-clean-stage1-intl:
@if intl-bootstrap
maybe-all-stage1-intl: all-stage1-intl
all-stage1: all-stage1-intl
TARGET-stage1-intl = $(TARGET-intl)
all-stage1-intl: configure-stage1-intl
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/intl && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-intl)

maybe-clean-stage1-intl: clean-stage1-intl
clean-stage1: clean-stage1-intl
clean-stage1-intl:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-intl/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/intl && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS)  clean
@endif intl-bootstrap


.PHONY: all-stage2-intl maybe-all-stage2-intl
.PHONY: clean-stage2-intl maybe-clean-stage2-intl
maybe-all-stage2-intl:
maybe-clean-stage2-intl:
@if intl-bootstrap
maybe-all-stage2-intl: all-stage2-intl
all-stage2: all-stage2-intl
TARGET-stage2-intl = $(TARGET-intl)
all-stage2-intl: configure-stage2-intl
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/intl && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-intl)

maybe-clean-stage2-intl: clean-stage2-intl
clean-stage2: clean-stage2-intl
clean-stage2-intl:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-intl/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/intl && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif intl-bootstrap


.PHONY: all-stage3-intl maybe-all-stage3-intl
.PHONY: clean-stage3-intl maybe-clean-stage3-intl
maybe-all-stage3-intl:
maybe-clean-stage3-intl:
@if intl-bootstrap
maybe-all-stage3-intl: all-stage3-intl
all-stage3: all-stage3-intl
TARGET-stage3-intl = $(TARGET-intl)
all-stage3-intl: configure-stage3-intl
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/intl && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-intl)

maybe-clean-stage3-intl: clean-stage3-intl
clean-stage3: clean-stage3-intl
clean-stage3-intl:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-intl/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/intl && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif intl-bootstrap


.PHONY: all-stage4-intl maybe-all-stage4-intl
.PHONY: clean-stage4-intl maybe-clean-stage4-intl
maybe-all-stage4-intl:
maybe-clean-stage4-intl:
@if intl-bootstrap
maybe-all-stage4-intl: all-stage4-intl
all-stage4: all-stage4-intl
TARGET-stage4-intl = $(TARGET-intl)
all-stage4-intl: configure-stage4-intl
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/intl && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-intl)

maybe-clean-stage4-intl: clean-stage4-intl
clean-stage4: clean-stage4-intl
clean-stage4-intl:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-intl/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/intl && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif intl-bootstrap


.PHONY: all-stageprofile-intl maybe-all-stageprofile-intl
.PHONY: clean-stageprofile-intl maybe-clean-stageprofile-intl
maybe-all-stageprofile-intl:
maybe-clean-stageprofile-intl:
@if intl-bootstrap
maybe-all-stageprofile-intl: all-stageprofile-intl
all-stageprofile: all-stageprofile-intl
TARGET-stageprofile-intl = $(TARGET-intl)
all-stageprofile-intl: configure-stageprofile-intl
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/intl && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-intl)

maybe-clean-stageprofile-intl: clean-stageprofile-intl
clean-stageprofile: clean-stageprofile-intl
clean-stageprofile-intl:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-intl/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/intl && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif intl-bootstrap


.PHONY: all-stagetrain-intl maybe-all-stagetrain-intl
.PHONY: clean-stagetrain-intl maybe-clean-stagetrain-intl
maybe-all-stagetrain-intl:
maybe-clean-stagetrain-intl:
@if intl-bootstrap
maybe-all-stagetrain-intl: all-stagetrain-intl
all-stagetrain: all-stagetrain-intl
TARGET-stagetrain-intl = $(TARGET-intl)
all-stagetrain-intl: configure-stagetrain-intl
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/intl && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-intl)

maybe-clean-stagetrain-intl: clean-stagetrain-intl
clean-stagetrain: clean-stagetrain-intl
clean-stagetrain-intl:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-intl/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/intl && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif intl-bootstrap


.PHONY: all-stagefeedback-intl maybe-all-stagefeedback-intl
.PHONY: clean-stagefeedback-intl maybe-clean-stagefeedback-intl
maybe-all-stagefeedback-intl:
maybe-clean-stagefeedback-intl:
@if intl-bootstrap
maybe-all-stagefeedback-intl: all-stagefeedback-intl
all-stagefeedback: all-stagefeedback-intl
TARGET-stagefeedback-intl = $(TARGET-intl)
all-stagefeedback-intl: configure-stagefeedback-intl
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/intl && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-intl)

maybe-clean-stagefeedback-intl: clean-stagefeedback-intl
clean-stagefeedback: clean-stagefeedback-intl
clean-stagefeedback-intl:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-intl/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/intl && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif intl-bootstrap


.PHONY: all-stageautoprofile-intl maybe-all-stageautoprofile-intl
.PHONY: clean-stageautoprofile-intl maybe-clean-stageautoprofile-intl
maybe-all-stageautoprofile-intl:
maybe-clean-stageautoprofile-intl:
@if intl-bootstrap
maybe-all-stageautoprofile-intl: all-stageautoprofile-intl
all-stageautoprofile: all-stageautoprofile-intl
TARGET-stageautoprofile-intl = $(TARGET-intl)
all-stageautoprofile-intl: configure-stageautoprofile-intl
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/intl && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-intl)

maybe-clean-stageautoprofile-intl: clean-stageautoprofile-intl
clean-stageautoprofile: clean-stageautoprofile-intl
clean-stageautoprofile-intl:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-intl/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/intl && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif intl-bootstrap


.PHONY: all-stageautofeedback-intl maybe-all-stageautofeedback-intl
.PHONY: clean-stageautofeedback-intl maybe-clean-stageautofeedback-intl
maybe-all-stageautofeedback-intl:
maybe-clean-stageautofeedback-intl:
@if intl-bootstrap
maybe-all-stageautofeedback-intl: all-stageautofeedback-intl
all-stageautofeedback: all-stageautofeedback-intl
TARGET-stageautofeedback-intl = $(TARGET-intl)
all-stageautofeedback-intl: configure-stageautofeedback-intl
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/intl && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-intl)

maybe-clean-stageautofeedback-intl: clean-stageautofeedback-intl
clean-stageautofeedback: clean-stageautofeedback-intl
clean-stageautofeedback-intl:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/intl/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-intl/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/intl && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif intl-bootstrap





.PHONY: check-intl maybe-check-intl
maybe-check-intl:
@if intl
maybe-check-intl: check-intl

check-intl:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/intl && \
	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif intl

.PHONY: install-intl maybe-install-intl
maybe-install-intl:
@if intl
maybe-install-intl: install-intl

install-intl: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/intl && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif intl

.PHONY: install-strip-intl maybe-install-strip-intl
maybe-install-strip-intl:
@if intl
maybe-install-strip-intl: install-strip-intl

install-strip-intl: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/intl && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif intl

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-intl info-intl
maybe-info-intl:
@if intl
maybe-info-intl: info-intl

info-intl: \
    configure-intl 
	@[ -f ./intl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in intl"; \
	(cd $(HOST_SUBDIR)/intl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif intl

.PHONY: maybe-dvi-intl dvi-intl
maybe-dvi-intl:
@if intl
maybe-dvi-intl: dvi-intl

dvi-intl: \
    configure-intl 
	@[ -f ./intl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in intl"; \
	(cd $(HOST_SUBDIR)/intl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif intl

.PHONY: maybe-pdf-intl pdf-intl
maybe-pdf-intl:
@if intl
maybe-pdf-intl: pdf-intl

pdf-intl: \
    configure-intl 
	@[ -f ./intl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in intl"; \
	(cd $(HOST_SUBDIR)/intl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif intl

.PHONY: maybe-html-intl html-intl
maybe-html-intl:
@if intl
maybe-html-intl: html-intl

html-intl: \
    configure-intl 
	@[ -f ./intl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in intl"; \
	(cd $(HOST_SUBDIR)/intl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif intl

.PHONY: maybe-TAGS-intl TAGS-intl
maybe-TAGS-intl:
@if intl
maybe-TAGS-intl: TAGS-intl

TAGS-intl: \
    configure-intl 
	@[ -f ./intl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in intl"; \
	(cd $(HOST_SUBDIR)/intl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif intl

.PHONY: maybe-install-info-intl install-info-intl
maybe-install-info-intl:
@if intl
maybe-install-info-intl: install-info-intl

install-info-intl: \
    configure-intl \
    info-intl 
	@[ -f ./intl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in intl"; \
	(cd $(HOST_SUBDIR)/intl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif intl

.PHONY: maybe-install-pdf-intl install-pdf-intl
maybe-install-pdf-intl:
@if intl
maybe-install-pdf-intl: install-pdf-intl

install-pdf-intl: \
    configure-intl \
    pdf-intl 
	@[ -f ./intl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in intl"; \
	(cd $(HOST_SUBDIR)/intl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif intl

.PHONY: maybe-install-html-intl install-html-intl
maybe-install-html-intl:
@if intl
maybe-install-html-intl: install-html-intl

install-html-intl: \
    configure-intl \
    html-intl 
	@[ -f ./intl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in intl"; \
	(cd $(HOST_SUBDIR)/intl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif intl

.PHONY: maybe-installcheck-intl installcheck-intl
maybe-installcheck-intl:
@if intl
maybe-installcheck-intl: installcheck-intl

installcheck-intl: \
    configure-intl 
	@[ -f ./intl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in intl"; \
	(cd $(HOST_SUBDIR)/intl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif intl

.PHONY: maybe-mostlyclean-intl mostlyclean-intl
maybe-mostlyclean-intl:
@if intl
maybe-mostlyclean-intl: mostlyclean-intl

mostlyclean-intl: 
	@[ -f ./intl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in intl"; \
	(cd $(HOST_SUBDIR)/intl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif intl

.PHONY: maybe-clean-intl clean-intl
maybe-clean-intl:
@if intl
maybe-clean-intl: clean-intl

clean-intl: 
	@[ -f ./intl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in intl"; \
	(cd $(HOST_SUBDIR)/intl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif intl

.PHONY: maybe-distclean-intl distclean-intl
maybe-distclean-intl:
@if intl
maybe-distclean-intl: distclean-intl

distclean-intl: 
	@[ -f ./intl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in intl"; \
	(cd $(HOST_SUBDIR)/intl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif intl

.PHONY: maybe-maintainer-clean-intl maintainer-clean-intl
maybe-maintainer-clean-intl:
@if intl
maybe-maintainer-clean-intl: maintainer-clean-intl

maintainer-clean-intl: 
	@[ -f ./intl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in intl"; \
	(cd $(HOST_SUBDIR)/intl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif intl



.PHONY: configure-tcl maybe-configure-tcl
maybe-configure-tcl:
@if gcc-bootstrap
configure-tcl: stage_current
@endif gcc-bootstrap
@if tcl
maybe-configure-tcl: configure-tcl
configure-tcl: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/tcl/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/tcl; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/tcl; \
	cd "$(HOST_SUBDIR)/tcl" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/tcl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=tcl; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif tcl





.PHONY: all-tcl maybe-all-tcl
maybe-all-tcl:
@if gcc-bootstrap
all-tcl: stage_current
@endif gcc-bootstrap
@if tcl
TARGET-tcl=all
maybe-all-tcl: all-tcl
all-tcl: configure-tcl
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/tcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-tcl))
@endif tcl




.PHONY: check-tcl maybe-check-tcl
maybe-check-tcl:
@if tcl
maybe-check-tcl: check-tcl

check-tcl:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/tcl && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif tcl

.PHONY: install-tcl maybe-install-tcl
maybe-install-tcl:
@if tcl
maybe-install-tcl: install-tcl

install-tcl: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/tcl && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif tcl

.PHONY: install-strip-tcl maybe-install-strip-tcl
maybe-install-strip-tcl:
@if tcl
maybe-install-strip-tcl: install-strip-tcl

install-strip-tcl: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/tcl && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif tcl

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-tcl info-tcl
maybe-info-tcl:
@if tcl
maybe-info-tcl: info-tcl

info-tcl: \
    configure-tcl 
	@: $(MAKE); $(unstage)
	@[ -f ./tcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in tcl"; \
	(cd $(HOST_SUBDIR)/tcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif tcl

.PHONY: maybe-dvi-tcl dvi-tcl
maybe-dvi-tcl:
@if tcl
maybe-dvi-tcl: dvi-tcl

dvi-tcl: \
    configure-tcl 
	@: $(MAKE); $(unstage)
	@[ -f ./tcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in tcl"; \
	(cd $(HOST_SUBDIR)/tcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif tcl

.PHONY: maybe-pdf-tcl pdf-tcl
maybe-pdf-tcl:
@if tcl
maybe-pdf-tcl: pdf-tcl

pdf-tcl: \
    configure-tcl 
	@: $(MAKE); $(unstage)
	@[ -f ./tcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in tcl"; \
	(cd $(HOST_SUBDIR)/tcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif tcl

.PHONY: maybe-html-tcl html-tcl
maybe-html-tcl:
@if tcl
maybe-html-tcl: html-tcl

html-tcl: \
    configure-tcl 
	@: $(MAKE); $(unstage)
	@[ -f ./tcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in tcl"; \
	(cd $(HOST_SUBDIR)/tcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif tcl

.PHONY: maybe-TAGS-tcl TAGS-tcl
maybe-TAGS-tcl:
@if tcl
maybe-TAGS-tcl: TAGS-tcl

TAGS-tcl: \
    configure-tcl 
	@: $(MAKE); $(unstage)
	@[ -f ./tcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in tcl"; \
	(cd $(HOST_SUBDIR)/tcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif tcl

.PHONY: maybe-install-info-tcl install-info-tcl
maybe-install-info-tcl:
@if tcl
maybe-install-info-tcl: install-info-tcl

install-info-tcl: \
    configure-tcl \
    info-tcl 
	@: $(MAKE); $(unstage)
	@[ -f ./tcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in tcl"; \
	(cd $(HOST_SUBDIR)/tcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif tcl

.PHONY: maybe-install-pdf-tcl install-pdf-tcl
maybe-install-pdf-tcl:
@if tcl
maybe-install-pdf-tcl: install-pdf-tcl

install-pdf-tcl: \
    configure-tcl \
    pdf-tcl 
	@: $(MAKE); $(unstage)
	@[ -f ./tcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in tcl"; \
	(cd $(HOST_SUBDIR)/tcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif tcl

.PHONY: maybe-install-html-tcl install-html-tcl
maybe-install-html-tcl:
@if tcl
maybe-install-html-tcl: install-html-tcl

install-html-tcl: \
    configure-tcl \
    html-tcl 
	@: $(MAKE); $(unstage)
	@[ -f ./tcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in tcl"; \
	(cd $(HOST_SUBDIR)/tcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif tcl

.PHONY: maybe-installcheck-tcl installcheck-tcl
maybe-installcheck-tcl:
@if tcl
maybe-installcheck-tcl: installcheck-tcl

installcheck-tcl: \
    configure-tcl 
	@: $(MAKE); $(unstage)
	@[ -f ./tcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in tcl"; \
	(cd $(HOST_SUBDIR)/tcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif tcl

.PHONY: maybe-mostlyclean-tcl mostlyclean-tcl
maybe-mostlyclean-tcl:
@if tcl
maybe-mostlyclean-tcl: mostlyclean-tcl

# tcl doesn't support mostlyclean.
mostlyclean-tcl:

@endif tcl

.PHONY: maybe-clean-tcl clean-tcl
maybe-clean-tcl:
@if tcl
maybe-clean-tcl: clean-tcl

clean-tcl: 
	@: $(MAKE); $(unstage)
	@[ -f ./tcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in tcl"; \
	(cd $(HOST_SUBDIR)/tcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif tcl

.PHONY: maybe-distclean-tcl distclean-tcl
maybe-distclean-tcl:
@if tcl
maybe-distclean-tcl: distclean-tcl

distclean-tcl: 
	@: $(MAKE); $(unstage)
	@[ -f ./tcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in tcl"; \
	(cd $(HOST_SUBDIR)/tcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif tcl

.PHONY: maybe-maintainer-clean-tcl maintainer-clean-tcl
maybe-maintainer-clean-tcl:
@if tcl
maybe-maintainer-clean-tcl: maintainer-clean-tcl

maintainer-clean-tcl: 
	@: $(MAKE); $(unstage)
	@[ -f ./tcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in tcl"; \
	(cd $(HOST_SUBDIR)/tcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif tcl



.PHONY: configure-itcl maybe-configure-itcl
maybe-configure-itcl:
@if gcc-bootstrap
configure-itcl: stage_current
@endif gcc-bootstrap
@if itcl
maybe-configure-itcl: configure-itcl
configure-itcl: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/itcl/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/itcl; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/itcl; \
	cd "$(HOST_SUBDIR)/itcl" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/itcl/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=itcl; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif itcl





.PHONY: all-itcl maybe-all-itcl
maybe-all-itcl:
@if gcc-bootstrap
all-itcl: stage_current
@endif gcc-bootstrap
@if itcl
TARGET-itcl=all
maybe-all-itcl: all-itcl
all-itcl: configure-itcl
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/itcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-itcl))
@endif itcl




.PHONY: check-itcl maybe-check-itcl
maybe-check-itcl:
@if itcl
maybe-check-itcl: check-itcl

check-itcl:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/itcl && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif itcl

.PHONY: install-itcl maybe-install-itcl
maybe-install-itcl:
@if itcl
maybe-install-itcl: install-itcl

install-itcl: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/itcl && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif itcl

.PHONY: install-strip-itcl maybe-install-strip-itcl
maybe-install-strip-itcl:
@if itcl
maybe-install-strip-itcl: install-strip-itcl

install-strip-itcl: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/itcl && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif itcl

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-itcl info-itcl
maybe-info-itcl:
@if itcl
maybe-info-itcl: info-itcl

info-itcl: \
    configure-itcl 
	@: $(MAKE); $(unstage)
	@[ -f ./itcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in itcl"; \
	(cd $(HOST_SUBDIR)/itcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif itcl

.PHONY: maybe-dvi-itcl dvi-itcl
maybe-dvi-itcl:
@if itcl
maybe-dvi-itcl: dvi-itcl

dvi-itcl: \
    configure-itcl 
	@: $(MAKE); $(unstage)
	@[ -f ./itcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in itcl"; \
	(cd $(HOST_SUBDIR)/itcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif itcl

.PHONY: maybe-pdf-itcl pdf-itcl
maybe-pdf-itcl:
@if itcl
maybe-pdf-itcl: pdf-itcl

pdf-itcl: \
    configure-itcl 
	@: $(MAKE); $(unstage)
	@[ -f ./itcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in itcl"; \
	(cd $(HOST_SUBDIR)/itcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif itcl

.PHONY: maybe-html-itcl html-itcl
maybe-html-itcl:
@if itcl
maybe-html-itcl: html-itcl

html-itcl: \
    configure-itcl 
	@: $(MAKE); $(unstage)
	@[ -f ./itcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in itcl"; \
	(cd $(HOST_SUBDIR)/itcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif itcl

.PHONY: maybe-TAGS-itcl TAGS-itcl
maybe-TAGS-itcl:
@if itcl
maybe-TAGS-itcl: TAGS-itcl

TAGS-itcl: \
    configure-itcl 
	@: $(MAKE); $(unstage)
	@[ -f ./itcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in itcl"; \
	(cd $(HOST_SUBDIR)/itcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif itcl

.PHONY: maybe-install-info-itcl install-info-itcl
maybe-install-info-itcl:
@if itcl
maybe-install-info-itcl: install-info-itcl

install-info-itcl: \
    configure-itcl \
    info-itcl 
	@: $(MAKE); $(unstage)
	@[ -f ./itcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in itcl"; \
	(cd $(HOST_SUBDIR)/itcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif itcl

.PHONY: maybe-install-pdf-itcl install-pdf-itcl
maybe-install-pdf-itcl:
@if itcl
maybe-install-pdf-itcl: install-pdf-itcl

install-pdf-itcl: \
    configure-itcl \
    pdf-itcl 
	@: $(MAKE); $(unstage)
	@[ -f ./itcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in itcl"; \
	(cd $(HOST_SUBDIR)/itcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif itcl

.PHONY: maybe-install-html-itcl install-html-itcl
maybe-install-html-itcl:
@if itcl
maybe-install-html-itcl: install-html-itcl

install-html-itcl: \
    configure-itcl \
    html-itcl 
	@: $(MAKE); $(unstage)
	@[ -f ./itcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in itcl"; \
	(cd $(HOST_SUBDIR)/itcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif itcl

.PHONY: maybe-installcheck-itcl installcheck-itcl
maybe-installcheck-itcl:
@if itcl
maybe-installcheck-itcl: installcheck-itcl

installcheck-itcl: \
    configure-itcl 
	@: $(MAKE); $(unstage)
	@[ -f ./itcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in itcl"; \
	(cd $(HOST_SUBDIR)/itcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif itcl

.PHONY: maybe-mostlyclean-itcl mostlyclean-itcl
maybe-mostlyclean-itcl:
@if itcl
maybe-mostlyclean-itcl: mostlyclean-itcl

mostlyclean-itcl: 
	@: $(MAKE); $(unstage)
	@[ -f ./itcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in itcl"; \
	(cd $(HOST_SUBDIR)/itcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif itcl

.PHONY: maybe-clean-itcl clean-itcl
maybe-clean-itcl:
@if itcl
maybe-clean-itcl: clean-itcl

clean-itcl: 
	@: $(MAKE); $(unstage)
	@[ -f ./itcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in itcl"; \
	(cd $(HOST_SUBDIR)/itcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif itcl

.PHONY: maybe-distclean-itcl distclean-itcl
maybe-distclean-itcl:
@if itcl
maybe-distclean-itcl: distclean-itcl

distclean-itcl: 
	@: $(MAKE); $(unstage)
	@[ -f ./itcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in itcl"; \
	(cd $(HOST_SUBDIR)/itcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif itcl

.PHONY: maybe-maintainer-clean-itcl maintainer-clean-itcl
maybe-maintainer-clean-itcl:
@if itcl
maybe-maintainer-clean-itcl: maintainer-clean-itcl

maintainer-clean-itcl: 
	@: $(MAKE); $(unstage)
	@[ -f ./itcl/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in itcl"; \
	(cd $(HOST_SUBDIR)/itcl && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif itcl



.PHONY: configure-ld maybe-configure-ld
maybe-configure-ld:
@if gcc-bootstrap
configure-ld: stage_current
@endif gcc-bootstrap
@if ld
maybe-configure-ld: configure-ld
configure-ld: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/ld; \
	cd "$(HOST_SUBDIR)/ld" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/ld/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=ld; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif ld



.PHONY: configure-stage1-ld maybe-configure-stage1-ld
maybe-configure-stage1-ld:
@if ld-bootstrap
maybe-configure-stage1-ld: configure-stage1-ld
configure-stage1-ld:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/ld; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld; \
	cd $(HOST_SUBDIR)/ld || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/ld/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=ld; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif ld-bootstrap

.PHONY: configure-stage2-ld maybe-configure-stage2-ld
maybe-configure-stage2-ld:
@if ld-bootstrap
maybe-configure-stage2-ld: configure-stage2-ld
configure-stage2-ld:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/ld; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld; \
	cd $(HOST_SUBDIR)/ld || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/ld/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=ld; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS)
@endif ld-bootstrap

.PHONY: configure-stage3-ld maybe-configure-stage3-ld
maybe-configure-stage3-ld:
@if ld-bootstrap
maybe-configure-stage3-ld: configure-stage3-ld
configure-stage3-ld:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/ld; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld; \
	cd $(HOST_SUBDIR)/ld || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/ld/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=ld; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS)
@endif ld-bootstrap

.PHONY: configure-stage4-ld maybe-configure-stage4-ld
maybe-configure-stage4-ld:
@if ld-bootstrap
maybe-configure-stage4-ld: configure-stage4-ld
configure-stage4-ld:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/ld; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld; \
	cd $(HOST_SUBDIR)/ld || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/ld/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=ld; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS)
@endif ld-bootstrap

.PHONY: configure-stageprofile-ld maybe-configure-stageprofile-ld
maybe-configure-stageprofile-ld:
@if ld-bootstrap
maybe-configure-stageprofile-ld: configure-stageprofile-ld
configure-stageprofile-ld:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/ld; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld; \
	cd $(HOST_SUBDIR)/ld || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/ld/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=ld; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS)
@endif ld-bootstrap

.PHONY: configure-stagetrain-ld maybe-configure-stagetrain-ld
maybe-configure-stagetrain-ld:
@if ld-bootstrap
maybe-configure-stagetrain-ld: configure-stagetrain-ld
configure-stagetrain-ld:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/ld; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld; \
	cd $(HOST_SUBDIR)/ld || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/ld/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=ld; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS)
@endif ld-bootstrap

.PHONY: configure-stagefeedback-ld maybe-configure-stagefeedback-ld
maybe-configure-stagefeedback-ld:
@if ld-bootstrap
maybe-configure-stagefeedback-ld: configure-stagefeedback-ld
configure-stagefeedback-ld:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/ld; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld; \
	cd $(HOST_SUBDIR)/ld || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/ld/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=ld; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS)
@endif ld-bootstrap

.PHONY: configure-stageautoprofile-ld maybe-configure-stageautoprofile-ld
maybe-configure-stageautoprofile-ld:
@if ld-bootstrap
maybe-configure-stageautoprofile-ld: configure-stageautoprofile-ld
configure-stageautoprofile-ld:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/ld; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld; \
	cd $(HOST_SUBDIR)/ld || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/ld/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=ld; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS)
@endif ld-bootstrap

.PHONY: configure-stageautofeedback-ld maybe-configure-stageautofeedback-ld
maybe-configure-stageautofeedback-ld:
@if ld-bootstrap
maybe-configure-stageautofeedback-ld: configure-stageautofeedback-ld
configure-stageautofeedback-ld:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/ld/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/ld; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/ld; \
	cd $(HOST_SUBDIR)/ld || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/ld/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=ld; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS)
@endif ld-bootstrap





.PHONY: all-ld maybe-all-ld
maybe-all-ld:
@if gcc-bootstrap
all-ld: stage_current
@endif gcc-bootstrap
@if ld
TARGET-ld=all
maybe-all-ld: all-ld
all-ld: configure-ld
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/ld && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-ld))
@endif ld



.PHONY: all-stage1-ld maybe-all-stage1-ld
.PHONY: clean-stage1-ld maybe-clean-stage1-ld
maybe-all-stage1-ld:
maybe-clean-stage1-ld:
@if ld-bootstrap
maybe-all-stage1-ld: all-stage1-ld
all-stage1: all-stage1-ld
TARGET-stage1-ld = $(TARGET-ld)
all-stage1-ld: configure-stage1-ld
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/ld && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-ld)

maybe-clean-stage1-ld: clean-stage1-ld
clean-stage1: clean-stage1-ld
clean-stage1-ld:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/ld/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-ld/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/ld && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS)  clean
@endif ld-bootstrap


.PHONY: all-stage2-ld maybe-all-stage2-ld
.PHONY: clean-stage2-ld maybe-clean-stage2-ld
maybe-all-stage2-ld:
maybe-clean-stage2-ld:
@if ld-bootstrap
maybe-all-stage2-ld: all-stage2-ld
all-stage2: all-stage2-ld
TARGET-stage2-ld = $(TARGET-ld)
all-stage2-ld: configure-stage2-ld
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/ld && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-ld)

maybe-clean-stage2-ld: clean-stage2-ld
clean-stage2: clean-stage2-ld
clean-stage2-ld:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/ld/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-ld/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/ld && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif ld-bootstrap


.PHONY: all-stage3-ld maybe-all-stage3-ld
.PHONY: clean-stage3-ld maybe-clean-stage3-ld
maybe-all-stage3-ld:
maybe-clean-stage3-ld:
@if ld-bootstrap
maybe-all-stage3-ld: all-stage3-ld
all-stage3: all-stage3-ld
TARGET-stage3-ld = $(TARGET-ld)
all-stage3-ld: configure-stage3-ld
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/ld && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-ld)

maybe-clean-stage3-ld: clean-stage3-ld
clean-stage3: clean-stage3-ld
clean-stage3-ld:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/ld/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-ld/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/ld && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif ld-bootstrap


.PHONY: all-stage4-ld maybe-all-stage4-ld
.PHONY: clean-stage4-ld maybe-clean-stage4-ld
maybe-all-stage4-ld:
maybe-clean-stage4-ld:
@if ld-bootstrap
maybe-all-stage4-ld: all-stage4-ld
all-stage4: all-stage4-ld
TARGET-stage4-ld = $(TARGET-ld)
all-stage4-ld: configure-stage4-ld
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/ld && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-ld)

maybe-clean-stage4-ld: clean-stage4-ld
clean-stage4: clean-stage4-ld
clean-stage4-ld:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/ld/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-ld/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/ld && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif ld-bootstrap


.PHONY: all-stageprofile-ld maybe-all-stageprofile-ld
.PHONY: clean-stageprofile-ld maybe-clean-stageprofile-ld
maybe-all-stageprofile-ld:
maybe-clean-stageprofile-ld:
@if ld-bootstrap
maybe-all-stageprofile-ld: all-stageprofile-ld
all-stageprofile: all-stageprofile-ld
TARGET-stageprofile-ld = $(TARGET-ld)
all-stageprofile-ld: configure-stageprofile-ld
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/ld && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-ld)

maybe-clean-stageprofile-ld: clean-stageprofile-ld
clean-stageprofile: clean-stageprofile-ld
clean-stageprofile-ld:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/ld/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-ld/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/ld && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif ld-bootstrap


.PHONY: all-stagetrain-ld maybe-all-stagetrain-ld
.PHONY: clean-stagetrain-ld maybe-clean-stagetrain-ld
maybe-all-stagetrain-ld:
maybe-clean-stagetrain-ld:
@if ld-bootstrap
maybe-all-stagetrain-ld: all-stagetrain-ld
all-stagetrain: all-stagetrain-ld
TARGET-stagetrain-ld = $(TARGET-ld)
all-stagetrain-ld: configure-stagetrain-ld
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/ld && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-ld)

maybe-clean-stagetrain-ld: clean-stagetrain-ld
clean-stagetrain: clean-stagetrain-ld
clean-stagetrain-ld:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/ld/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-ld/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/ld && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif ld-bootstrap


.PHONY: all-stagefeedback-ld maybe-all-stagefeedback-ld
.PHONY: clean-stagefeedback-ld maybe-clean-stagefeedback-ld
maybe-all-stagefeedback-ld:
maybe-clean-stagefeedback-ld:
@if ld-bootstrap
maybe-all-stagefeedback-ld: all-stagefeedback-ld
all-stagefeedback: all-stagefeedback-ld
TARGET-stagefeedback-ld = $(TARGET-ld)
all-stagefeedback-ld: configure-stagefeedback-ld
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/ld && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-ld)

maybe-clean-stagefeedback-ld: clean-stagefeedback-ld
clean-stagefeedback: clean-stagefeedback-ld
clean-stagefeedback-ld:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/ld/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-ld/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/ld && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif ld-bootstrap


.PHONY: all-stageautoprofile-ld maybe-all-stageautoprofile-ld
.PHONY: clean-stageautoprofile-ld maybe-clean-stageautoprofile-ld
maybe-all-stageautoprofile-ld:
maybe-clean-stageautoprofile-ld:
@if ld-bootstrap
maybe-all-stageautoprofile-ld: all-stageautoprofile-ld
all-stageautoprofile: all-stageautoprofile-ld
TARGET-stageautoprofile-ld = $(TARGET-ld)
all-stageautoprofile-ld: configure-stageautoprofile-ld
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/ld && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-ld)

maybe-clean-stageautoprofile-ld: clean-stageautoprofile-ld
clean-stageautoprofile: clean-stageautoprofile-ld
clean-stageautoprofile-ld:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/ld/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-ld/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/ld && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif ld-bootstrap


.PHONY: all-stageautofeedback-ld maybe-all-stageautofeedback-ld
.PHONY: clean-stageautofeedback-ld maybe-clean-stageautofeedback-ld
maybe-all-stageautofeedback-ld:
maybe-clean-stageautofeedback-ld:
@if ld-bootstrap
maybe-all-stageautofeedback-ld: all-stageautofeedback-ld
all-stageautofeedback: all-stageautofeedback-ld
TARGET-stageautofeedback-ld = $(TARGET-ld)
all-stageautofeedback-ld: configure-stageautofeedback-ld
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/ld && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-ld)

maybe-clean-stageautofeedback-ld: clean-stageautofeedback-ld
clean-stageautofeedback: clean-stageautofeedback-ld
clean-stageautofeedback-ld:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/ld/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-ld/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/ld && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif ld-bootstrap





.PHONY: check-ld maybe-check-ld
maybe-check-ld:
@if ld
maybe-check-ld: check-ld

check-ld:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/ld && \
	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif ld

.PHONY: install-ld maybe-install-ld
maybe-install-ld:
@if ld
maybe-install-ld: install-ld

install-ld: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/ld && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif ld

.PHONY: install-strip-ld maybe-install-strip-ld
maybe-install-strip-ld:
@if ld
maybe-install-strip-ld: install-strip-ld

install-strip-ld: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/ld && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif ld

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-ld info-ld
maybe-info-ld:
@if ld
maybe-info-ld: info-ld

info-ld: \
    configure-ld 
	@[ -f ./ld/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in ld"; \
	(cd $(HOST_SUBDIR)/ld && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif ld

.PHONY: maybe-dvi-ld dvi-ld
maybe-dvi-ld:
@if ld
maybe-dvi-ld: dvi-ld

dvi-ld: \
    configure-ld 
	@[ -f ./ld/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in ld"; \
	(cd $(HOST_SUBDIR)/ld && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif ld

.PHONY: maybe-pdf-ld pdf-ld
maybe-pdf-ld:
@if ld
maybe-pdf-ld: pdf-ld

pdf-ld: \
    configure-ld 
	@[ -f ./ld/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in ld"; \
	(cd $(HOST_SUBDIR)/ld && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif ld

.PHONY: maybe-html-ld html-ld
maybe-html-ld:
@if ld
maybe-html-ld: html-ld

html-ld: \
    configure-ld 
	@[ -f ./ld/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in ld"; \
	(cd $(HOST_SUBDIR)/ld && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif ld

.PHONY: maybe-TAGS-ld TAGS-ld
maybe-TAGS-ld:
@if ld
maybe-TAGS-ld: TAGS-ld

TAGS-ld: \
    configure-ld 
	@[ -f ./ld/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in ld"; \
	(cd $(HOST_SUBDIR)/ld && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif ld

.PHONY: maybe-install-info-ld install-info-ld
maybe-install-info-ld:
@if ld
maybe-install-info-ld: install-info-ld

install-info-ld: \
    configure-ld \
    info-ld 
	@[ -f ./ld/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in ld"; \
	(cd $(HOST_SUBDIR)/ld && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif ld

.PHONY: maybe-install-pdf-ld install-pdf-ld
maybe-install-pdf-ld:
@if ld
maybe-install-pdf-ld: install-pdf-ld

install-pdf-ld: \
    configure-ld \
    pdf-ld 
	@[ -f ./ld/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in ld"; \
	(cd $(HOST_SUBDIR)/ld && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif ld

.PHONY: maybe-install-html-ld install-html-ld
maybe-install-html-ld:
@if ld
maybe-install-html-ld: install-html-ld

install-html-ld: \
    configure-ld \
    html-ld 
	@[ -f ./ld/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in ld"; \
	(cd $(HOST_SUBDIR)/ld && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif ld

.PHONY: maybe-installcheck-ld installcheck-ld
maybe-installcheck-ld:
@if ld
maybe-installcheck-ld: installcheck-ld

installcheck-ld: \
    configure-ld 
	@[ -f ./ld/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in ld"; \
	(cd $(HOST_SUBDIR)/ld && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif ld

.PHONY: maybe-mostlyclean-ld mostlyclean-ld
maybe-mostlyclean-ld:
@if ld
maybe-mostlyclean-ld: mostlyclean-ld

mostlyclean-ld: 
	@[ -f ./ld/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in ld"; \
	(cd $(HOST_SUBDIR)/ld && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif ld

.PHONY: maybe-clean-ld clean-ld
maybe-clean-ld:
@if ld
maybe-clean-ld: clean-ld

clean-ld: 
	@[ -f ./ld/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in ld"; \
	(cd $(HOST_SUBDIR)/ld && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif ld

.PHONY: maybe-distclean-ld distclean-ld
maybe-distclean-ld:
@if ld
maybe-distclean-ld: distclean-ld

distclean-ld: 
	@[ -f ./ld/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in ld"; \
	(cd $(HOST_SUBDIR)/ld && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif ld

.PHONY: maybe-maintainer-clean-ld maintainer-clean-ld
maybe-maintainer-clean-ld:
@if ld
maybe-maintainer-clean-ld: maintainer-clean-ld

maintainer-clean-ld: 
	@[ -f ./ld/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in ld"; \
	(cd $(HOST_SUBDIR)/ld && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif ld



.PHONY: configure-libbacktrace maybe-configure-libbacktrace
maybe-configure-libbacktrace:
@if gcc-bootstrap
configure-libbacktrace: stage_current
@endif gcc-bootstrap
@if libbacktrace
maybe-configure-libbacktrace: configure-libbacktrace
configure-libbacktrace: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/libbacktrace/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/libbacktrace; \
	cd "$(HOST_SUBDIR)/libbacktrace" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libbacktrace/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libbacktrace; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif libbacktrace



.PHONY: configure-stage1-libbacktrace maybe-configure-stage1-libbacktrace
maybe-configure-stage1-libbacktrace:
@if libbacktrace-bootstrap
maybe-configure-stage1-libbacktrace: configure-stage1-libbacktrace
configure-stage1-libbacktrace:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libbacktrace/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace; \
	cd $(HOST_SUBDIR)/libbacktrace || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libbacktrace/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libbacktrace; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif libbacktrace-bootstrap

.PHONY: configure-stage2-libbacktrace maybe-configure-stage2-libbacktrace
maybe-configure-stage2-libbacktrace:
@if libbacktrace-bootstrap
maybe-configure-stage2-libbacktrace: configure-stage2-libbacktrace
configure-stage2-libbacktrace:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libbacktrace/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace; \
	cd $(HOST_SUBDIR)/libbacktrace || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libbacktrace/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libbacktrace; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS)
@endif libbacktrace-bootstrap

.PHONY: configure-stage3-libbacktrace maybe-configure-stage3-libbacktrace
maybe-configure-stage3-libbacktrace:
@if libbacktrace-bootstrap
maybe-configure-stage3-libbacktrace: configure-stage3-libbacktrace
configure-stage3-libbacktrace:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libbacktrace/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace; \
	cd $(HOST_SUBDIR)/libbacktrace || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libbacktrace/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libbacktrace; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS)
@endif libbacktrace-bootstrap

.PHONY: configure-stage4-libbacktrace maybe-configure-stage4-libbacktrace
maybe-configure-stage4-libbacktrace:
@if libbacktrace-bootstrap
maybe-configure-stage4-libbacktrace: configure-stage4-libbacktrace
configure-stage4-libbacktrace:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libbacktrace/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace; \
	cd $(HOST_SUBDIR)/libbacktrace || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libbacktrace/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libbacktrace; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS)
@endif libbacktrace-bootstrap

.PHONY: configure-stageprofile-libbacktrace maybe-configure-stageprofile-libbacktrace
maybe-configure-stageprofile-libbacktrace:
@if libbacktrace-bootstrap
maybe-configure-stageprofile-libbacktrace: configure-stageprofile-libbacktrace
configure-stageprofile-libbacktrace:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libbacktrace/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace; \
	cd $(HOST_SUBDIR)/libbacktrace || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libbacktrace/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libbacktrace; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS)
@endif libbacktrace-bootstrap

.PHONY: configure-stagetrain-libbacktrace maybe-configure-stagetrain-libbacktrace
maybe-configure-stagetrain-libbacktrace:
@if libbacktrace-bootstrap
maybe-configure-stagetrain-libbacktrace: configure-stagetrain-libbacktrace
configure-stagetrain-libbacktrace:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libbacktrace/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace; \
	cd $(HOST_SUBDIR)/libbacktrace || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libbacktrace/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libbacktrace; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS)
@endif libbacktrace-bootstrap

.PHONY: configure-stagefeedback-libbacktrace maybe-configure-stagefeedback-libbacktrace
maybe-configure-stagefeedback-libbacktrace:
@if libbacktrace-bootstrap
maybe-configure-stagefeedback-libbacktrace: configure-stagefeedback-libbacktrace
configure-stagefeedback-libbacktrace:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libbacktrace/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace; \
	cd $(HOST_SUBDIR)/libbacktrace || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libbacktrace/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libbacktrace; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS)
@endif libbacktrace-bootstrap

.PHONY: configure-stageautoprofile-libbacktrace maybe-configure-stageautoprofile-libbacktrace
maybe-configure-stageautoprofile-libbacktrace:
@if libbacktrace-bootstrap
maybe-configure-stageautoprofile-libbacktrace: configure-stageautoprofile-libbacktrace
configure-stageautoprofile-libbacktrace:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libbacktrace/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace; \
	cd $(HOST_SUBDIR)/libbacktrace || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libbacktrace/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libbacktrace; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS)
@endif libbacktrace-bootstrap

.PHONY: configure-stageautofeedback-libbacktrace maybe-configure-stageautofeedback-libbacktrace
maybe-configure-stageautofeedback-libbacktrace:
@if libbacktrace-bootstrap
maybe-configure-stageautofeedback-libbacktrace: configure-stageautofeedback-libbacktrace
configure-stageautofeedback-libbacktrace:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libbacktrace/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libbacktrace; \
	cd $(HOST_SUBDIR)/libbacktrace || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libbacktrace/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libbacktrace; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS)
@endif libbacktrace-bootstrap





.PHONY: all-libbacktrace maybe-all-libbacktrace
maybe-all-libbacktrace:
@if gcc-bootstrap
all-libbacktrace: stage_current
@endif gcc-bootstrap
@if libbacktrace
TARGET-libbacktrace=all
maybe-all-libbacktrace: all-libbacktrace
all-libbacktrace: configure-libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-libbacktrace))
@endif libbacktrace



.PHONY: all-stage1-libbacktrace maybe-all-stage1-libbacktrace
.PHONY: clean-stage1-libbacktrace maybe-clean-stage1-libbacktrace
maybe-all-stage1-libbacktrace:
maybe-clean-stage1-libbacktrace:
@if libbacktrace-bootstrap
maybe-all-stage1-libbacktrace: all-stage1-libbacktrace
all-stage1: all-stage1-libbacktrace
TARGET-stage1-libbacktrace = $(TARGET-libbacktrace)
all-stage1-libbacktrace: configure-stage1-libbacktrace
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libbacktrace && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-libbacktrace)

maybe-clean-stage1-libbacktrace: clean-stage1-libbacktrace
clean-stage1: clean-stage1-libbacktrace
clean-stage1-libbacktrace:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS)  clean
@endif libbacktrace-bootstrap


.PHONY: all-stage2-libbacktrace maybe-all-stage2-libbacktrace
.PHONY: clean-stage2-libbacktrace maybe-clean-stage2-libbacktrace
maybe-all-stage2-libbacktrace:
maybe-clean-stage2-libbacktrace:
@if libbacktrace-bootstrap
maybe-all-stage2-libbacktrace: all-stage2-libbacktrace
all-stage2: all-stage2-libbacktrace
TARGET-stage2-libbacktrace = $(TARGET-libbacktrace)
all-stage2-libbacktrace: configure-stage2-libbacktrace
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libbacktrace && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-libbacktrace)

maybe-clean-stage2-libbacktrace: clean-stage2-libbacktrace
clean-stage2: clean-stage2-libbacktrace
clean-stage2-libbacktrace:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libbacktrace-bootstrap


.PHONY: all-stage3-libbacktrace maybe-all-stage3-libbacktrace
.PHONY: clean-stage3-libbacktrace maybe-clean-stage3-libbacktrace
maybe-all-stage3-libbacktrace:
maybe-clean-stage3-libbacktrace:
@if libbacktrace-bootstrap
maybe-all-stage3-libbacktrace: all-stage3-libbacktrace
all-stage3: all-stage3-libbacktrace
TARGET-stage3-libbacktrace = $(TARGET-libbacktrace)
all-stage3-libbacktrace: configure-stage3-libbacktrace
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libbacktrace && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-libbacktrace)

maybe-clean-stage3-libbacktrace: clean-stage3-libbacktrace
clean-stage3: clean-stage3-libbacktrace
clean-stage3-libbacktrace:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libbacktrace-bootstrap


.PHONY: all-stage4-libbacktrace maybe-all-stage4-libbacktrace
.PHONY: clean-stage4-libbacktrace maybe-clean-stage4-libbacktrace
maybe-all-stage4-libbacktrace:
maybe-clean-stage4-libbacktrace:
@if libbacktrace-bootstrap
maybe-all-stage4-libbacktrace: all-stage4-libbacktrace
all-stage4: all-stage4-libbacktrace
TARGET-stage4-libbacktrace = $(TARGET-libbacktrace)
all-stage4-libbacktrace: configure-stage4-libbacktrace
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libbacktrace && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-libbacktrace)

maybe-clean-stage4-libbacktrace: clean-stage4-libbacktrace
clean-stage4: clean-stage4-libbacktrace
clean-stage4-libbacktrace:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libbacktrace-bootstrap


.PHONY: all-stageprofile-libbacktrace maybe-all-stageprofile-libbacktrace
.PHONY: clean-stageprofile-libbacktrace maybe-clean-stageprofile-libbacktrace
maybe-all-stageprofile-libbacktrace:
maybe-clean-stageprofile-libbacktrace:
@if libbacktrace-bootstrap
maybe-all-stageprofile-libbacktrace: all-stageprofile-libbacktrace
all-stageprofile: all-stageprofile-libbacktrace
TARGET-stageprofile-libbacktrace = $(TARGET-libbacktrace)
all-stageprofile-libbacktrace: configure-stageprofile-libbacktrace
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libbacktrace && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-libbacktrace)

maybe-clean-stageprofile-libbacktrace: clean-stageprofile-libbacktrace
clean-stageprofile: clean-stageprofile-libbacktrace
clean-stageprofile-libbacktrace:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libbacktrace-bootstrap


.PHONY: all-stagetrain-libbacktrace maybe-all-stagetrain-libbacktrace
.PHONY: clean-stagetrain-libbacktrace maybe-clean-stagetrain-libbacktrace
maybe-all-stagetrain-libbacktrace:
maybe-clean-stagetrain-libbacktrace:
@if libbacktrace-bootstrap
maybe-all-stagetrain-libbacktrace: all-stagetrain-libbacktrace
all-stagetrain: all-stagetrain-libbacktrace
TARGET-stagetrain-libbacktrace = $(TARGET-libbacktrace)
all-stagetrain-libbacktrace: configure-stagetrain-libbacktrace
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libbacktrace && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-libbacktrace)

maybe-clean-stagetrain-libbacktrace: clean-stagetrain-libbacktrace
clean-stagetrain: clean-stagetrain-libbacktrace
clean-stagetrain-libbacktrace:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libbacktrace-bootstrap


.PHONY: all-stagefeedback-libbacktrace maybe-all-stagefeedback-libbacktrace
.PHONY: clean-stagefeedback-libbacktrace maybe-clean-stagefeedback-libbacktrace
maybe-all-stagefeedback-libbacktrace:
maybe-clean-stagefeedback-libbacktrace:
@if libbacktrace-bootstrap
maybe-all-stagefeedback-libbacktrace: all-stagefeedback-libbacktrace
all-stagefeedback: all-stagefeedback-libbacktrace
TARGET-stagefeedback-libbacktrace = $(TARGET-libbacktrace)
all-stagefeedback-libbacktrace: configure-stagefeedback-libbacktrace
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libbacktrace && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-libbacktrace)

maybe-clean-stagefeedback-libbacktrace: clean-stagefeedback-libbacktrace
clean-stagefeedback: clean-stagefeedback-libbacktrace
clean-stagefeedback-libbacktrace:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libbacktrace-bootstrap


.PHONY: all-stageautoprofile-libbacktrace maybe-all-stageautoprofile-libbacktrace
.PHONY: clean-stageautoprofile-libbacktrace maybe-clean-stageautoprofile-libbacktrace
maybe-all-stageautoprofile-libbacktrace:
maybe-clean-stageautoprofile-libbacktrace:
@if libbacktrace-bootstrap
maybe-all-stageautoprofile-libbacktrace: all-stageautoprofile-libbacktrace
all-stageautoprofile: all-stageautoprofile-libbacktrace
TARGET-stageautoprofile-libbacktrace = $(TARGET-libbacktrace)
all-stageautoprofile-libbacktrace: configure-stageautoprofile-libbacktrace
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libbacktrace && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-libbacktrace)

maybe-clean-stageautoprofile-libbacktrace: clean-stageautoprofile-libbacktrace
clean-stageautoprofile: clean-stageautoprofile-libbacktrace
clean-stageautoprofile-libbacktrace:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libbacktrace-bootstrap


.PHONY: all-stageautofeedback-libbacktrace maybe-all-stageautofeedback-libbacktrace
.PHONY: clean-stageautofeedback-libbacktrace maybe-clean-stageautofeedback-libbacktrace
maybe-all-stageautofeedback-libbacktrace:
maybe-clean-stageautofeedback-libbacktrace:
@if libbacktrace-bootstrap
maybe-all-stageautofeedback-libbacktrace: all-stageautofeedback-libbacktrace
all-stageautofeedback: all-stageautofeedback-libbacktrace
TARGET-stageautofeedback-libbacktrace = $(TARGET-libbacktrace)
all-stageautofeedback-libbacktrace: configure-stageautofeedback-libbacktrace
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libbacktrace && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-libbacktrace)

maybe-clean-stageautofeedback-libbacktrace: clean-stageautofeedback-libbacktrace
clean-stageautofeedback: clean-stageautofeedback-libbacktrace
clean-stageautofeedback-libbacktrace:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libbacktrace-bootstrap





.PHONY: check-libbacktrace maybe-check-libbacktrace
maybe-check-libbacktrace:
@if libbacktrace
maybe-check-libbacktrace: check-libbacktrace

check-libbacktrace:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libbacktrace && \
	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif libbacktrace

.PHONY: install-libbacktrace maybe-install-libbacktrace
maybe-install-libbacktrace:
@if libbacktrace
maybe-install-libbacktrace: install-libbacktrace

install-libbacktrace: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libbacktrace && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif libbacktrace

.PHONY: install-strip-libbacktrace maybe-install-strip-libbacktrace
maybe-install-strip-libbacktrace:
@if libbacktrace
maybe-install-strip-libbacktrace: install-strip-libbacktrace

install-strip-libbacktrace: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libbacktrace && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif libbacktrace

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-libbacktrace info-libbacktrace
maybe-info-libbacktrace:
@if libbacktrace
maybe-info-libbacktrace: info-libbacktrace

info-libbacktrace: \
    configure-libbacktrace 
	@[ -f ./libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in libbacktrace"; \
	(cd $(HOST_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif libbacktrace

.PHONY: maybe-dvi-libbacktrace dvi-libbacktrace
maybe-dvi-libbacktrace:
@if libbacktrace
maybe-dvi-libbacktrace: dvi-libbacktrace

dvi-libbacktrace: \
    configure-libbacktrace 
	@[ -f ./libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in libbacktrace"; \
	(cd $(HOST_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif libbacktrace

.PHONY: maybe-pdf-libbacktrace pdf-libbacktrace
maybe-pdf-libbacktrace:
@if libbacktrace
maybe-pdf-libbacktrace: pdf-libbacktrace

pdf-libbacktrace: \
    configure-libbacktrace 
	@[ -f ./libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in libbacktrace"; \
	(cd $(HOST_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif libbacktrace

.PHONY: maybe-html-libbacktrace html-libbacktrace
maybe-html-libbacktrace:
@if libbacktrace
maybe-html-libbacktrace: html-libbacktrace

html-libbacktrace: \
    configure-libbacktrace 
	@[ -f ./libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in libbacktrace"; \
	(cd $(HOST_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif libbacktrace

.PHONY: maybe-TAGS-libbacktrace TAGS-libbacktrace
maybe-TAGS-libbacktrace:
@if libbacktrace
maybe-TAGS-libbacktrace: TAGS-libbacktrace

TAGS-libbacktrace: \
    configure-libbacktrace 
	@[ -f ./libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in libbacktrace"; \
	(cd $(HOST_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif libbacktrace

.PHONY: maybe-install-info-libbacktrace install-info-libbacktrace
maybe-install-info-libbacktrace:
@if libbacktrace
maybe-install-info-libbacktrace: install-info-libbacktrace

install-info-libbacktrace: \
    configure-libbacktrace \
    info-libbacktrace 
	@[ -f ./libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in libbacktrace"; \
	(cd $(HOST_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif libbacktrace

.PHONY: maybe-install-pdf-libbacktrace install-pdf-libbacktrace
maybe-install-pdf-libbacktrace:
@if libbacktrace
maybe-install-pdf-libbacktrace: install-pdf-libbacktrace

install-pdf-libbacktrace: \
    configure-libbacktrace \
    pdf-libbacktrace 
	@[ -f ./libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in libbacktrace"; \
	(cd $(HOST_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif libbacktrace

.PHONY: maybe-install-html-libbacktrace install-html-libbacktrace
maybe-install-html-libbacktrace:
@if libbacktrace
maybe-install-html-libbacktrace: install-html-libbacktrace

install-html-libbacktrace: \
    configure-libbacktrace \
    html-libbacktrace 
	@[ -f ./libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in libbacktrace"; \
	(cd $(HOST_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif libbacktrace

.PHONY: maybe-installcheck-libbacktrace installcheck-libbacktrace
maybe-installcheck-libbacktrace:
@if libbacktrace
maybe-installcheck-libbacktrace: installcheck-libbacktrace

installcheck-libbacktrace: \
    configure-libbacktrace 
	@[ -f ./libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in libbacktrace"; \
	(cd $(HOST_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif libbacktrace

.PHONY: maybe-mostlyclean-libbacktrace mostlyclean-libbacktrace
maybe-mostlyclean-libbacktrace:
@if libbacktrace
maybe-mostlyclean-libbacktrace: mostlyclean-libbacktrace

mostlyclean-libbacktrace: 
	@[ -f ./libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in libbacktrace"; \
	(cd $(HOST_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif libbacktrace

.PHONY: maybe-clean-libbacktrace clean-libbacktrace
maybe-clean-libbacktrace:
@if libbacktrace
maybe-clean-libbacktrace: clean-libbacktrace

clean-libbacktrace: 
	@[ -f ./libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in libbacktrace"; \
	(cd $(HOST_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif libbacktrace

.PHONY: maybe-distclean-libbacktrace distclean-libbacktrace
maybe-distclean-libbacktrace:
@if libbacktrace
maybe-distclean-libbacktrace: distclean-libbacktrace

distclean-libbacktrace: 
	@[ -f ./libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in libbacktrace"; \
	(cd $(HOST_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif libbacktrace

.PHONY: maybe-maintainer-clean-libbacktrace maintainer-clean-libbacktrace
maybe-maintainer-clean-libbacktrace:
@if libbacktrace
maybe-maintainer-clean-libbacktrace: maintainer-clean-libbacktrace

maintainer-clean-libbacktrace: 
	@[ -f ./libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in libbacktrace"; \
	(cd $(HOST_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif libbacktrace



.PHONY: configure-libcpp maybe-configure-libcpp
maybe-configure-libcpp:
@if gcc-bootstrap
configure-libcpp: stage_current
@endif gcc-bootstrap
@if libcpp
maybe-configure-libcpp: configure-libcpp
configure-libcpp: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/libcpp; \
	cd "$(HOST_SUBDIR)/libcpp" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcpp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcpp; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif libcpp



.PHONY: configure-stage1-libcpp maybe-configure-stage1-libcpp
maybe-configure-stage1-libcpp:
@if libcpp-bootstrap
maybe-configure-stage1-libcpp: configure-stage1-libcpp
configure-stage1-libcpp:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/libcpp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp; \
	cd $(HOST_SUBDIR)/libcpp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcpp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcpp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif libcpp-bootstrap

.PHONY: configure-stage2-libcpp maybe-configure-stage2-libcpp
maybe-configure-stage2-libcpp:
@if libcpp-bootstrap
maybe-configure-stage2-libcpp: configure-stage2-libcpp
configure-stage2-libcpp:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/libcpp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp; \
	cd $(HOST_SUBDIR)/libcpp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcpp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcpp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS)
@endif libcpp-bootstrap

.PHONY: configure-stage3-libcpp maybe-configure-stage3-libcpp
maybe-configure-stage3-libcpp:
@if libcpp-bootstrap
maybe-configure-stage3-libcpp: configure-stage3-libcpp
configure-stage3-libcpp:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/libcpp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp; \
	cd $(HOST_SUBDIR)/libcpp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcpp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcpp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS)
@endif libcpp-bootstrap

.PHONY: configure-stage4-libcpp maybe-configure-stage4-libcpp
maybe-configure-stage4-libcpp:
@if libcpp-bootstrap
maybe-configure-stage4-libcpp: configure-stage4-libcpp
configure-stage4-libcpp:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/libcpp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp; \
	cd $(HOST_SUBDIR)/libcpp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcpp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcpp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS)
@endif libcpp-bootstrap

.PHONY: configure-stageprofile-libcpp maybe-configure-stageprofile-libcpp
maybe-configure-stageprofile-libcpp:
@if libcpp-bootstrap
maybe-configure-stageprofile-libcpp: configure-stageprofile-libcpp
configure-stageprofile-libcpp:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/libcpp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp; \
	cd $(HOST_SUBDIR)/libcpp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcpp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcpp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS)
@endif libcpp-bootstrap

.PHONY: configure-stagetrain-libcpp maybe-configure-stagetrain-libcpp
maybe-configure-stagetrain-libcpp:
@if libcpp-bootstrap
maybe-configure-stagetrain-libcpp: configure-stagetrain-libcpp
configure-stagetrain-libcpp:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/libcpp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp; \
	cd $(HOST_SUBDIR)/libcpp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcpp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcpp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS)
@endif libcpp-bootstrap

.PHONY: configure-stagefeedback-libcpp maybe-configure-stagefeedback-libcpp
maybe-configure-stagefeedback-libcpp:
@if libcpp-bootstrap
maybe-configure-stagefeedback-libcpp: configure-stagefeedback-libcpp
configure-stagefeedback-libcpp:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/libcpp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp; \
	cd $(HOST_SUBDIR)/libcpp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcpp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcpp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS)
@endif libcpp-bootstrap

.PHONY: configure-stageautoprofile-libcpp maybe-configure-stageautoprofile-libcpp
maybe-configure-stageautoprofile-libcpp:
@if libcpp-bootstrap
maybe-configure-stageautoprofile-libcpp: configure-stageautoprofile-libcpp
configure-stageautoprofile-libcpp:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/libcpp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp; \
	cd $(HOST_SUBDIR)/libcpp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcpp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcpp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS)
@endif libcpp-bootstrap

.PHONY: configure-stageautofeedback-libcpp maybe-configure-stageautofeedback-libcpp
maybe-configure-stageautofeedback-libcpp:
@if libcpp-bootstrap
maybe-configure-stageautofeedback-libcpp: configure-stageautofeedback-libcpp
configure-stageautofeedback-libcpp:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcpp/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/libcpp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcpp; \
	cd $(HOST_SUBDIR)/libcpp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcpp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcpp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS)
@endif libcpp-bootstrap





.PHONY: all-libcpp maybe-all-libcpp
maybe-all-libcpp:
@if gcc-bootstrap
all-libcpp: stage_current
@endif gcc-bootstrap
@if libcpp
TARGET-libcpp=all
maybe-all-libcpp: all-libcpp
all-libcpp: configure-libcpp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/libcpp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-libcpp))
@endif libcpp



.PHONY: all-stage1-libcpp maybe-all-stage1-libcpp
.PHONY: clean-stage1-libcpp maybe-clean-stage1-libcpp
maybe-all-stage1-libcpp:
maybe-clean-stage1-libcpp:
@if libcpp-bootstrap
maybe-all-stage1-libcpp: all-stage1-libcpp
all-stage1: all-stage1-libcpp
TARGET-stage1-libcpp = $(TARGET-libcpp)
all-stage1-libcpp: configure-stage1-libcpp
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libcpp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-libcpp)

maybe-clean-stage1-libcpp: clean-stage1-libcpp
clean-stage1: clean-stage1-libcpp
clean-stage1-libcpp:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/libcpp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-libcpp/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/libcpp && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS)  clean
@endif libcpp-bootstrap


.PHONY: all-stage2-libcpp maybe-all-stage2-libcpp
.PHONY: clean-stage2-libcpp maybe-clean-stage2-libcpp
maybe-all-stage2-libcpp:
maybe-clean-stage2-libcpp:
@if libcpp-bootstrap
maybe-all-stage2-libcpp: all-stage2-libcpp
all-stage2: all-stage2-libcpp
TARGET-stage2-libcpp = $(TARGET-libcpp)
all-stage2-libcpp: configure-stage2-libcpp
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libcpp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-libcpp)

maybe-clean-stage2-libcpp: clean-stage2-libcpp
clean-stage2: clean-stage2-libcpp
clean-stage2-libcpp:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/libcpp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-libcpp/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/libcpp && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libcpp-bootstrap


.PHONY: all-stage3-libcpp maybe-all-stage3-libcpp
.PHONY: clean-stage3-libcpp maybe-clean-stage3-libcpp
maybe-all-stage3-libcpp:
maybe-clean-stage3-libcpp:
@if libcpp-bootstrap
maybe-all-stage3-libcpp: all-stage3-libcpp
all-stage3: all-stage3-libcpp
TARGET-stage3-libcpp = $(TARGET-libcpp)
all-stage3-libcpp: configure-stage3-libcpp
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libcpp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-libcpp)

maybe-clean-stage3-libcpp: clean-stage3-libcpp
clean-stage3: clean-stage3-libcpp
clean-stage3-libcpp:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/libcpp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-libcpp/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/libcpp && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libcpp-bootstrap


.PHONY: all-stage4-libcpp maybe-all-stage4-libcpp
.PHONY: clean-stage4-libcpp maybe-clean-stage4-libcpp
maybe-all-stage4-libcpp:
maybe-clean-stage4-libcpp:
@if libcpp-bootstrap
maybe-all-stage4-libcpp: all-stage4-libcpp
all-stage4: all-stage4-libcpp
TARGET-stage4-libcpp = $(TARGET-libcpp)
all-stage4-libcpp: configure-stage4-libcpp
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libcpp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-libcpp)

maybe-clean-stage4-libcpp: clean-stage4-libcpp
clean-stage4: clean-stage4-libcpp
clean-stage4-libcpp:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/libcpp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-libcpp/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/libcpp && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libcpp-bootstrap


.PHONY: all-stageprofile-libcpp maybe-all-stageprofile-libcpp
.PHONY: clean-stageprofile-libcpp maybe-clean-stageprofile-libcpp
maybe-all-stageprofile-libcpp:
maybe-clean-stageprofile-libcpp:
@if libcpp-bootstrap
maybe-all-stageprofile-libcpp: all-stageprofile-libcpp
all-stageprofile: all-stageprofile-libcpp
TARGET-stageprofile-libcpp = $(TARGET-libcpp)
all-stageprofile-libcpp: configure-stageprofile-libcpp
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libcpp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-libcpp)

maybe-clean-stageprofile-libcpp: clean-stageprofile-libcpp
clean-stageprofile: clean-stageprofile-libcpp
clean-stageprofile-libcpp:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/libcpp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-libcpp/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/libcpp && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libcpp-bootstrap


.PHONY: all-stagetrain-libcpp maybe-all-stagetrain-libcpp
.PHONY: clean-stagetrain-libcpp maybe-clean-stagetrain-libcpp
maybe-all-stagetrain-libcpp:
maybe-clean-stagetrain-libcpp:
@if libcpp-bootstrap
maybe-all-stagetrain-libcpp: all-stagetrain-libcpp
all-stagetrain: all-stagetrain-libcpp
TARGET-stagetrain-libcpp = $(TARGET-libcpp)
all-stagetrain-libcpp: configure-stagetrain-libcpp
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libcpp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-libcpp)

maybe-clean-stagetrain-libcpp: clean-stagetrain-libcpp
clean-stagetrain: clean-stagetrain-libcpp
clean-stagetrain-libcpp:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/libcpp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-libcpp/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/libcpp && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libcpp-bootstrap


.PHONY: all-stagefeedback-libcpp maybe-all-stagefeedback-libcpp
.PHONY: clean-stagefeedback-libcpp maybe-clean-stagefeedback-libcpp
maybe-all-stagefeedback-libcpp:
maybe-clean-stagefeedback-libcpp:
@if libcpp-bootstrap
maybe-all-stagefeedback-libcpp: all-stagefeedback-libcpp
all-stagefeedback: all-stagefeedback-libcpp
TARGET-stagefeedback-libcpp = $(TARGET-libcpp)
all-stagefeedback-libcpp: configure-stagefeedback-libcpp
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libcpp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-libcpp)

maybe-clean-stagefeedback-libcpp: clean-stagefeedback-libcpp
clean-stagefeedback: clean-stagefeedback-libcpp
clean-stagefeedback-libcpp:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/libcpp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-libcpp/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/libcpp && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libcpp-bootstrap


.PHONY: all-stageautoprofile-libcpp maybe-all-stageautoprofile-libcpp
.PHONY: clean-stageautoprofile-libcpp maybe-clean-stageautoprofile-libcpp
maybe-all-stageautoprofile-libcpp:
maybe-clean-stageautoprofile-libcpp:
@if libcpp-bootstrap
maybe-all-stageautoprofile-libcpp: all-stageautoprofile-libcpp
all-stageautoprofile: all-stageautoprofile-libcpp
TARGET-stageautoprofile-libcpp = $(TARGET-libcpp)
all-stageautoprofile-libcpp: configure-stageautoprofile-libcpp
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libcpp && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-libcpp)

maybe-clean-stageautoprofile-libcpp: clean-stageautoprofile-libcpp
clean-stageautoprofile: clean-stageautoprofile-libcpp
clean-stageautoprofile-libcpp:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/libcpp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-libcpp/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/libcpp && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libcpp-bootstrap


.PHONY: all-stageautofeedback-libcpp maybe-all-stageautofeedback-libcpp
.PHONY: clean-stageautofeedback-libcpp maybe-clean-stageautofeedback-libcpp
maybe-all-stageautofeedback-libcpp:
maybe-clean-stageautofeedback-libcpp:
@if libcpp-bootstrap
maybe-all-stageautofeedback-libcpp: all-stageautofeedback-libcpp
all-stageautofeedback: all-stageautofeedback-libcpp
TARGET-stageautofeedback-libcpp = $(TARGET-libcpp)
all-stageautofeedback-libcpp: configure-stageautofeedback-libcpp
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libcpp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-libcpp)

maybe-clean-stageautofeedback-libcpp: clean-stageautofeedback-libcpp
clean-stageautofeedback: clean-stageautofeedback-libcpp
clean-stageautofeedback-libcpp:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/libcpp/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-libcpp/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/libcpp && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libcpp-bootstrap





.PHONY: check-libcpp maybe-check-libcpp
maybe-check-libcpp:
@if libcpp
maybe-check-libcpp: check-libcpp

check-libcpp:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libcpp && \
	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif libcpp

.PHONY: install-libcpp maybe-install-libcpp
maybe-install-libcpp:
@if libcpp
maybe-install-libcpp: install-libcpp

install-libcpp: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libcpp && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif libcpp

.PHONY: install-strip-libcpp maybe-install-strip-libcpp
maybe-install-strip-libcpp:
@if libcpp
maybe-install-strip-libcpp: install-strip-libcpp

install-strip-libcpp: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libcpp && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif libcpp

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-libcpp info-libcpp
maybe-info-libcpp:
@if libcpp
maybe-info-libcpp: info-libcpp

info-libcpp: \
    configure-libcpp 
	@[ -f ./libcpp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in libcpp"; \
	(cd $(HOST_SUBDIR)/libcpp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif libcpp

.PHONY: maybe-dvi-libcpp dvi-libcpp
maybe-dvi-libcpp:
@if libcpp
maybe-dvi-libcpp: dvi-libcpp

dvi-libcpp: \
    configure-libcpp 
	@[ -f ./libcpp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in libcpp"; \
	(cd $(HOST_SUBDIR)/libcpp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif libcpp

.PHONY: maybe-pdf-libcpp pdf-libcpp
maybe-pdf-libcpp:
@if libcpp
maybe-pdf-libcpp: pdf-libcpp

pdf-libcpp: \
    configure-libcpp 
	@[ -f ./libcpp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in libcpp"; \
	(cd $(HOST_SUBDIR)/libcpp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif libcpp

.PHONY: maybe-html-libcpp html-libcpp
maybe-html-libcpp:
@if libcpp
maybe-html-libcpp: html-libcpp

html-libcpp: \
    configure-libcpp 
	@[ -f ./libcpp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in libcpp"; \
	(cd $(HOST_SUBDIR)/libcpp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif libcpp

.PHONY: maybe-TAGS-libcpp TAGS-libcpp
maybe-TAGS-libcpp:
@if libcpp
maybe-TAGS-libcpp: TAGS-libcpp

TAGS-libcpp: \
    configure-libcpp 
	@[ -f ./libcpp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in libcpp"; \
	(cd $(HOST_SUBDIR)/libcpp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif libcpp

.PHONY: maybe-install-info-libcpp install-info-libcpp
maybe-install-info-libcpp:
@if libcpp
maybe-install-info-libcpp: install-info-libcpp

install-info-libcpp: \
    configure-libcpp \
    info-libcpp 
	@[ -f ./libcpp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in libcpp"; \
	(cd $(HOST_SUBDIR)/libcpp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif libcpp

.PHONY: maybe-install-pdf-libcpp install-pdf-libcpp
maybe-install-pdf-libcpp:
@if libcpp
maybe-install-pdf-libcpp: install-pdf-libcpp

install-pdf-libcpp: \
    configure-libcpp \
    pdf-libcpp 
	@[ -f ./libcpp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in libcpp"; \
	(cd $(HOST_SUBDIR)/libcpp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif libcpp

.PHONY: maybe-install-html-libcpp install-html-libcpp
maybe-install-html-libcpp:
@if libcpp
maybe-install-html-libcpp: install-html-libcpp

install-html-libcpp: \
    configure-libcpp \
    html-libcpp 
	@[ -f ./libcpp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in libcpp"; \
	(cd $(HOST_SUBDIR)/libcpp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif libcpp

.PHONY: maybe-installcheck-libcpp installcheck-libcpp
maybe-installcheck-libcpp:
@if libcpp
maybe-installcheck-libcpp: installcheck-libcpp

installcheck-libcpp: \
    configure-libcpp 
	@[ -f ./libcpp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in libcpp"; \
	(cd $(HOST_SUBDIR)/libcpp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif libcpp

.PHONY: maybe-mostlyclean-libcpp mostlyclean-libcpp
maybe-mostlyclean-libcpp:
@if libcpp
maybe-mostlyclean-libcpp: mostlyclean-libcpp

mostlyclean-libcpp: 
	@[ -f ./libcpp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in libcpp"; \
	(cd $(HOST_SUBDIR)/libcpp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif libcpp

.PHONY: maybe-clean-libcpp clean-libcpp
maybe-clean-libcpp:
@if libcpp
maybe-clean-libcpp: clean-libcpp

clean-libcpp: 
	@[ -f ./libcpp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in libcpp"; \
	(cd $(HOST_SUBDIR)/libcpp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif libcpp

.PHONY: maybe-distclean-libcpp distclean-libcpp
maybe-distclean-libcpp:
@if libcpp
maybe-distclean-libcpp: distclean-libcpp

distclean-libcpp: 
	@[ -f ./libcpp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in libcpp"; \
	(cd $(HOST_SUBDIR)/libcpp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif libcpp

.PHONY: maybe-maintainer-clean-libcpp maintainer-clean-libcpp
maybe-maintainer-clean-libcpp:
@if libcpp
maybe-maintainer-clean-libcpp: maintainer-clean-libcpp

maintainer-clean-libcpp: 
	@[ -f ./libcpp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in libcpp"; \
	(cd $(HOST_SUBDIR)/libcpp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif libcpp



.PHONY: configure-libdecnumber maybe-configure-libdecnumber
maybe-configure-libdecnumber:
@if gcc-bootstrap
configure-libdecnumber: stage_current
@endif gcc-bootstrap
@if libdecnumber
maybe-configure-libdecnumber: configure-libdecnumber
configure-libdecnumber: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/libdecnumber; \
	cd "$(HOST_SUBDIR)/libdecnumber" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libdecnumber/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libdecnumber; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif libdecnumber



.PHONY: configure-stage1-libdecnumber maybe-configure-stage1-libdecnumber
maybe-configure-stage1-libdecnumber:
@if libdecnumber-bootstrap
maybe-configure-stage1-libdecnumber: configure-stage1-libdecnumber
configure-stage1-libdecnumber:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/libdecnumber; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber; \
	cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libdecnumber/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libdecnumber; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif libdecnumber-bootstrap

.PHONY: configure-stage2-libdecnumber maybe-configure-stage2-libdecnumber
maybe-configure-stage2-libdecnumber:
@if libdecnumber-bootstrap
maybe-configure-stage2-libdecnumber: configure-stage2-libdecnumber
configure-stage2-libdecnumber:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/libdecnumber; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber; \
	cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libdecnumber/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libdecnumber; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS)
@endif libdecnumber-bootstrap

.PHONY: configure-stage3-libdecnumber maybe-configure-stage3-libdecnumber
maybe-configure-stage3-libdecnumber:
@if libdecnumber-bootstrap
maybe-configure-stage3-libdecnumber: configure-stage3-libdecnumber
configure-stage3-libdecnumber:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/libdecnumber; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber; \
	cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libdecnumber/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libdecnumber; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS)
@endif libdecnumber-bootstrap

.PHONY: configure-stage4-libdecnumber maybe-configure-stage4-libdecnumber
maybe-configure-stage4-libdecnumber:
@if libdecnumber-bootstrap
maybe-configure-stage4-libdecnumber: configure-stage4-libdecnumber
configure-stage4-libdecnumber:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/libdecnumber; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber; \
	cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libdecnumber/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libdecnumber; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS)
@endif libdecnumber-bootstrap

.PHONY: configure-stageprofile-libdecnumber maybe-configure-stageprofile-libdecnumber
maybe-configure-stageprofile-libdecnumber:
@if libdecnumber-bootstrap
maybe-configure-stageprofile-libdecnumber: configure-stageprofile-libdecnumber
configure-stageprofile-libdecnumber:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/libdecnumber; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber; \
	cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libdecnumber/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libdecnumber; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS)
@endif libdecnumber-bootstrap

.PHONY: configure-stagetrain-libdecnumber maybe-configure-stagetrain-libdecnumber
maybe-configure-stagetrain-libdecnumber:
@if libdecnumber-bootstrap
maybe-configure-stagetrain-libdecnumber: configure-stagetrain-libdecnumber
configure-stagetrain-libdecnumber:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/libdecnumber; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber; \
	cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libdecnumber/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libdecnumber; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS)
@endif libdecnumber-bootstrap

.PHONY: configure-stagefeedback-libdecnumber maybe-configure-stagefeedback-libdecnumber
maybe-configure-stagefeedback-libdecnumber:
@if libdecnumber-bootstrap
maybe-configure-stagefeedback-libdecnumber: configure-stagefeedback-libdecnumber
configure-stagefeedback-libdecnumber:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/libdecnumber; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber; \
	cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libdecnumber/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libdecnumber; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS)
@endif libdecnumber-bootstrap

.PHONY: configure-stageautoprofile-libdecnumber maybe-configure-stageautoprofile-libdecnumber
maybe-configure-stageautoprofile-libdecnumber:
@if libdecnumber-bootstrap
maybe-configure-stageautoprofile-libdecnumber: configure-stageautoprofile-libdecnumber
configure-stageautoprofile-libdecnumber:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/libdecnumber; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber; \
	cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libdecnumber/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libdecnumber; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS)
@endif libdecnumber-bootstrap

.PHONY: configure-stageautofeedback-libdecnumber maybe-configure-stageautofeedback-libdecnumber
maybe-configure-stageautofeedback-libdecnumber:
@if libdecnumber-bootstrap
maybe-configure-stageautofeedback-libdecnumber: configure-stageautofeedback-libdecnumber
configure-stageautofeedback-libdecnumber:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libdecnumber/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/libdecnumber; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libdecnumber; \
	cd $(HOST_SUBDIR)/libdecnumber || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libdecnumber/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libdecnumber; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS)
@endif libdecnumber-bootstrap





.PHONY: all-libdecnumber maybe-all-libdecnumber
maybe-all-libdecnumber:
@if gcc-bootstrap
all-libdecnumber: stage_current
@endif gcc-bootstrap
@if libdecnumber
TARGET-libdecnumber=all
maybe-all-libdecnumber: all-libdecnumber
all-libdecnumber: configure-libdecnumber
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/libdecnumber && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-libdecnumber))
@endif libdecnumber



.PHONY: all-stage1-libdecnumber maybe-all-stage1-libdecnumber
.PHONY: clean-stage1-libdecnumber maybe-clean-stage1-libdecnumber
maybe-all-stage1-libdecnumber:
maybe-clean-stage1-libdecnumber:
@if libdecnumber-bootstrap
maybe-all-stage1-libdecnumber: all-stage1-libdecnumber
all-stage1: all-stage1-libdecnumber
TARGET-stage1-libdecnumber = $(TARGET-libdecnumber)
all-stage1-libdecnumber: configure-stage1-libdecnumber
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libdecnumber && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-libdecnumber)

maybe-clean-stage1-libdecnumber: clean-stage1-libdecnumber
clean-stage1: clean-stage1-libdecnumber
clean-stage1-libdecnumber:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/libdecnumber/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-libdecnumber/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/libdecnumber && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS)  clean
@endif libdecnumber-bootstrap


.PHONY: all-stage2-libdecnumber maybe-all-stage2-libdecnumber
.PHONY: clean-stage2-libdecnumber maybe-clean-stage2-libdecnumber
maybe-all-stage2-libdecnumber:
maybe-clean-stage2-libdecnumber:
@if libdecnumber-bootstrap
maybe-all-stage2-libdecnumber: all-stage2-libdecnumber
all-stage2: all-stage2-libdecnumber
TARGET-stage2-libdecnumber = $(TARGET-libdecnumber)
all-stage2-libdecnumber: configure-stage2-libdecnumber
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libdecnumber && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-libdecnumber)

maybe-clean-stage2-libdecnumber: clean-stage2-libdecnumber
clean-stage2: clean-stage2-libdecnumber
clean-stage2-libdecnumber:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/libdecnumber/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-libdecnumber/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/libdecnumber && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libdecnumber-bootstrap


.PHONY: all-stage3-libdecnumber maybe-all-stage3-libdecnumber
.PHONY: clean-stage3-libdecnumber maybe-clean-stage3-libdecnumber
maybe-all-stage3-libdecnumber:
maybe-clean-stage3-libdecnumber:
@if libdecnumber-bootstrap
maybe-all-stage3-libdecnumber: all-stage3-libdecnumber
all-stage3: all-stage3-libdecnumber
TARGET-stage3-libdecnumber = $(TARGET-libdecnumber)
all-stage3-libdecnumber: configure-stage3-libdecnumber
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libdecnumber && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-libdecnumber)

maybe-clean-stage3-libdecnumber: clean-stage3-libdecnumber
clean-stage3: clean-stage3-libdecnumber
clean-stage3-libdecnumber:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/libdecnumber/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-libdecnumber/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/libdecnumber && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libdecnumber-bootstrap


.PHONY: all-stage4-libdecnumber maybe-all-stage4-libdecnumber
.PHONY: clean-stage4-libdecnumber maybe-clean-stage4-libdecnumber
maybe-all-stage4-libdecnumber:
maybe-clean-stage4-libdecnumber:
@if libdecnumber-bootstrap
maybe-all-stage4-libdecnumber: all-stage4-libdecnumber
all-stage4: all-stage4-libdecnumber
TARGET-stage4-libdecnumber = $(TARGET-libdecnumber)
all-stage4-libdecnumber: configure-stage4-libdecnumber
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libdecnumber && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-libdecnumber)

maybe-clean-stage4-libdecnumber: clean-stage4-libdecnumber
clean-stage4: clean-stage4-libdecnumber
clean-stage4-libdecnumber:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/libdecnumber/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-libdecnumber/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/libdecnumber && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libdecnumber-bootstrap


.PHONY: all-stageprofile-libdecnumber maybe-all-stageprofile-libdecnumber
.PHONY: clean-stageprofile-libdecnumber maybe-clean-stageprofile-libdecnumber
maybe-all-stageprofile-libdecnumber:
maybe-clean-stageprofile-libdecnumber:
@if libdecnumber-bootstrap
maybe-all-stageprofile-libdecnumber: all-stageprofile-libdecnumber
all-stageprofile: all-stageprofile-libdecnumber
TARGET-stageprofile-libdecnumber = $(TARGET-libdecnumber)
all-stageprofile-libdecnumber: configure-stageprofile-libdecnumber
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libdecnumber && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-libdecnumber)

maybe-clean-stageprofile-libdecnumber: clean-stageprofile-libdecnumber
clean-stageprofile: clean-stageprofile-libdecnumber
clean-stageprofile-libdecnumber:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/libdecnumber/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-libdecnumber/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/libdecnumber && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libdecnumber-bootstrap


.PHONY: all-stagetrain-libdecnumber maybe-all-stagetrain-libdecnumber
.PHONY: clean-stagetrain-libdecnumber maybe-clean-stagetrain-libdecnumber
maybe-all-stagetrain-libdecnumber:
maybe-clean-stagetrain-libdecnumber:
@if libdecnumber-bootstrap
maybe-all-stagetrain-libdecnumber: all-stagetrain-libdecnumber
all-stagetrain: all-stagetrain-libdecnumber
TARGET-stagetrain-libdecnumber = $(TARGET-libdecnumber)
all-stagetrain-libdecnumber: configure-stagetrain-libdecnumber
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libdecnumber && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-libdecnumber)

maybe-clean-stagetrain-libdecnumber: clean-stagetrain-libdecnumber
clean-stagetrain: clean-stagetrain-libdecnumber
clean-stagetrain-libdecnumber:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/libdecnumber/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-libdecnumber/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/libdecnumber && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libdecnumber-bootstrap


.PHONY: all-stagefeedback-libdecnumber maybe-all-stagefeedback-libdecnumber
.PHONY: clean-stagefeedback-libdecnumber maybe-clean-stagefeedback-libdecnumber
maybe-all-stagefeedback-libdecnumber:
maybe-clean-stagefeedback-libdecnumber:
@if libdecnumber-bootstrap
maybe-all-stagefeedback-libdecnumber: all-stagefeedback-libdecnumber
all-stagefeedback: all-stagefeedback-libdecnumber
TARGET-stagefeedback-libdecnumber = $(TARGET-libdecnumber)
all-stagefeedback-libdecnumber: configure-stagefeedback-libdecnumber
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libdecnumber && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-libdecnumber)

maybe-clean-stagefeedback-libdecnumber: clean-stagefeedback-libdecnumber
clean-stagefeedback: clean-stagefeedback-libdecnumber
clean-stagefeedback-libdecnumber:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/libdecnumber/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-libdecnumber/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/libdecnumber && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libdecnumber-bootstrap


.PHONY: all-stageautoprofile-libdecnumber maybe-all-stageautoprofile-libdecnumber
.PHONY: clean-stageautoprofile-libdecnumber maybe-clean-stageautoprofile-libdecnumber
maybe-all-stageautoprofile-libdecnumber:
maybe-clean-stageautoprofile-libdecnumber:
@if libdecnumber-bootstrap
maybe-all-stageautoprofile-libdecnumber: all-stageautoprofile-libdecnumber
all-stageautoprofile: all-stageautoprofile-libdecnumber
TARGET-stageautoprofile-libdecnumber = $(TARGET-libdecnumber)
all-stageautoprofile-libdecnumber: configure-stageautoprofile-libdecnumber
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libdecnumber && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-libdecnumber)

maybe-clean-stageautoprofile-libdecnumber: clean-stageautoprofile-libdecnumber
clean-stageautoprofile: clean-stageautoprofile-libdecnumber
clean-stageautoprofile-libdecnumber:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/libdecnumber/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-libdecnumber/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/libdecnumber && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libdecnumber-bootstrap


.PHONY: all-stageautofeedback-libdecnumber maybe-all-stageautofeedback-libdecnumber
.PHONY: clean-stageautofeedback-libdecnumber maybe-clean-stageautofeedback-libdecnumber
maybe-all-stageautofeedback-libdecnumber:
maybe-clean-stageautofeedback-libdecnumber:
@if libdecnumber-bootstrap
maybe-all-stageautofeedback-libdecnumber: all-stageautofeedback-libdecnumber
all-stageautofeedback: all-stageautofeedback-libdecnumber
TARGET-stageautofeedback-libdecnumber = $(TARGET-libdecnumber)
all-stageautofeedback-libdecnumber: configure-stageautofeedback-libdecnumber
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libdecnumber && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-libdecnumber)

maybe-clean-stageautofeedback-libdecnumber: clean-stageautofeedback-libdecnumber
clean-stageautofeedback: clean-stageautofeedback-libdecnumber
clean-stageautofeedback-libdecnumber:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/libdecnumber/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-libdecnumber/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/libdecnumber && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libdecnumber-bootstrap





.PHONY: check-libdecnumber maybe-check-libdecnumber
maybe-check-libdecnumber:
@if libdecnumber
maybe-check-libdecnumber: check-libdecnumber

check-libdecnumber:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libdecnumber && \
	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif libdecnumber

.PHONY: install-libdecnumber maybe-install-libdecnumber
maybe-install-libdecnumber:
@if libdecnumber
maybe-install-libdecnumber: install-libdecnumber

install-libdecnumber: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libdecnumber && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif libdecnumber

.PHONY: install-strip-libdecnumber maybe-install-strip-libdecnumber
maybe-install-strip-libdecnumber:
@if libdecnumber
maybe-install-strip-libdecnumber: install-strip-libdecnumber

install-strip-libdecnumber: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libdecnumber && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif libdecnumber

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-libdecnumber info-libdecnumber
maybe-info-libdecnumber:
@if libdecnumber
maybe-info-libdecnumber: info-libdecnumber

info-libdecnumber: \
    configure-libdecnumber 
	@[ -f ./libdecnumber/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in libdecnumber"; \
	(cd $(HOST_SUBDIR)/libdecnumber && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif libdecnumber

.PHONY: maybe-dvi-libdecnumber dvi-libdecnumber
maybe-dvi-libdecnumber:
@if libdecnumber
maybe-dvi-libdecnumber: dvi-libdecnumber

dvi-libdecnumber: \
    configure-libdecnumber 
	@[ -f ./libdecnumber/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in libdecnumber"; \
	(cd $(HOST_SUBDIR)/libdecnumber && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif libdecnumber

.PHONY: maybe-pdf-libdecnumber pdf-libdecnumber
maybe-pdf-libdecnumber:
@if libdecnumber
maybe-pdf-libdecnumber: pdf-libdecnumber

pdf-libdecnumber: \
    configure-libdecnumber 
	@[ -f ./libdecnumber/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in libdecnumber"; \
	(cd $(HOST_SUBDIR)/libdecnumber && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif libdecnumber

.PHONY: maybe-html-libdecnumber html-libdecnumber
maybe-html-libdecnumber:
@if libdecnumber
maybe-html-libdecnumber: html-libdecnumber

html-libdecnumber: \
    configure-libdecnumber 
	@[ -f ./libdecnumber/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in libdecnumber"; \
	(cd $(HOST_SUBDIR)/libdecnumber && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif libdecnumber

.PHONY: maybe-TAGS-libdecnumber TAGS-libdecnumber
maybe-TAGS-libdecnumber:
@if libdecnumber
maybe-TAGS-libdecnumber: TAGS-libdecnumber

TAGS-libdecnumber: \
    configure-libdecnumber 
	@[ -f ./libdecnumber/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in libdecnumber"; \
	(cd $(HOST_SUBDIR)/libdecnumber && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif libdecnumber

.PHONY: maybe-install-info-libdecnumber install-info-libdecnumber
maybe-install-info-libdecnumber:
@if libdecnumber
maybe-install-info-libdecnumber: install-info-libdecnumber

install-info-libdecnumber: \
    configure-libdecnumber \
    info-libdecnumber 
	@[ -f ./libdecnumber/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in libdecnumber"; \
	(cd $(HOST_SUBDIR)/libdecnumber && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif libdecnumber

.PHONY: maybe-install-pdf-libdecnumber install-pdf-libdecnumber
maybe-install-pdf-libdecnumber:
@if libdecnumber
maybe-install-pdf-libdecnumber: install-pdf-libdecnumber

install-pdf-libdecnumber: \
    configure-libdecnumber \
    pdf-libdecnumber 
	@[ -f ./libdecnumber/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in libdecnumber"; \
	(cd $(HOST_SUBDIR)/libdecnumber && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif libdecnumber

.PHONY: maybe-install-html-libdecnumber install-html-libdecnumber
maybe-install-html-libdecnumber:
@if libdecnumber
maybe-install-html-libdecnumber: install-html-libdecnumber

install-html-libdecnumber: \
    configure-libdecnumber \
    html-libdecnumber 
	@[ -f ./libdecnumber/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in libdecnumber"; \
	(cd $(HOST_SUBDIR)/libdecnumber && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif libdecnumber

.PHONY: maybe-installcheck-libdecnumber installcheck-libdecnumber
maybe-installcheck-libdecnumber:
@if libdecnumber
maybe-installcheck-libdecnumber: installcheck-libdecnumber

installcheck-libdecnumber: \
    configure-libdecnumber 
	@[ -f ./libdecnumber/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in libdecnumber"; \
	(cd $(HOST_SUBDIR)/libdecnumber && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif libdecnumber

.PHONY: maybe-mostlyclean-libdecnumber mostlyclean-libdecnumber
maybe-mostlyclean-libdecnumber:
@if libdecnumber
maybe-mostlyclean-libdecnumber: mostlyclean-libdecnumber

mostlyclean-libdecnumber: 
	@[ -f ./libdecnumber/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in libdecnumber"; \
	(cd $(HOST_SUBDIR)/libdecnumber && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif libdecnumber

.PHONY: maybe-clean-libdecnumber clean-libdecnumber
maybe-clean-libdecnumber:
@if libdecnumber
maybe-clean-libdecnumber: clean-libdecnumber

clean-libdecnumber: 
	@[ -f ./libdecnumber/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in libdecnumber"; \
	(cd $(HOST_SUBDIR)/libdecnumber && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif libdecnumber

.PHONY: maybe-distclean-libdecnumber distclean-libdecnumber
maybe-distclean-libdecnumber:
@if libdecnumber
maybe-distclean-libdecnumber: distclean-libdecnumber

distclean-libdecnumber: 
	@[ -f ./libdecnumber/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in libdecnumber"; \
	(cd $(HOST_SUBDIR)/libdecnumber && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif libdecnumber

.PHONY: maybe-maintainer-clean-libdecnumber maintainer-clean-libdecnumber
maybe-maintainer-clean-libdecnumber:
@if libdecnumber
maybe-maintainer-clean-libdecnumber: maintainer-clean-libdecnumber

maintainer-clean-libdecnumber: 
	@[ -f ./libdecnumber/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in libdecnumber"; \
	(cd $(HOST_SUBDIR)/libdecnumber && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif libdecnumber



.PHONY: configure-libgui maybe-configure-libgui
maybe-configure-libgui:
@if gcc-bootstrap
configure-libgui: stage_current
@endif gcc-bootstrap
@if libgui
maybe-configure-libgui: configure-libgui
configure-libgui: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/libgui/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libgui; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/libgui; \
	cd "$(HOST_SUBDIR)/libgui" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libgui/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgui; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif libgui





.PHONY: all-libgui maybe-all-libgui
maybe-all-libgui:
@if gcc-bootstrap
all-libgui: stage_current
@endif gcc-bootstrap
@if libgui
TARGET-libgui=all
maybe-all-libgui: all-libgui
all-libgui: configure-libgui
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/libgui && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-libgui))
@endif libgui




.PHONY: check-libgui maybe-check-libgui
maybe-check-libgui:
@if libgui
maybe-check-libgui: check-libgui

check-libgui:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/libgui && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif libgui

.PHONY: install-libgui maybe-install-libgui
maybe-install-libgui:
@if libgui
maybe-install-libgui: install-libgui

install-libgui: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libgui && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif libgui

.PHONY: install-strip-libgui maybe-install-strip-libgui
maybe-install-strip-libgui:
@if libgui
maybe-install-strip-libgui: install-strip-libgui

install-strip-libgui: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libgui && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif libgui

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-libgui info-libgui
maybe-info-libgui:
@if libgui
maybe-info-libgui: info-libgui

info-libgui: \
    configure-libgui 
	@: $(MAKE); $(unstage)
	@[ -f ./libgui/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in libgui"; \
	(cd $(HOST_SUBDIR)/libgui && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif libgui

.PHONY: maybe-dvi-libgui dvi-libgui
maybe-dvi-libgui:
@if libgui
maybe-dvi-libgui: dvi-libgui

dvi-libgui: \
    configure-libgui 
	@: $(MAKE); $(unstage)
	@[ -f ./libgui/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in libgui"; \
	(cd $(HOST_SUBDIR)/libgui && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif libgui

.PHONY: maybe-pdf-libgui pdf-libgui
maybe-pdf-libgui:
@if libgui
maybe-pdf-libgui: pdf-libgui

pdf-libgui: \
    configure-libgui 
	@: $(MAKE); $(unstage)
	@[ -f ./libgui/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in libgui"; \
	(cd $(HOST_SUBDIR)/libgui && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif libgui

.PHONY: maybe-html-libgui html-libgui
maybe-html-libgui:
@if libgui
maybe-html-libgui: html-libgui

html-libgui: \
    configure-libgui 
	@: $(MAKE); $(unstage)
	@[ -f ./libgui/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in libgui"; \
	(cd $(HOST_SUBDIR)/libgui && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif libgui

.PHONY: maybe-TAGS-libgui TAGS-libgui
maybe-TAGS-libgui:
@if libgui
maybe-TAGS-libgui: TAGS-libgui

TAGS-libgui: \
    configure-libgui 
	@: $(MAKE); $(unstage)
	@[ -f ./libgui/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in libgui"; \
	(cd $(HOST_SUBDIR)/libgui && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif libgui

.PHONY: maybe-install-info-libgui install-info-libgui
maybe-install-info-libgui:
@if libgui
maybe-install-info-libgui: install-info-libgui

install-info-libgui: \
    configure-libgui \
    info-libgui 
	@: $(MAKE); $(unstage)
	@[ -f ./libgui/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in libgui"; \
	(cd $(HOST_SUBDIR)/libgui && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif libgui

.PHONY: maybe-install-pdf-libgui install-pdf-libgui
maybe-install-pdf-libgui:
@if libgui
maybe-install-pdf-libgui: install-pdf-libgui

install-pdf-libgui: \
    configure-libgui \
    pdf-libgui 
	@: $(MAKE); $(unstage)
	@[ -f ./libgui/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in libgui"; \
	(cd $(HOST_SUBDIR)/libgui && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif libgui

.PHONY: maybe-install-html-libgui install-html-libgui
maybe-install-html-libgui:
@if libgui
maybe-install-html-libgui: install-html-libgui

install-html-libgui: \
    configure-libgui \
    html-libgui 
	@: $(MAKE); $(unstage)
	@[ -f ./libgui/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in libgui"; \
	(cd $(HOST_SUBDIR)/libgui && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif libgui

.PHONY: maybe-installcheck-libgui installcheck-libgui
maybe-installcheck-libgui:
@if libgui
maybe-installcheck-libgui: installcheck-libgui

installcheck-libgui: \
    configure-libgui 
	@: $(MAKE); $(unstage)
	@[ -f ./libgui/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in libgui"; \
	(cd $(HOST_SUBDIR)/libgui && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif libgui

.PHONY: maybe-mostlyclean-libgui mostlyclean-libgui
maybe-mostlyclean-libgui:
@if libgui
maybe-mostlyclean-libgui: mostlyclean-libgui

mostlyclean-libgui: 
	@: $(MAKE); $(unstage)
	@[ -f ./libgui/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in libgui"; \
	(cd $(HOST_SUBDIR)/libgui && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif libgui

.PHONY: maybe-clean-libgui clean-libgui
maybe-clean-libgui:
@if libgui
maybe-clean-libgui: clean-libgui

clean-libgui: 
	@: $(MAKE); $(unstage)
	@[ -f ./libgui/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in libgui"; \
	(cd $(HOST_SUBDIR)/libgui && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif libgui

.PHONY: maybe-distclean-libgui distclean-libgui
maybe-distclean-libgui:
@if libgui
maybe-distclean-libgui: distclean-libgui

distclean-libgui: 
	@: $(MAKE); $(unstage)
	@[ -f ./libgui/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in libgui"; \
	(cd $(HOST_SUBDIR)/libgui && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif libgui

.PHONY: maybe-maintainer-clean-libgui maintainer-clean-libgui
maybe-maintainer-clean-libgui:
@if libgui
maybe-maintainer-clean-libgui: maintainer-clean-libgui

maintainer-clean-libgui: 
	@: $(MAKE); $(unstage)
	@[ -f ./libgui/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in libgui"; \
	(cd $(HOST_SUBDIR)/libgui && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif libgui



.PHONY: configure-libiberty maybe-configure-libiberty
maybe-configure-libiberty:
@if gcc-bootstrap
configure-libiberty: stage_current
@endif gcc-bootstrap
@if libiberty
maybe-configure-libiberty: configure-libiberty
configure-libiberty: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/libiberty; \
	cd "$(HOST_SUBDIR)/libiberty" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} @extra_host_libiberty_configure_flags@ \
	  || exit 1
@endif libiberty



.PHONY: configure-stage1-libiberty maybe-configure-stage1-libiberty
maybe-configure-stage1-libiberty:
@if libiberty-bootstrap
maybe-configure-stage1-libiberty: configure-stage1-libiberty
configure-stage1-libiberty:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/libiberty; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty; \
	cd $(HOST_SUBDIR)/libiberty || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@
@endif libiberty-bootstrap

.PHONY: configure-stage2-libiberty maybe-configure-stage2-libiberty
maybe-configure-stage2-libiberty:
@if libiberty-bootstrap
maybe-configure-stage2-libiberty: configure-stage2-libiberty
configure-stage2-libiberty:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/libiberty; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty; \
	cd $(HOST_SUBDIR)/libiberty || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@
@endif libiberty-bootstrap

.PHONY: configure-stage3-libiberty maybe-configure-stage3-libiberty
maybe-configure-stage3-libiberty:
@if libiberty-bootstrap
maybe-configure-stage3-libiberty: configure-stage3-libiberty
configure-stage3-libiberty:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/libiberty; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty; \
	cd $(HOST_SUBDIR)/libiberty || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@
@endif libiberty-bootstrap

.PHONY: configure-stage4-libiberty maybe-configure-stage4-libiberty
maybe-configure-stage4-libiberty:
@if libiberty-bootstrap
maybe-configure-stage4-libiberty: configure-stage4-libiberty
configure-stage4-libiberty:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/libiberty; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty; \
	cd $(HOST_SUBDIR)/libiberty || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@
@endif libiberty-bootstrap

.PHONY: configure-stageprofile-libiberty maybe-configure-stageprofile-libiberty
maybe-configure-stageprofile-libiberty:
@if libiberty-bootstrap
maybe-configure-stageprofile-libiberty: configure-stageprofile-libiberty
configure-stageprofile-libiberty:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/libiberty; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty; \
	cd $(HOST_SUBDIR)/libiberty || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@
@endif libiberty-bootstrap

.PHONY: configure-stagetrain-libiberty maybe-configure-stagetrain-libiberty
maybe-configure-stagetrain-libiberty:
@if libiberty-bootstrap
maybe-configure-stagetrain-libiberty: configure-stagetrain-libiberty
configure-stagetrain-libiberty:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/libiberty; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty; \
	cd $(HOST_SUBDIR)/libiberty || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@
@endif libiberty-bootstrap

.PHONY: configure-stagefeedback-libiberty maybe-configure-stagefeedback-libiberty
maybe-configure-stagefeedback-libiberty:
@if libiberty-bootstrap
maybe-configure-stagefeedback-libiberty: configure-stagefeedback-libiberty
configure-stagefeedback-libiberty:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/libiberty; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty; \
	cd $(HOST_SUBDIR)/libiberty || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@
@endif libiberty-bootstrap

.PHONY: configure-stageautoprofile-libiberty maybe-configure-stageautoprofile-libiberty
maybe-configure-stageautoprofile-libiberty:
@if libiberty-bootstrap
maybe-configure-stageautoprofile-libiberty: configure-stageautoprofile-libiberty
configure-stageautoprofile-libiberty:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/libiberty; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty; \
	cd $(HOST_SUBDIR)/libiberty || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@
@endif libiberty-bootstrap

.PHONY: configure-stageautofeedback-libiberty maybe-configure-stageautofeedback-libiberty
maybe-configure-stageautofeedback-libiberty:
@if libiberty-bootstrap
maybe-configure-stageautofeedback-libiberty: configure-stageautofeedback-libiberty
configure-stageautofeedback-libiberty:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/libiberty; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty; \
	cd $(HOST_SUBDIR)/libiberty || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@
@endif libiberty-bootstrap





.PHONY: all-libiberty maybe-all-libiberty
maybe-all-libiberty:
@if gcc-bootstrap
all-libiberty: stage_current
@endif gcc-bootstrap
@if libiberty
TARGET-libiberty=all
maybe-all-libiberty: all-libiberty
all-libiberty: configure-libiberty
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/libiberty && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-libiberty))
@endif libiberty



.PHONY: all-stage1-libiberty maybe-all-stage1-libiberty
.PHONY: clean-stage1-libiberty maybe-clean-stage1-libiberty
maybe-all-stage1-libiberty:
maybe-clean-stage1-libiberty:
@if libiberty-bootstrap
maybe-all-stage1-libiberty: all-stage1-libiberty
all-stage1: all-stage1-libiberty
TARGET-stage1-libiberty = $(TARGET-libiberty)
all-stage1-libiberty: configure-stage1-libiberty
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-libiberty)

maybe-clean-stage1-libiberty: clean-stage1-libiberty
clean-stage1: clean-stage1-libiberty
clean-stage1-libiberty:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-libiberty/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS)  clean
@endif libiberty-bootstrap


.PHONY: all-stage2-libiberty maybe-all-stage2-libiberty
.PHONY: clean-stage2-libiberty maybe-clean-stage2-libiberty
maybe-all-stage2-libiberty:
maybe-clean-stage2-libiberty:
@if libiberty-bootstrap
maybe-all-stage2-libiberty: all-stage2-libiberty
all-stage2: all-stage2-libiberty
TARGET-stage2-libiberty = $(TARGET-libiberty)
all-stage2-libiberty: configure-stage2-libiberty
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-libiberty)

maybe-clean-stage2-libiberty: clean-stage2-libiberty
clean-stage2: clean-stage2-libiberty
clean-stage2-libiberty:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-libiberty/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libiberty-bootstrap


.PHONY: all-stage3-libiberty maybe-all-stage3-libiberty
.PHONY: clean-stage3-libiberty maybe-clean-stage3-libiberty
maybe-all-stage3-libiberty:
maybe-clean-stage3-libiberty:
@if libiberty-bootstrap
maybe-all-stage3-libiberty: all-stage3-libiberty
all-stage3: all-stage3-libiberty
TARGET-stage3-libiberty = $(TARGET-libiberty)
all-stage3-libiberty: configure-stage3-libiberty
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-libiberty)

maybe-clean-stage3-libiberty: clean-stage3-libiberty
clean-stage3: clean-stage3-libiberty
clean-stage3-libiberty:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-libiberty/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libiberty-bootstrap


.PHONY: all-stage4-libiberty maybe-all-stage4-libiberty
.PHONY: clean-stage4-libiberty maybe-clean-stage4-libiberty
maybe-all-stage4-libiberty:
maybe-clean-stage4-libiberty:
@if libiberty-bootstrap
maybe-all-stage4-libiberty: all-stage4-libiberty
all-stage4: all-stage4-libiberty
TARGET-stage4-libiberty = $(TARGET-libiberty)
all-stage4-libiberty: configure-stage4-libiberty
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-libiberty)

maybe-clean-stage4-libiberty: clean-stage4-libiberty
clean-stage4: clean-stage4-libiberty
clean-stage4-libiberty:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-libiberty/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libiberty-bootstrap


.PHONY: all-stageprofile-libiberty maybe-all-stageprofile-libiberty
.PHONY: clean-stageprofile-libiberty maybe-clean-stageprofile-libiberty
maybe-all-stageprofile-libiberty:
maybe-clean-stageprofile-libiberty:
@if libiberty-bootstrap
maybe-all-stageprofile-libiberty: all-stageprofile-libiberty
all-stageprofile: all-stageprofile-libiberty
TARGET-stageprofile-libiberty = $(TARGET-libiberty)
all-stageprofile-libiberty: configure-stageprofile-libiberty
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-libiberty)

maybe-clean-stageprofile-libiberty: clean-stageprofile-libiberty
clean-stageprofile: clean-stageprofile-libiberty
clean-stageprofile-libiberty:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-libiberty/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libiberty-bootstrap


.PHONY: all-stagetrain-libiberty maybe-all-stagetrain-libiberty
.PHONY: clean-stagetrain-libiberty maybe-clean-stagetrain-libiberty
maybe-all-stagetrain-libiberty:
maybe-clean-stagetrain-libiberty:
@if libiberty-bootstrap
maybe-all-stagetrain-libiberty: all-stagetrain-libiberty
all-stagetrain: all-stagetrain-libiberty
TARGET-stagetrain-libiberty = $(TARGET-libiberty)
all-stagetrain-libiberty: configure-stagetrain-libiberty
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-libiberty)

maybe-clean-stagetrain-libiberty: clean-stagetrain-libiberty
clean-stagetrain: clean-stagetrain-libiberty
clean-stagetrain-libiberty:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-libiberty/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libiberty-bootstrap


.PHONY: all-stagefeedback-libiberty maybe-all-stagefeedback-libiberty
.PHONY: clean-stagefeedback-libiberty maybe-clean-stagefeedback-libiberty
maybe-all-stagefeedback-libiberty:
maybe-clean-stagefeedback-libiberty:
@if libiberty-bootstrap
maybe-all-stagefeedback-libiberty: all-stagefeedback-libiberty
all-stagefeedback: all-stagefeedback-libiberty
TARGET-stagefeedback-libiberty = $(TARGET-libiberty)
all-stagefeedback-libiberty: configure-stagefeedback-libiberty
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-libiberty)

maybe-clean-stagefeedback-libiberty: clean-stagefeedback-libiberty
clean-stagefeedback: clean-stagefeedback-libiberty
clean-stagefeedback-libiberty:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-libiberty/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libiberty-bootstrap


.PHONY: all-stageautoprofile-libiberty maybe-all-stageautoprofile-libiberty
.PHONY: clean-stageautoprofile-libiberty maybe-clean-stageautoprofile-libiberty
maybe-all-stageautoprofile-libiberty:
maybe-clean-stageautoprofile-libiberty:
@if libiberty-bootstrap
maybe-all-stageautoprofile-libiberty: all-stageautoprofile-libiberty
all-stageautoprofile: all-stageautoprofile-libiberty
TARGET-stageautoprofile-libiberty = $(TARGET-libiberty)
all-stageautoprofile-libiberty: configure-stageautoprofile-libiberty
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-libiberty)

maybe-clean-stageautoprofile-libiberty: clean-stageautoprofile-libiberty
clean-stageautoprofile: clean-stageautoprofile-libiberty
clean-stageautoprofile-libiberty:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-libiberty/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libiberty-bootstrap


.PHONY: all-stageautofeedback-libiberty maybe-all-stageautofeedback-libiberty
.PHONY: clean-stageautofeedback-libiberty maybe-clean-stageautofeedback-libiberty
maybe-all-stageautofeedback-libiberty:
maybe-clean-stageautofeedback-libiberty:
@if libiberty-bootstrap
maybe-all-stageautofeedback-libiberty: all-stageautofeedback-libiberty
all-stageautofeedback: all-stageautofeedback-libiberty
TARGET-stageautofeedback-libiberty = $(TARGET-libiberty)
all-stageautofeedback-libiberty: configure-stageautofeedback-libiberty
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-libiberty)

maybe-clean-stageautofeedback-libiberty: clean-stageautofeedback-libiberty
clean-stageautofeedback: clean-stageautofeedback-libiberty
clean-stageautofeedback-libiberty:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-libiberty/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libiberty-bootstrap





.PHONY: check-libiberty maybe-check-libiberty
maybe-check-libiberty:
@if libiberty
maybe-check-libiberty: check-libiberty

check-libiberty:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libiberty && \
	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif libiberty

.PHONY: install-libiberty maybe-install-libiberty
maybe-install-libiberty:
@if libiberty
maybe-install-libiberty: install-libiberty

install-libiberty: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libiberty && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif libiberty

.PHONY: install-strip-libiberty maybe-install-strip-libiberty
maybe-install-strip-libiberty:
@if libiberty
maybe-install-strip-libiberty: install-strip-libiberty

install-strip-libiberty: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libiberty && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif libiberty

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-libiberty info-libiberty
maybe-info-libiberty:
@if libiberty
maybe-info-libiberty: info-libiberty

info-libiberty: \
    configure-libiberty 
	@[ -f ./libiberty/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in libiberty"; \
	(cd $(HOST_SUBDIR)/libiberty && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif libiberty

.PHONY: maybe-dvi-libiberty dvi-libiberty
maybe-dvi-libiberty:
@if libiberty
maybe-dvi-libiberty: dvi-libiberty

dvi-libiberty: \
    configure-libiberty 
	@[ -f ./libiberty/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in libiberty"; \
	(cd $(HOST_SUBDIR)/libiberty && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif libiberty

.PHONY: maybe-pdf-libiberty pdf-libiberty
maybe-pdf-libiberty:
@if libiberty
maybe-pdf-libiberty: pdf-libiberty

pdf-libiberty: \
    configure-libiberty 
	@[ -f ./libiberty/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in libiberty"; \
	(cd $(HOST_SUBDIR)/libiberty && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif libiberty

.PHONY: maybe-html-libiberty html-libiberty
maybe-html-libiberty:
@if libiberty
maybe-html-libiberty: html-libiberty

html-libiberty: \
    configure-libiberty 
	@[ -f ./libiberty/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in libiberty"; \
	(cd $(HOST_SUBDIR)/libiberty && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif libiberty

.PHONY: maybe-TAGS-libiberty TAGS-libiberty
maybe-TAGS-libiberty:
@if libiberty
maybe-TAGS-libiberty: TAGS-libiberty

TAGS-libiberty: \
    configure-libiberty 
	@[ -f ./libiberty/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in libiberty"; \
	(cd $(HOST_SUBDIR)/libiberty && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif libiberty

.PHONY: maybe-install-info-libiberty install-info-libiberty
maybe-install-info-libiberty:
@if libiberty
maybe-install-info-libiberty: install-info-libiberty

install-info-libiberty: \
    configure-libiberty \
    info-libiberty 
	@[ -f ./libiberty/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in libiberty"; \
	(cd $(HOST_SUBDIR)/libiberty && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif libiberty

.PHONY: maybe-install-pdf-libiberty install-pdf-libiberty
maybe-install-pdf-libiberty:
@if libiberty
maybe-install-pdf-libiberty: install-pdf-libiberty

install-pdf-libiberty: \
    configure-libiberty \
    pdf-libiberty 
	@[ -f ./libiberty/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in libiberty"; \
	(cd $(HOST_SUBDIR)/libiberty && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif libiberty

.PHONY: maybe-install-html-libiberty install-html-libiberty
maybe-install-html-libiberty:
@if libiberty
maybe-install-html-libiberty: install-html-libiberty

install-html-libiberty: \
    configure-libiberty \
    html-libiberty 
	@[ -f ./libiberty/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in libiberty"; \
	(cd $(HOST_SUBDIR)/libiberty && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif libiberty

.PHONY: maybe-installcheck-libiberty installcheck-libiberty
maybe-installcheck-libiberty:
@if libiberty
maybe-installcheck-libiberty: installcheck-libiberty

installcheck-libiberty: \
    configure-libiberty 
	@[ -f ./libiberty/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in libiberty"; \
	(cd $(HOST_SUBDIR)/libiberty && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif libiberty

.PHONY: maybe-mostlyclean-libiberty mostlyclean-libiberty
maybe-mostlyclean-libiberty:
@if libiberty
maybe-mostlyclean-libiberty: mostlyclean-libiberty

mostlyclean-libiberty: 
	@[ -f ./libiberty/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in libiberty"; \
	(cd $(HOST_SUBDIR)/libiberty && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif libiberty

.PHONY: maybe-clean-libiberty clean-libiberty
maybe-clean-libiberty:
@if libiberty
maybe-clean-libiberty: clean-libiberty

clean-libiberty: 
	@[ -f ./libiberty/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in libiberty"; \
	(cd $(HOST_SUBDIR)/libiberty && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif libiberty

.PHONY: maybe-distclean-libiberty distclean-libiberty
maybe-distclean-libiberty:
@if libiberty
maybe-distclean-libiberty: distclean-libiberty

distclean-libiberty: 
	@[ -f ./libiberty/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in libiberty"; \
	(cd $(HOST_SUBDIR)/libiberty && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif libiberty

.PHONY: maybe-maintainer-clean-libiberty maintainer-clean-libiberty
maybe-maintainer-clean-libiberty:
@if libiberty
maybe-maintainer-clean-libiberty: maintainer-clean-libiberty

maintainer-clean-libiberty: 
	@[ -f ./libiberty/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in libiberty"; \
	(cd $(HOST_SUBDIR)/libiberty && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif libiberty



.PHONY: configure-libiberty-linker-plugin maybe-configure-libiberty-linker-plugin
maybe-configure-libiberty-linker-plugin:
@if gcc-bootstrap
configure-libiberty-linker-plugin: stage_current
@endif gcc-bootstrap
@if libiberty-linker-plugin
maybe-configure-libiberty-linker-plugin: configure-libiberty-linker-plugin
configure-libiberty-linker-plugin: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/libiberty-linker-plugin; \
	cd "$(HOST_SUBDIR)/libiberty-linker-plugin" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty-linker-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} @extra_host_libiberty_configure_flags@ --disable-install-libiberty @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@ \
	  || exit 1
@endif libiberty-linker-plugin



.PHONY: configure-stage1-libiberty-linker-plugin maybe-configure-stage1-libiberty-linker-plugin
maybe-configure-stage1-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-configure-stage1-libiberty-linker-plugin: configure-stage1-libiberty-linker-plugin
configure-stage1-libiberty-linker-plugin:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/libiberty-linker-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty-linker-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@ --disable-install-libiberty @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif libiberty-linker-plugin-bootstrap

.PHONY: configure-stage2-libiberty-linker-plugin maybe-configure-stage2-libiberty-linker-plugin
maybe-configure-stage2-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-configure-stage2-libiberty-linker-plugin: configure-stage2-libiberty-linker-plugin
configure-stage2-libiberty-linker-plugin:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/libiberty-linker-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty-linker-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@ --disable-install-libiberty @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif libiberty-linker-plugin-bootstrap

.PHONY: configure-stage3-libiberty-linker-plugin maybe-configure-stage3-libiberty-linker-plugin
maybe-configure-stage3-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-configure-stage3-libiberty-linker-plugin: configure-stage3-libiberty-linker-plugin
configure-stage3-libiberty-linker-plugin:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/libiberty-linker-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty-linker-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@ --disable-install-libiberty @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif libiberty-linker-plugin-bootstrap

.PHONY: configure-stage4-libiberty-linker-plugin maybe-configure-stage4-libiberty-linker-plugin
maybe-configure-stage4-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-configure-stage4-libiberty-linker-plugin: configure-stage4-libiberty-linker-plugin
configure-stage4-libiberty-linker-plugin:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/libiberty-linker-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty-linker-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@ --disable-install-libiberty @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif libiberty-linker-plugin-bootstrap

.PHONY: configure-stageprofile-libiberty-linker-plugin maybe-configure-stageprofile-libiberty-linker-plugin
maybe-configure-stageprofile-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-configure-stageprofile-libiberty-linker-plugin: configure-stageprofile-libiberty-linker-plugin
configure-stageprofile-libiberty-linker-plugin:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/libiberty-linker-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty-linker-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@ --disable-install-libiberty @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif libiberty-linker-plugin-bootstrap

.PHONY: configure-stagetrain-libiberty-linker-plugin maybe-configure-stagetrain-libiberty-linker-plugin
maybe-configure-stagetrain-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-configure-stagetrain-libiberty-linker-plugin: configure-stagetrain-libiberty-linker-plugin
configure-stagetrain-libiberty-linker-plugin:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/libiberty-linker-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty-linker-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@ --disable-install-libiberty @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif libiberty-linker-plugin-bootstrap

.PHONY: configure-stagefeedback-libiberty-linker-plugin maybe-configure-stagefeedback-libiberty-linker-plugin
maybe-configure-stagefeedback-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-configure-stagefeedback-libiberty-linker-plugin: configure-stagefeedback-libiberty-linker-plugin
configure-stagefeedback-libiberty-linker-plugin:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/libiberty-linker-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty-linker-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@ --disable-install-libiberty @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif libiberty-linker-plugin-bootstrap

.PHONY: configure-stageautoprofile-libiberty-linker-plugin maybe-configure-stageautoprofile-libiberty-linker-plugin
maybe-configure-stageautoprofile-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-configure-stageautoprofile-libiberty-linker-plugin: configure-stageautoprofile-libiberty-linker-plugin
configure-stageautoprofile-libiberty-linker-plugin:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/libiberty-linker-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty-linker-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@ --disable-install-libiberty @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif libiberty-linker-plugin-bootstrap

.PHONY: configure-stageautofeedback-libiberty-linker-plugin maybe-configure-stageautofeedback-libiberty-linker-plugin
maybe-configure-stageautofeedback-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-configure-stageautofeedback-libiberty-linker-plugin: configure-stageautofeedback-libiberty-linker-plugin
configure-stageautofeedback-libiberty-linker-plugin:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/libiberty-linker-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiberty-linker-plugin; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiberty-linker-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiberty; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS) \
	  @extra_host_libiberty_configure_flags@ --disable-install-libiberty @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif libiberty-linker-plugin-bootstrap





.PHONY: all-libiberty-linker-plugin maybe-all-libiberty-linker-plugin
maybe-all-libiberty-linker-plugin:
@if gcc-bootstrap
all-libiberty-linker-plugin: stage_current
@endif gcc-bootstrap
@if libiberty-linker-plugin
TARGET-libiberty-linker-plugin=all
maybe-all-libiberty-linker-plugin: all-libiberty-linker-plugin
all-libiberty-linker-plugin: configure-libiberty-linker-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		$(TARGET-libiberty-linker-plugin))
@endif libiberty-linker-plugin



.PHONY: all-stage1-libiberty-linker-plugin maybe-all-stage1-libiberty-linker-plugin
.PHONY: clean-stage1-libiberty-linker-plugin maybe-clean-stage1-libiberty-linker-plugin
maybe-all-stage1-libiberty-linker-plugin:
maybe-clean-stage1-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-all-stage1-libiberty-linker-plugin: all-stage1-libiberty-linker-plugin
all-stage1: all-stage1-libiberty-linker-plugin
TARGET-stage1-libiberty-linker-plugin = $(TARGET-libiberty-linker-plugin)
all-stage1-libiberty-linker-plugin: configure-stage1-libiberty-linker-plugin
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-libiberty-linker-plugin)

maybe-clean-stage1-libiberty-linker-plugin: clean-stage1-libiberty-linker-plugin
clean-stage1: clean-stage1-libiberty-linker-plugin
clean-stage1-libiberty-linker-plugin:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-libiberty-linker-plugin/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif libiberty-linker-plugin-bootstrap


.PHONY: all-stage2-libiberty-linker-plugin maybe-all-stage2-libiberty-linker-plugin
.PHONY: clean-stage2-libiberty-linker-plugin maybe-clean-stage2-libiberty-linker-plugin
maybe-all-stage2-libiberty-linker-plugin:
maybe-clean-stage2-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-all-stage2-libiberty-linker-plugin: all-stage2-libiberty-linker-plugin
all-stage2: all-stage2-libiberty-linker-plugin
TARGET-stage2-libiberty-linker-plugin = $(TARGET-libiberty-linker-plugin)
all-stage2-libiberty-linker-plugin: configure-stage2-libiberty-linker-plugin
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-libiberty-linker-plugin)

maybe-clean-stage2-libiberty-linker-plugin: clean-stage2-libiberty-linker-plugin
clean-stage2: clean-stage2-libiberty-linker-plugin
clean-stage2-libiberty-linker-plugin:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-libiberty-linker-plugin/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif libiberty-linker-plugin-bootstrap


.PHONY: all-stage3-libiberty-linker-plugin maybe-all-stage3-libiberty-linker-plugin
.PHONY: clean-stage3-libiberty-linker-plugin maybe-clean-stage3-libiberty-linker-plugin
maybe-all-stage3-libiberty-linker-plugin:
maybe-clean-stage3-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-all-stage3-libiberty-linker-plugin: all-stage3-libiberty-linker-plugin
all-stage3: all-stage3-libiberty-linker-plugin
TARGET-stage3-libiberty-linker-plugin = $(TARGET-libiberty-linker-plugin)
all-stage3-libiberty-linker-plugin: configure-stage3-libiberty-linker-plugin
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-libiberty-linker-plugin)

maybe-clean-stage3-libiberty-linker-plugin: clean-stage3-libiberty-linker-plugin
clean-stage3: clean-stage3-libiberty-linker-plugin
clean-stage3-libiberty-linker-plugin:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-libiberty-linker-plugin/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif libiberty-linker-plugin-bootstrap


.PHONY: all-stage4-libiberty-linker-plugin maybe-all-stage4-libiberty-linker-plugin
.PHONY: clean-stage4-libiberty-linker-plugin maybe-clean-stage4-libiberty-linker-plugin
maybe-all-stage4-libiberty-linker-plugin:
maybe-clean-stage4-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-all-stage4-libiberty-linker-plugin: all-stage4-libiberty-linker-plugin
all-stage4: all-stage4-libiberty-linker-plugin
TARGET-stage4-libiberty-linker-plugin = $(TARGET-libiberty-linker-plugin)
all-stage4-libiberty-linker-plugin: configure-stage4-libiberty-linker-plugin
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-libiberty-linker-plugin)

maybe-clean-stage4-libiberty-linker-plugin: clean-stage4-libiberty-linker-plugin
clean-stage4: clean-stage4-libiberty-linker-plugin
clean-stage4-libiberty-linker-plugin:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-libiberty-linker-plugin/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif libiberty-linker-plugin-bootstrap


.PHONY: all-stageprofile-libiberty-linker-plugin maybe-all-stageprofile-libiberty-linker-plugin
.PHONY: clean-stageprofile-libiberty-linker-plugin maybe-clean-stageprofile-libiberty-linker-plugin
maybe-all-stageprofile-libiberty-linker-plugin:
maybe-clean-stageprofile-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-all-stageprofile-libiberty-linker-plugin: all-stageprofile-libiberty-linker-plugin
all-stageprofile: all-stageprofile-libiberty-linker-plugin
TARGET-stageprofile-libiberty-linker-plugin = $(TARGET-libiberty-linker-plugin)
all-stageprofile-libiberty-linker-plugin: configure-stageprofile-libiberty-linker-plugin
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-libiberty-linker-plugin)

maybe-clean-stageprofile-libiberty-linker-plugin: clean-stageprofile-libiberty-linker-plugin
clean-stageprofile: clean-stageprofile-libiberty-linker-plugin
clean-stageprofile-libiberty-linker-plugin:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-libiberty-linker-plugin/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif libiberty-linker-plugin-bootstrap


.PHONY: all-stagetrain-libiberty-linker-plugin maybe-all-stagetrain-libiberty-linker-plugin
.PHONY: clean-stagetrain-libiberty-linker-plugin maybe-clean-stagetrain-libiberty-linker-plugin
maybe-all-stagetrain-libiberty-linker-plugin:
maybe-clean-stagetrain-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-all-stagetrain-libiberty-linker-plugin: all-stagetrain-libiberty-linker-plugin
all-stagetrain: all-stagetrain-libiberty-linker-plugin
TARGET-stagetrain-libiberty-linker-plugin = $(TARGET-libiberty-linker-plugin)
all-stagetrain-libiberty-linker-plugin: configure-stagetrain-libiberty-linker-plugin
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-libiberty-linker-plugin)

maybe-clean-stagetrain-libiberty-linker-plugin: clean-stagetrain-libiberty-linker-plugin
clean-stagetrain: clean-stagetrain-libiberty-linker-plugin
clean-stagetrain-libiberty-linker-plugin:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-libiberty-linker-plugin/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif libiberty-linker-plugin-bootstrap


.PHONY: all-stagefeedback-libiberty-linker-plugin maybe-all-stagefeedback-libiberty-linker-plugin
.PHONY: clean-stagefeedback-libiberty-linker-plugin maybe-clean-stagefeedback-libiberty-linker-plugin
maybe-all-stagefeedback-libiberty-linker-plugin:
maybe-clean-stagefeedback-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-all-stagefeedback-libiberty-linker-plugin: all-stagefeedback-libiberty-linker-plugin
all-stagefeedback: all-stagefeedback-libiberty-linker-plugin
TARGET-stagefeedback-libiberty-linker-plugin = $(TARGET-libiberty-linker-plugin)
all-stagefeedback-libiberty-linker-plugin: configure-stagefeedback-libiberty-linker-plugin
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-libiberty-linker-plugin)

maybe-clean-stagefeedback-libiberty-linker-plugin: clean-stagefeedback-libiberty-linker-plugin
clean-stagefeedback: clean-stagefeedback-libiberty-linker-plugin
clean-stagefeedback-libiberty-linker-plugin:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-libiberty-linker-plugin/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif libiberty-linker-plugin-bootstrap


.PHONY: all-stageautoprofile-libiberty-linker-plugin maybe-all-stageautoprofile-libiberty-linker-plugin
.PHONY: clean-stageautoprofile-libiberty-linker-plugin maybe-clean-stageautoprofile-libiberty-linker-plugin
maybe-all-stageautoprofile-libiberty-linker-plugin:
maybe-clean-stageautoprofile-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-all-stageautoprofile-libiberty-linker-plugin: all-stageautoprofile-libiberty-linker-plugin
all-stageautoprofile: all-stageautoprofile-libiberty-linker-plugin
TARGET-stageautoprofile-libiberty-linker-plugin = $(TARGET-libiberty-linker-plugin)
all-stageautoprofile-libiberty-linker-plugin: configure-stageautoprofile-libiberty-linker-plugin
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-libiberty-linker-plugin)

maybe-clean-stageautoprofile-libiberty-linker-plugin: clean-stageautoprofile-libiberty-linker-plugin
clean-stageautoprofile: clean-stageautoprofile-libiberty-linker-plugin
clean-stageautoprofile-libiberty-linker-plugin:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-libiberty-linker-plugin/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif libiberty-linker-plugin-bootstrap


.PHONY: all-stageautofeedback-libiberty-linker-plugin maybe-all-stageautofeedback-libiberty-linker-plugin
.PHONY: clean-stageautofeedback-libiberty-linker-plugin maybe-clean-stageautofeedback-libiberty-linker-plugin
maybe-all-stageautofeedback-libiberty-linker-plugin:
maybe-clean-stageautofeedback-libiberty-linker-plugin:
@if libiberty-linker-plugin-bootstrap
maybe-all-stageautofeedback-libiberty-linker-plugin: all-stageautofeedback-libiberty-linker-plugin
all-stageautofeedback: all-stageautofeedback-libiberty-linker-plugin
TARGET-stageautofeedback-libiberty-linker-plugin = $(TARGET-libiberty-linker-plugin)
all-stageautofeedback-libiberty-linker-plugin: configure-stageautofeedback-libiberty-linker-plugin
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-libiberty-linker-plugin)

maybe-clean-stageautofeedback-libiberty-linker-plugin: clean-stageautofeedback-libiberty-linker-plugin
clean-stageautofeedback: clean-stageautofeedback-libiberty-linker-plugin
clean-stageautofeedback-libiberty-linker-plugin:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/libiberty-linker-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-libiberty-linker-plugin/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif libiberty-linker-plugin-bootstrap





.PHONY: check-libiberty-linker-plugin maybe-check-libiberty-linker-plugin
maybe-check-libiberty-linker-plugin:
@if libiberty-linker-plugin
maybe-check-libiberty-linker-plugin: check-libiberty-linker-plugin

check-libiberty-linker-plugin:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	  $(MAKE) $(FLAGS_TO_PASS) @extra_linker_plugin_flags@ $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif libiberty-linker-plugin

.PHONY: install-libiberty-linker-plugin maybe-install-libiberty-linker-plugin
maybe-install-libiberty-linker-plugin:
@if libiberty-linker-plugin
maybe-install-libiberty-linker-plugin: install-libiberty-linker-plugin

install-libiberty-linker-plugin: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	  $(MAKE) $(FLAGS_TO_PASS) @extra_linker_plugin_flags@ install)

@endif libiberty-linker-plugin

.PHONY: install-strip-libiberty-linker-plugin maybe-install-strip-libiberty-linker-plugin
maybe-install-strip-libiberty-linker-plugin:
@if libiberty-linker-plugin
maybe-install-strip-libiberty-linker-plugin: install-strip-libiberty-linker-plugin

install-strip-libiberty-linker-plugin: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	  $(MAKE) $(FLAGS_TO_PASS) @extra_linker_plugin_flags@ install-strip)

@endif libiberty-linker-plugin

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-libiberty-linker-plugin info-libiberty-linker-plugin
maybe-info-libiberty-linker-plugin:
@if libiberty-linker-plugin
maybe-info-libiberty-linker-plugin: info-libiberty-linker-plugin

info-libiberty-linker-plugin: \
    configure-libiberty-linker-plugin 
	@[ -f ./libiberty-linker-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in libiberty-linker-plugin"; \
	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif libiberty-linker-plugin

.PHONY: maybe-dvi-libiberty-linker-plugin dvi-libiberty-linker-plugin
maybe-dvi-libiberty-linker-plugin:
@if libiberty-linker-plugin
maybe-dvi-libiberty-linker-plugin: dvi-libiberty-linker-plugin

dvi-libiberty-linker-plugin: \
    configure-libiberty-linker-plugin 
	@[ -f ./libiberty-linker-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in libiberty-linker-plugin"; \
	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif libiberty-linker-plugin

.PHONY: maybe-pdf-libiberty-linker-plugin pdf-libiberty-linker-plugin
maybe-pdf-libiberty-linker-plugin:
@if libiberty-linker-plugin
maybe-pdf-libiberty-linker-plugin: pdf-libiberty-linker-plugin

pdf-libiberty-linker-plugin: \
    configure-libiberty-linker-plugin 
	@[ -f ./libiberty-linker-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in libiberty-linker-plugin"; \
	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif libiberty-linker-plugin

.PHONY: maybe-html-libiberty-linker-plugin html-libiberty-linker-plugin
maybe-html-libiberty-linker-plugin:
@if libiberty-linker-plugin
maybe-html-libiberty-linker-plugin: html-libiberty-linker-plugin

html-libiberty-linker-plugin: \
    configure-libiberty-linker-plugin 
	@[ -f ./libiberty-linker-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in libiberty-linker-plugin"; \
	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif libiberty-linker-plugin

.PHONY: maybe-TAGS-libiberty-linker-plugin TAGS-libiberty-linker-plugin
maybe-TAGS-libiberty-linker-plugin:
@if libiberty-linker-plugin
maybe-TAGS-libiberty-linker-plugin: TAGS-libiberty-linker-plugin

TAGS-libiberty-linker-plugin: \
    configure-libiberty-linker-plugin 
	@[ -f ./libiberty-linker-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in libiberty-linker-plugin"; \
	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif libiberty-linker-plugin

.PHONY: maybe-install-info-libiberty-linker-plugin install-info-libiberty-linker-plugin
maybe-install-info-libiberty-linker-plugin:
@if libiberty-linker-plugin
maybe-install-info-libiberty-linker-plugin: install-info-libiberty-linker-plugin

install-info-libiberty-linker-plugin: \
    configure-libiberty-linker-plugin \
    info-libiberty-linker-plugin 
	@[ -f ./libiberty-linker-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in libiberty-linker-plugin"; \
	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif libiberty-linker-plugin

.PHONY: maybe-install-pdf-libiberty-linker-plugin install-pdf-libiberty-linker-plugin
maybe-install-pdf-libiberty-linker-plugin:
@if libiberty-linker-plugin
maybe-install-pdf-libiberty-linker-plugin: install-pdf-libiberty-linker-plugin

install-pdf-libiberty-linker-plugin: \
    configure-libiberty-linker-plugin \
    pdf-libiberty-linker-plugin 
	@[ -f ./libiberty-linker-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in libiberty-linker-plugin"; \
	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif libiberty-linker-plugin

.PHONY: maybe-install-html-libiberty-linker-plugin install-html-libiberty-linker-plugin
maybe-install-html-libiberty-linker-plugin:
@if libiberty-linker-plugin
maybe-install-html-libiberty-linker-plugin: install-html-libiberty-linker-plugin

install-html-libiberty-linker-plugin: \
    configure-libiberty-linker-plugin \
    html-libiberty-linker-plugin 
	@[ -f ./libiberty-linker-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in libiberty-linker-plugin"; \
	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif libiberty-linker-plugin

.PHONY: maybe-installcheck-libiberty-linker-plugin installcheck-libiberty-linker-plugin
maybe-installcheck-libiberty-linker-plugin:
@if libiberty-linker-plugin
maybe-installcheck-libiberty-linker-plugin: installcheck-libiberty-linker-plugin

installcheck-libiberty-linker-plugin: \
    configure-libiberty-linker-plugin 
	@[ -f ./libiberty-linker-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in libiberty-linker-plugin"; \
	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif libiberty-linker-plugin

.PHONY: maybe-mostlyclean-libiberty-linker-plugin mostlyclean-libiberty-linker-plugin
maybe-mostlyclean-libiberty-linker-plugin:
@if libiberty-linker-plugin
maybe-mostlyclean-libiberty-linker-plugin: mostlyclean-libiberty-linker-plugin

mostlyclean-libiberty-linker-plugin: 
	@[ -f ./libiberty-linker-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in libiberty-linker-plugin"; \
	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif libiberty-linker-plugin

.PHONY: maybe-clean-libiberty-linker-plugin clean-libiberty-linker-plugin
maybe-clean-libiberty-linker-plugin:
@if libiberty-linker-plugin
maybe-clean-libiberty-linker-plugin: clean-libiberty-linker-plugin

clean-libiberty-linker-plugin: 
	@[ -f ./libiberty-linker-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in libiberty-linker-plugin"; \
	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif libiberty-linker-plugin

.PHONY: maybe-distclean-libiberty-linker-plugin distclean-libiberty-linker-plugin
maybe-distclean-libiberty-linker-plugin:
@if libiberty-linker-plugin
maybe-distclean-libiberty-linker-plugin: distclean-libiberty-linker-plugin

distclean-libiberty-linker-plugin: 
	@[ -f ./libiberty-linker-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in libiberty-linker-plugin"; \
	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif libiberty-linker-plugin

.PHONY: maybe-maintainer-clean-libiberty-linker-plugin maintainer-clean-libiberty-linker-plugin
maybe-maintainer-clean-libiberty-linker-plugin:
@if libiberty-linker-plugin
maybe-maintainer-clean-libiberty-linker-plugin: maintainer-clean-libiberty-linker-plugin

maintainer-clean-libiberty-linker-plugin: 
	@[ -f ./libiberty-linker-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in libiberty-linker-plugin"; \
	(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif libiberty-linker-plugin



.PHONY: configure-libiconv maybe-configure-libiconv
maybe-configure-libiconv:
@if gcc-bootstrap
configure-libiconv: stage_current
@endif gcc-bootstrap
@if libiconv
maybe-configure-libiconv: configure-libiconv
configure-libiconv: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/libiconv/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/libiconv; \
	cd "$(HOST_SUBDIR)/libiconv" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiconv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiconv; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} --disable-shared \
	  || exit 1
@endif libiconv



.PHONY: configure-stage1-libiconv maybe-configure-stage1-libiconv
maybe-configure-stage1-libiconv:
@if libiconv-bootstrap
maybe-configure-stage1-libiconv: configure-stage1-libiconv
configure-stage1-libiconv:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiconv/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/libiconv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv; \
	cd $(HOST_SUBDIR)/libiconv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiconv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiconv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libiconv-bootstrap

.PHONY: configure-stage2-libiconv maybe-configure-stage2-libiconv
maybe-configure-stage2-libiconv:
@if libiconv-bootstrap
maybe-configure-stage2-libiconv: configure-stage2-libiconv
configure-stage2-libiconv:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiconv/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/libiconv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv; \
	cd $(HOST_SUBDIR)/libiconv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiconv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiconv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libiconv-bootstrap

.PHONY: configure-stage3-libiconv maybe-configure-stage3-libiconv
maybe-configure-stage3-libiconv:
@if libiconv-bootstrap
maybe-configure-stage3-libiconv: configure-stage3-libiconv
configure-stage3-libiconv:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiconv/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/libiconv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv; \
	cd $(HOST_SUBDIR)/libiconv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiconv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiconv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libiconv-bootstrap

.PHONY: configure-stage4-libiconv maybe-configure-stage4-libiconv
maybe-configure-stage4-libiconv:
@if libiconv-bootstrap
maybe-configure-stage4-libiconv: configure-stage4-libiconv
configure-stage4-libiconv:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiconv/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/libiconv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv; \
	cd $(HOST_SUBDIR)/libiconv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiconv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiconv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libiconv-bootstrap

.PHONY: configure-stageprofile-libiconv maybe-configure-stageprofile-libiconv
maybe-configure-stageprofile-libiconv:
@if libiconv-bootstrap
maybe-configure-stageprofile-libiconv: configure-stageprofile-libiconv
configure-stageprofile-libiconv:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiconv/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/libiconv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv; \
	cd $(HOST_SUBDIR)/libiconv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiconv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiconv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libiconv-bootstrap

.PHONY: configure-stagetrain-libiconv maybe-configure-stagetrain-libiconv
maybe-configure-stagetrain-libiconv:
@if libiconv-bootstrap
maybe-configure-stagetrain-libiconv: configure-stagetrain-libiconv
configure-stagetrain-libiconv:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiconv/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/libiconv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv; \
	cd $(HOST_SUBDIR)/libiconv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiconv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiconv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libiconv-bootstrap

.PHONY: configure-stagefeedback-libiconv maybe-configure-stagefeedback-libiconv
maybe-configure-stagefeedback-libiconv:
@if libiconv-bootstrap
maybe-configure-stagefeedback-libiconv: configure-stagefeedback-libiconv
configure-stagefeedback-libiconv:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiconv/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/libiconv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv; \
	cd $(HOST_SUBDIR)/libiconv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiconv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiconv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libiconv-bootstrap

.PHONY: configure-stageautoprofile-libiconv maybe-configure-stageautoprofile-libiconv
maybe-configure-stageautoprofile-libiconv:
@if libiconv-bootstrap
maybe-configure-stageautoprofile-libiconv: configure-stageautoprofile-libiconv
configure-stageautoprofile-libiconv:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiconv/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/libiconv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv; \
	cd $(HOST_SUBDIR)/libiconv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiconv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiconv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libiconv-bootstrap

.PHONY: configure-stageautofeedback-libiconv maybe-configure-stageautofeedback-libiconv
maybe-configure-stageautofeedback-libiconv:
@if libiconv-bootstrap
maybe-configure-stageautofeedback-libiconv: configure-stageautofeedback-libiconv
configure-stageautofeedback-libiconv:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libiconv/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/libiconv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libiconv; \
	cd $(HOST_SUBDIR)/libiconv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libiconv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libiconv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS) \
	  --disable-shared
@endif libiconv-bootstrap





.PHONY: all-libiconv maybe-all-libiconv
maybe-all-libiconv:
@if gcc-bootstrap
all-libiconv: stage_current
@endif gcc-bootstrap
@if libiconv
TARGET-libiconv=all
maybe-all-libiconv: all-libiconv
all-libiconv: configure-libiconv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/libiconv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-libiconv))
@endif libiconv



.PHONY: all-stage1-libiconv maybe-all-stage1-libiconv
.PHONY: clean-stage1-libiconv maybe-clean-stage1-libiconv
maybe-all-stage1-libiconv:
maybe-clean-stage1-libiconv:
@if libiconv-bootstrap
maybe-all-stage1-libiconv: all-stage1-libiconv
all-stage1: all-stage1-libiconv
TARGET-stage1-libiconv = $(TARGET-libiconv)
all-stage1-libiconv: configure-stage1-libiconv
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiconv && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-libiconv)

maybe-clean-stage1-libiconv: clean-stage1-libiconv
clean-stage1: clean-stage1-libiconv
clean-stage1-libiconv:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/libiconv/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-libiconv/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiconv && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS)  clean
@endif libiconv-bootstrap


.PHONY: all-stage2-libiconv maybe-all-stage2-libiconv
.PHONY: clean-stage2-libiconv maybe-clean-stage2-libiconv
maybe-all-stage2-libiconv:
maybe-clean-stage2-libiconv:
@if libiconv-bootstrap
maybe-all-stage2-libiconv: all-stage2-libiconv
all-stage2: all-stage2-libiconv
TARGET-stage2-libiconv = $(TARGET-libiconv)
all-stage2-libiconv: configure-stage2-libiconv
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiconv && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-libiconv)

maybe-clean-stage2-libiconv: clean-stage2-libiconv
clean-stage2: clean-stage2-libiconv
clean-stage2-libiconv:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/libiconv/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-libiconv/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiconv && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libiconv-bootstrap


.PHONY: all-stage3-libiconv maybe-all-stage3-libiconv
.PHONY: clean-stage3-libiconv maybe-clean-stage3-libiconv
maybe-all-stage3-libiconv:
maybe-clean-stage3-libiconv:
@if libiconv-bootstrap
maybe-all-stage3-libiconv: all-stage3-libiconv
all-stage3: all-stage3-libiconv
TARGET-stage3-libiconv = $(TARGET-libiconv)
all-stage3-libiconv: configure-stage3-libiconv
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiconv && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-libiconv)

maybe-clean-stage3-libiconv: clean-stage3-libiconv
clean-stage3: clean-stage3-libiconv
clean-stage3-libiconv:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/libiconv/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-libiconv/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiconv && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libiconv-bootstrap


.PHONY: all-stage4-libiconv maybe-all-stage4-libiconv
.PHONY: clean-stage4-libiconv maybe-clean-stage4-libiconv
maybe-all-stage4-libiconv:
maybe-clean-stage4-libiconv:
@if libiconv-bootstrap
maybe-all-stage4-libiconv: all-stage4-libiconv
all-stage4: all-stage4-libiconv
TARGET-stage4-libiconv = $(TARGET-libiconv)
all-stage4-libiconv: configure-stage4-libiconv
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiconv && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-libiconv)

maybe-clean-stage4-libiconv: clean-stage4-libiconv
clean-stage4: clean-stage4-libiconv
clean-stage4-libiconv:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/libiconv/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-libiconv/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiconv && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libiconv-bootstrap


.PHONY: all-stageprofile-libiconv maybe-all-stageprofile-libiconv
.PHONY: clean-stageprofile-libiconv maybe-clean-stageprofile-libiconv
maybe-all-stageprofile-libiconv:
maybe-clean-stageprofile-libiconv:
@if libiconv-bootstrap
maybe-all-stageprofile-libiconv: all-stageprofile-libiconv
all-stageprofile: all-stageprofile-libiconv
TARGET-stageprofile-libiconv = $(TARGET-libiconv)
all-stageprofile-libiconv: configure-stageprofile-libiconv
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiconv && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-libiconv)

maybe-clean-stageprofile-libiconv: clean-stageprofile-libiconv
clean-stageprofile: clean-stageprofile-libiconv
clean-stageprofile-libiconv:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/libiconv/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-libiconv/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiconv && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libiconv-bootstrap


.PHONY: all-stagetrain-libiconv maybe-all-stagetrain-libiconv
.PHONY: clean-stagetrain-libiconv maybe-clean-stagetrain-libiconv
maybe-all-stagetrain-libiconv:
maybe-clean-stagetrain-libiconv:
@if libiconv-bootstrap
maybe-all-stagetrain-libiconv: all-stagetrain-libiconv
all-stagetrain: all-stagetrain-libiconv
TARGET-stagetrain-libiconv = $(TARGET-libiconv)
all-stagetrain-libiconv: configure-stagetrain-libiconv
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiconv && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-libiconv)

maybe-clean-stagetrain-libiconv: clean-stagetrain-libiconv
clean-stagetrain: clean-stagetrain-libiconv
clean-stagetrain-libiconv:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/libiconv/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-libiconv/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiconv && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libiconv-bootstrap


.PHONY: all-stagefeedback-libiconv maybe-all-stagefeedback-libiconv
.PHONY: clean-stagefeedback-libiconv maybe-clean-stagefeedback-libiconv
maybe-all-stagefeedback-libiconv:
maybe-clean-stagefeedback-libiconv:
@if libiconv-bootstrap
maybe-all-stagefeedback-libiconv: all-stagefeedback-libiconv
all-stagefeedback: all-stagefeedback-libiconv
TARGET-stagefeedback-libiconv = $(TARGET-libiconv)
all-stagefeedback-libiconv: configure-stagefeedback-libiconv
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiconv && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-libiconv)

maybe-clean-stagefeedback-libiconv: clean-stagefeedback-libiconv
clean-stagefeedback: clean-stagefeedback-libiconv
clean-stagefeedback-libiconv:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/libiconv/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-libiconv/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiconv && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libiconv-bootstrap


.PHONY: all-stageautoprofile-libiconv maybe-all-stageautoprofile-libiconv
.PHONY: clean-stageautoprofile-libiconv maybe-clean-stageautoprofile-libiconv
maybe-all-stageautoprofile-libiconv:
maybe-clean-stageautoprofile-libiconv:
@if libiconv-bootstrap
maybe-all-stageautoprofile-libiconv: all-stageautoprofile-libiconv
all-stageautoprofile: all-stageautoprofile-libiconv
TARGET-stageautoprofile-libiconv = $(TARGET-libiconv)
all-stageautoprofile-libiconv: configure-stageautoprofile-libiconv
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiconv && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-libiconv)

maybe-clean-stageautoprofile-libiconv: clean-stageautoprofile-libiconv
clean-stageautoprofile: clean-stageautoprofile-libiconv
clean-stageautoprofile-libiconv:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/libiconv/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-libiconv/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiconv && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libiconv-bootstrap


.PHONY: all-stageautofeedback-libiconv maybe-all-stageautofeedback-libiconv
.PHONY: clean-stageautofeedback-libiconv maybe-clean-stageautofeedback-libiconv
maybe-all-stageautofeedback-libiconv:
maybe-clean-stageautofeedback-libiconv:
@if libiconv-bootstrap
maybe-all-stageautofeedback-libiconv: all-stageautofeedback-libiconv
all-stageautofeedback: all-stageautofeedback-libiconv
TARGET-stageautofeedback-libiconv = $(TARGET-libiconv)
all-stageautofeedback-libiconv: configure-stageautofeedback-libiconv
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/libiconv && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-libiconv)

maybe-clean-stageautofeedback-libiconv: clean-stageautofeedback-libiconv
clean-stageautofeedback: clean-stageautofeedback-libiconv
clean-stageautofeedback-libiconv:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/libiconv/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-libiconv/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/libiconv && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif libiconv-bootstrap





.PHONY: check-libiconv maybe-check-libiconv
maybe-check-libiconv:
@if libiconv
maybe-check-libiconv: check-libiconv

check-libiconv:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libiconv && \
	  $(MAKE) $(FLAGS_TO_PASS)  $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif libiconv

.PHONY: install-libiconv maybe-install-libiconv
maybe-install-libiconv:
@if libiconv
maybe-install-libiconv: install-libiconv

install-libiconv:

@endif libiconv

.PHONY: install-strip-libiconv maybe-install-strip-libiconv
maybe-install-strip-libiconv:
@if libiconv
maybe-install-strip-libiconv: install-strip-libiconv

install-strip-libiconv:

@endif libiconv

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-libiconv info-libiconv
maybe-info-libiconv:
@if libiconv
maybe-info-libiconv: info-libiconv

# libiconv doesn't support info.
info-libiconv:

@endif libiconv

.PHONY: maybe-dvi-libiconv dvi-libiconv
maybe-dvi-libiconv:
@if libiconv
maybe-dvi-libiconv: dvi-libiconv

dvi-libiconv: \
    configure-libiconv 
	@[ -f ./libiconv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in libiconv"; \
	(cd $(HOST_SUBDIR)/libiconv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif libiconv

.PHONY: maybe-pdf-libiconv pdf-libiconv
maybe-pdf-libiconv:
@if libiconv
maybe-pdf-libiconv: pdf-libiconv

# libiconv doesn't support pdf.
pdf-libiconv:

@endif libiconv

.PHONY: maybe-html-libiconv html-libiconv
maybe-html-libiconv:
@if libiconv
maybe-html-libiconv: html-libiconv

# libiconv doesn't support html.
html-libiconv:

@endif libiconv

.PHONY: maybe-TAGS-libiconv TAGS-libiconv
maybe-TAGS-libiconv:
@if libiconv
maybe-TAGS-libiconv: TAGS-libiconv

TAGS-libiconv: \
    configure-libiconv 
	@[ -f ./libiconv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in libiconv"; \
	(cd $(HOST_SUBDIR)/libiconv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif libiconv

.PHONY: maybe-install-info-libiconv install-info-libiconv
maybe-install-info-libiconv:
@if libiconv
maybe-install-info-libiconv: install-info-libiconv

# libiconv doesn't support install-info.
install-info-libiconv:

@endif libiconv

.PHONY: maybe-install-pdf-libiconv install-pdf-libiconv
maybe-install-pdf-libiconv:
@if libiconv
maybe-install-pdf-libiconv: install-pdf-libiconv

# libiconv doesn't support install-pdf.
install-pdf-libiconv:

@endif libiconv

.PHONY: maybe-install-html-libiconv install-html-libiconv
maybe-install-html-libiconv:
@if libiconv
maybe-install-html-libiconv: install-html-libiconv

# libiconv doesn't support install-html.
install-html-libiconv:

@endif libiconv

.PHONY: maybe-installcheck-libiconv installcheck-libiconv
maybe-installcheck-libiconv:
@if libiconv
maybe-installcheck-libiconv: installcheck-libiconv

installcheck-libiconv: \
    configure-libiconv 
	@[ -f ./libiconv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in libiconv"; \
	(cd $(HOST_SUBDIR)/libiconv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif libiconv

.PHONY: maybe-mostlyclean-libiconv mostlyclean-libiconv
maybe-mostlyclean-libiconv:
@if libiconv
maybe-mostlyclean-libiconv: mostlyclean-libiconv

mostlyclean-libiconv: 
	@[ -f ./libiconv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in libiconv"; \
	(cd $(HOST_SUBDIR)/libiconv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif libiconv

.PHONY: maybe-clean-libiconv clean-libiconv
maybe-clean-libiconv:
@if libiconv
maybe-clean-libiconv: clean-libiconv

clean-libiconv: 
	@[ -f ./libiconv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in libiconv"; \
	(cd $(HOST_SUBDIR)/libiconv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif libiconv

.PHONY: maybe-distclean-libiconv distclean-libiconv
maybe-distclean-libiconv:
@if libiconv
maybe-distclean-libiconv: distclean-libiconv

distclean-libiconv: 
	@[ -f ./libiconv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in libiconv"; \
	(cd $(HOST_SUBDIR)/libiconv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif libiconv

.PHONY: maybe-maintainer-clean-libiconv maintainer-clean-libiconv
maybe-maintainer-clean-libiconv:
@if libiconv
maybe-maintainer-clean-libiconv: maintainer-clean-libiconv

maintainer-clean-libiconv: 
	@[ -f ./libiconv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in libiconv"; \
	(cd $(HOST_SUBDIR)/libiconv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif libiconv



.PHONY: configure-m4 maybe-configure-m4
maybe-configure-m4:
@if gcc-bootstrap
configure-m4: stage_current
@endif gcc-bootstrap
@if m4
maybe-configure-m4: configure-m4
configure-m4: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/m4/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/m4; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/m4; \
	cd "$(HOST_SUBDIR)/m4" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/m4/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=m4; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif m4





.PHONY: all-m4 maybe-all-m4
maybe-all-m4:
@if gcc-bootstrap
all-m4: stage_current
@endif gcc-bootstrap
@if m4
TARGET-m4=all
maybe-all-m4: all-m4
all-m4: configure-m4
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/m4 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-m4))
@endif m4




.PHONY: check-m4 maybe-check-m4
maybe-check-m4:
@if m4
maybe-check-m4: check-m4

check-m4:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/m4 && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif m4

.PHONY: install-m4 maybe-install-m4
maybe-install-m4:
@if m4
maybe-install-m4: install-m4

install-m4: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/m4 && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif m4

.PHONY: install-strip-m4 maybe-install-strip-m4
maybe-install-strip-m4:
@if m4
maybe-install-strip-m4: install-strip-m4

install-strip-m4: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/m4 && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif m4

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-m4 info-m4
maybe-info-m4:
@if m4
maybe-info-m4: info-m4

info-m4: \
    configure-m4 
	@: $(MAKE); $(unstage)
	@[ -f ./m4/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in m4"; \
	(cd $(HOST_SUBDIR)/m4 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif m4

.PHONY: maybe-dvi-m4 dvi-m4
maybe-dvi-m4:
@if m4
maybe-dvi-m4: dvi-m4

dvi-m4: \
    configure-m4 
	@: $(MAKE); $(unstage)
	@[ -f ./m4/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in m4"; \
	(cd $(HOST_SUBDIR)/m4 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif m4

.PHONY: maybe-pdf-m4 pdf-m4
maybe-pdf-m4:
@if m4
maybe-pdf-m4: pdf-m4

pdf-m4: \
    configure-m4 
	@: $(MAKE); $(unstage)
	@[ -f ./m4/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in m4"; \
	(cd $(HOST_SUBDIR)/m4 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif m4

.PHONY: maybe-html-m4 html-m4
maybe-html-m4:
@if m4
maybe-html-m4: html-m4

html-m4: \
    configure-m4 
	@: $(MAKE); $(unstage)
	@[ -f ./m4/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in m4"; \
	(cd $(HOST_SUBDIR)/m4 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif m4

.PHONY: maybe-TAGS-m4 TAGS-m4
maybe-TAGS-m4:
@if m4
maybe-TAGS-m4: TAGS-m4

TAGS-m4: \
    configure-m4 
	@: $(MAKE); $(unstage)
	@[ -f ./m4/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in m4"; \
	(cd $(HOST_SUBDIR)/m4 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif m4

.PHONY: maybe-install-info-m4 install-info-m4
maybe-install-info-m4:
@if m4
maybe-install-info-m4: install-info-m4

install-info-m4: \
    configure-m4 \
    info-m4 
	@: $(MAKE); $(unstage)
	@[ -f ./m4/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in m4"; \
	(cd $(HOST_SUBDIR)/m4 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif m4

.PHONY: maybe-install-pdf-m4 install-pdf-m4
maybe-install-pdf-m4:
@if m4
maybe-install-pdf-m4: install-pdf-m4

install-pdf-m4: \
    configure-m4 \
    pdf-m4 
	@: $(MAKE); $(unstage)
	@[ -f ./m4/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in m4"; \
	(cd $(HOST_SUBDIR)/m4 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif m4

.PHONY: maybe-install-html-m4 install-html-m4
maybe-install-html-m4:
@if m4
maybe-install-html-m4: install-html-m4

install-html-m4: \
    configure-m4 \
    html-m4 
	@: $(MAKE); $(unstage)
	@[ -f ./m4/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in m4"; \
	(cd $(HOST_SUBDIR)/m4 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif m4

.PHONY: maybe-installcheck-m4 installcheck-m4
maybe-installcheck-m4:
@if m4
maybe-installcheck-m4: installcheck-m4

installcheck-m4: \
    configure-m4 
	@: $(MAKE); $(unstage)
	@[ -f ./m4/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in m4"; \
	(cd $(HOST_SUBDIR)/m4 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif m4

.PHONY: maybe-mostlyclean-m4 mostlyclean-m4
maybe-mostlyclean-m4:
@if m4
maybe-mostlyclean-m4: mostlyclean-m4

mostlyclean-m4: 
	@: $(MAKE); $(unstage)
	@[ -f ./m4/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in m4"; \
	(cd $(HOST_SUBDIR)/m4 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif m4

.PHONY: maybe-clean-m4 clean-m4
maybe-clean-m4:
@if m4
maybe-clean-m4: clean-m4

clean-m4: 
	@: $(MAKE); $(unstage)
	@[ -f ./m4/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in m4"; \
	(cd $(HOST_SUBDIR)/m4 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif m4

.PHONY: maybe-distclean-m4 distclean-m4
maybe-distclean-m4:
@if m4
maybe-distclean-m4: distclean-m4

distclean-m4: 
	@: $(MAKE); $(unstage)
	@[ -f ./m4/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in m4"; \
	(cd $(HOST_SUBDIR)/m4 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif m4

.PHONY: maybe-maintainer-clean-m4 maintainer-clean-m4
maybe-maintainer-clean-m4:
@if m4
maybe-maintainer-clean-m4: maintainer-clean-m4

maintainer-clean-m4: 
	@: $(MAKE); $(unstage)
	@[ -f ./m4/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in m4"; \
	(cd $(HOST_SUBDIR)/m4 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif m4



.PHONY: configure-readline maybe-configure-readline
maybe-configure-readline:
@if gcc-bootstrap
configure-readline: stage_current
@endif gcc-bootstrap
@if readline
maybe-configure-readline: configure-readline
configure-readline: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/readline/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/readline; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/readline; \
	cd "$(HOST_SUBDIR)/readline" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/readline/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=readline; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif readline





.PHONY: all-readline maybe-all-readline
maybe-all-readline:
@if gcc-bootstrap
all-readline: stage_current
@endif gcc-bootstrap
@if readline
TARGET-readline=all
maybe-all-readline: all-readline
all-readline: configure-readline
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/readline && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-readline))
@endif readline




.PHONY: check-readline maybe-check-readline
maybe-check-readline:
@if readline
maybe-check-readline: check-readline

check-readline:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/readline && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif readline

.PHONY: install-readline maybe-install-readline
maybe-install-readline:
@if readline
maybe-install-readline: install-readline

install-readline: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/readline && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif readline

.PHONY: install-strip-readline maybe-install-strip-readline
maybe-install-strip-readline:
@if readline
maybe-install-strip-readline: install-strip-readline

install-strip-readline: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/readline && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif readline

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-readline info-readline
maybe-info-readline:
@if readline
maybe-info-readline: info-readline

info-readline: \
    configure-readline 
	@: $(MAKE); $(unstage)
	@[ -f ./readline/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in readline"; \
	(cd $(HOST_SUBDIR)/readline && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif readline

.PHONY: maybe-dvi-readline dvi-readline
maybe-dvi-readline:
@if readline
maybe-dvi-readline: dvi-readline

dvi-readline: \
    configure-readline 
	@: $(MAKE); $(unstage)
	@[ -f ./readline/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in readline"; \
	(cd $(HOST_SUBDIR)/readline && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif readline

.PHONY: maybe-pdf-readline pdf-readline
maybe-pdf-readline:
@if readline
maybe-pdf-readline: pdf-readline

pdf-readline: \
    configure-readline 
	@: $(MAKE); $(unstage)
	@[ -f ./readline/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in readline"; \
	(cd $(HOST_SUBDIR)/readline && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif readline

.PHONY: maybe-html-readline html-readline
maybe-html-readline:
@if readline
maybe-html-readline: html-readline

html-readline: \
    configure-readline 
	@: $(MAKE); $(unstage)
	@[ -f ./readline/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in readline"; \
	(cd $(HOST_SUBDIR)/readline && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif readline

.PHONY: maybe-TAGS-readline TAGS-readline
maybe-TAGS-readline:
@if readline
maybe-TAGS-readline: TAGS-readline

TAGS-readline: \
    configure-readline 
	@: $(MAKE); $(unstage)
	@[ -f ./readline/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in readline"; \
	(cd $(HOST_SUBDIR)/readline && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif readline

.PHONY: maybe-install-info-readline install-info-readline
maybe-install-info-readline:
@if readline
maybe-install-info-readline: install-info-readline

install-info-readline: \
    configure-readline \
    info-readline 
	@: $(MAKE); $(unstage)
	@[ -f ./readline/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in readline"; \
	(cd $(HOST_SUBDIR)/readline && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif readline

.PHONY: maybe-install-pdf-readline install-pdf-readline
maybe-install-pdf-readline:
@if readline
maybe-install-pdf-readline: install-pdf-readline

install-pdf-readline: \
    configure-readline \
    pdf-readline 
	@: $(MAKE); $(unstage)
	@[ -f ./readline/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in readline"; \
	(cd $(HOST_SUBDIR)/readline && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif readline

.PHONY: maybe-install-html-readline install-html-readline
maybe-install-html-readline:
@if readline
maybe-install-html-readline: install-html-readline

install-html-readline: \
    configure-readline \
    html-readline 
	@: $(MAKE); $(unstage)
	@[ -f ./readline/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in readline"; \
	(cd $(HOST_SUBDIR)/readline && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif readline

.PHONY: maybe-installcheck-readline installcheck-readline
maybe-installcheck-readline:
@if readline
maybe-installcheck-readline: installcheck-readline

installcheck-readline: \
    configure-readline 
	@: $(MAKE); $(unstage)
	@[ -f ./readline/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in readline"; \
	(cd $(HOST_SUBDIR)/readline && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif readline

.PHONY: maybe-mostlyclean-readline mostlyclean-readline
maybe-mostlyclean-readline:
@if readline
maybe-mostlyclean-readline: mostlyclean-readline

mostlyclean-readline: 
	@: $(MAKE); $(unstage)
	@[ -f ./readline/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in readline"; \
	(cd $(HOST_SUBDIR)/readline && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif readline

.PHONY: maybe-clean-readline clean-readline
maybe-clean-readline:
@if readline
maybe-clean-readline: clean-readline

clean-readline: 
	@: $(MAKE); $(unstage)
	@[ -f ./readline/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in readline"; \
	(cd $(HOST_SUBDIR)/readline && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif readline

.PHONY: maybe-distclean-readline distclean-readline
maybe-distclean-readline:
@if readline
maybe-distclean-readline: distclean-readline

distclean-readline: 
	@: $(MAKE); $(unstage)
	@[ -f ./readline/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in readline"; \
	(cd $(HOST_SUBDIR)/readline && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif readline

.PHONY: maybe-maintainer-clean-readline maintainer-clean-readline
maybe-maintainer-clean-readline:
@if readline
maybe-maintainer-clean-readline: maintainer-clean-readline

maintainer-clean-readline: 
	@: $(MAKE); $(unstage)
	@[ -f ./readline/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in readline"; \
	(cd $(HOST_SUBDIR)/readline && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif readline



.PHONY: configure-sid maybe-configure-sid
maybe-configure-sid:
@if gcc-bootstrap
configure-sid: stage_current
@endif gcc-bootstrap
@if sid
maybe-configure-sid: configure-sid
configure-sid: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/sid/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/sid; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/sid; \
	cd "$(HOST_SUBDIR)/sid" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/sid/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=sid; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif sid





.PHONY: all-sid maybe-all-sid
maybe-all-sid:
@if gcc-bootstrap
all-sid: stage_current
@endif gcc-bootstrap
@if sid
TARGET-sid=all
maybe-all-sid: all-sid
all-sid: configure-sid
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/sid && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-sid))
@endif sid




.PHONY: check-sid maybe-check-sid
maybe-check-sid:
@if sid
maybe-check-sid: check-sid

check-sid:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/sid && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif sid

.PHONY: install-sid maybe-install-sid
maybe-install-sid:
@if sid
maybe-install-sid: install-sid

install-sid: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/sid && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif sid

.PHONY: install-strip-sid maybe-install-strip-sid
maybe-install-strip-sid:
@if sid
maybe-install-strip-sid: install-strip-sid

install-strip-sid: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/sid && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif sid

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-sid info-sid
maybe-info-sid:
@if sid
maybe-info-sid: info-sid

info-sid: \
    configure-sid 
	@: $(MAKE); $(unstage)
	@[ -f ./sid/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in sid"; \
	(cd $(HOST_SUBDIR)/sid && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif sid

.PHONY: maybe-dvi-sid dvi-sid
maybe-dvi-sid:
@if sid
maybe-dvi-sid: dvi-sid

dvi-sid: \
    configure-sid 
	@: $(MAKE); $(unstage)
	@[ -f ./sid/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in sid"; \
	(cd $(HOST_SUBDIR)/sid && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif sid

.PHONY: maybe-pdf-sid pdf-sid
maybe-pdf-sid:
@if sid
maybe-pdf-sid: pdf-sid

pdf-sid: \
    configure-sid 
	@: $(MAKE); $(unstage)
	@[ -f ./sid/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in sid"; \
	(cd $(HOST_SUBDIR)/sid && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif sid

.PHONY: maybe-html-sid html-sid
maybe-html-sid:
@if sid
maybe-html-sid: html-sid

html-sid: \
    configure-sid 
	@: $(MAKE); $(unstage)
	@[ -f ./sid/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in sid"; \
	(cd $(HOST_SUBDIR)/sid && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif sid

.PHONY: maybe-TAGS-sid TAGS-sid
maybe-TAGS-sid:
@if sid
maybe-TAGS-sid: TAGS-sid

TAGS-sid: \
    configure-sid 
	@: $(MAKE); $(unstage)
	@[ -f ./sid/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in sid"; \
	(cd $(HOST_SUBDIR)/sid && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif sid

.PHONY: maybe-install-info-sid install-info-sid
maybe-install-info-sid:
@if sid
maybe-install-info-sid: install-info-sid

install-info-sid: \
    configure-sid \
    info-sid 
	@: $(MAKE); $(unstage)
	@[ -f ./sid/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in sid"; \
	(cd $(HOST_SUBDIR)/sid && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif sid

.PHONY: maybe-install-pdf-sid install-pdf-sid
maybe-install-pdf-sid:
@if sid
maybe-install-pdf-sid: install-pdf-sid

install-pdf-sid: \
    configure-sid \
    pdf-sid 
	@: $(MAKE); $(unstage)
	@[ -f ./sid/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in sid"; \
	(cd $(HOST_SUBDIR)/sid && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif sid

.PHONY: maybe-install-html-sid install-html-sid
maybe-install-html-sid:
@if sid
maybe-install-html-sid: install-html-sid

install-html-sid: \
    configure-sid \
    html-sid 
	@: $(MAKE); $(unstage)
	@[ -f ./sid/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in sid"; \
	(cd $(HOST_SUBDIR)/sid && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif sid

.PHONY: maybe-installcheck-sid installcheck-sid
maybe-installcheck-sid:
@if sid
maybe-installcheck-sid: installcheck-sid

installcheck-sid: \
    configure-sid 
	@: $(MAKE); $(unstage)
	@[ -f ./sid/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in sid"; \
	(cd $(HOST_SUBDIR)/sid && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif sid

.PHONY: maybe-mostlyclean-sid mostlyclean-sid
maybe-mostlyclean-sid:
@if sid
maybe-mostlyclean-sid: mostlyclean-sid

mostlyclean-sid: 
	@: $(MAKE); $(unstage)
	@[ -f ./sid/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in sid"; \
	(cd $(HOST_SUBDIR)/sid && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif sid

.PHONY: maybe-clean-sid clean-sid
maybe-clean-sid:
@if sid
maybe-clean-sid: clean-sid

clean-sid: 
	@: $(MAKE); $(unstage)
	@[ -f ./sid/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in sid"; \
	(cd $(HOST_SUBDIR)/sid && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif sid

.PHONY: maybe-distclean-sid distclean-sid
maybe-distclean-sid:
@if sid
maybe-distclean-sid: distclean-sid

distclean-sid: 
	@: $(MAKE); $(unstage)
	@[ -f ./sid/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in sid"; \
	(cd $(HOST_SUBDIR)/sid && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif sid

.PHONY: maybe-maintainer-clean-sid maintainer-clean-sid
maybe-maintainer-clean-sid:
@if sid
maybe-maintainer-clean-sid: maintainer-clean-sid

maintainer-clean-sid: 
	@: $(MAKE); $(unstage)
	@[ -f ./sid/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in sid"; \
	(cd $(HOST_SUBDIR)/sid && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif sid



.PHONY: configure-sim maybe-configure-sim
maybe-configure-sim:
@if gcc-bootstrap
configure-sim: stage_current
@endif gcc-bootstrap
@if sim
maybe-configure-sim: configure-sim
configure-sim: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/sim/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/sim; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/sim; \
	cd "$(HOST_SUBDIR)/sim" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/sim/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=sim; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif sim





.PHONY: all-sim maybe-all-sim
maybe-all-sim:
@if gcc-bootstrap
all-sim: stage_current
@endif gcc-bootstrap
@if sim
TARGET-sim=all
maybe-all-sim: all-sim
all-sim: configure-sim
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/sim && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-sim))
@endif sim




.PHONY: check-sim maybe-check-sim
maybe-check-sim:
@if sim
maybe-check-sim: check-sim

check-sim:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/sim && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif sim

.PHONY: install-sim maybe-install-sim
maybe-install-sim:
@if sim
maybe-install-sim: install-sim

install-sim: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/sim && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif sim

.PHONY: install-strip-sim maybe-install-strip-sim
maybe-install-strip-sim:
@if sim
maybe-install-strip-sim: install-strip-sim

install-strip-sim: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/sim && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif sim

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-sim info-sim
maybe-info-sim:
@if sim
maybe-info-sim: info-sim

info-sim: \
    configure-sim 
	@: $(MAKE); $(unstage)
	@[ -f ./sim/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in sim"; \
	(cd $(HOST_SUBDIR)/sim && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif sim

.PHONY: maybe-dvi-sim dvi-sim
maybe-dvi-sim:
@if sim
maybe-dvi-sim: dvi-sim

dvi-sim: \
    configure-sim 
	@: $(MAKE); $(unstage)
	@[ -f ./sim/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in sim"; \
	(cd $(HOST_SUBDIR)/sim && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif sim

.PHONY: maybe-pdf-sim pdf-sim
maybe-pdf-sim:
@if sim
maybe-pdf-sim: pdf-sim

pdf-sim: \
    configure-sim 
	@: $(MAKE); $(unstage)
	@[ -f ./sim/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in sim"; \
	(cd $(HOST_SUBDIR)/sim && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif sim

.PHONY: maybe-html-sim html-sim
maybe-html-sim:
@if sim
maybe-html-sim: html-sim

html-sim: \
    configure-sim 
	@: $(MAKE); $(unstage)
	@[ -f ./sim/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in sim"; \
	(cd $(HOST_SUBDIR)/sim && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif sim

.PHONY: maybe-TAGS-sim TAGS-sim
maybe-TAGS-sim:
@if sim
maybe-TAGS-sim: TAGS-sim

TAGS-sim: \
    configure-sim 
	@: $(MAKE); $(unstage)
	@[ -f ./sim/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in sim"; \
	(cd $(HOST_SUBDIR)/sim && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif sim

.PHONY: maybe-install-info-sim install-info-sim
maybe-install-info-sim:
@if sim
maybe-install-info-sim: install-info-sim

install-info-sim: \
    configure-sim \
    info-sim 
	@: $(MAKE); $(unstage)
	@[ -f ./sim/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in sim"; \
	(cd $(HOST_SUBDIR)/sim && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif sim

.PHONY: maybe-install-pdf-sim install-pdf-sim
maybe-install-pdf-sim:
@if sim
maybe-install-pdf-sim: install-pdf-sim

install-pdf-sim: \
    configure-sim \
    pdf-sim 
	@: $(MAKE); $(unstage)
	@[ -f ./sim/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in sim"; \
	(cd $(HOST_SUBDIR)/sim && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif sim

.PHONY: maybe-install-html-sim install-html-sim
maybe-install-html-sim:
@if sim
maybe-install-html-sim: install-html-sim

install-html-sim: \
    configure-sim \
    html-sim 
	@: $(MAKE); $(unstage)
	@[ -f ./sim/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in sim"; \
	(cd $(HOST_SUBDIR)/sim && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif sim

.PHONY: maybe-installcheck-sim installcheck-sim
maybe-installcheck-sim:
@if sim
maybe-installcheck-sim: installcheck-sim

installcheck-sim: \
    configure-sim 
	@: $(MAKE); $(unstage)
	@[ -f ./sim/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in sim"; \
	(cd $(HOST_SUBDIR)/sim && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif sim

.PHONY: maybe-mostlyclean-sim mostlyclean-sim
maybe-mostlyclean-sim:
@if sim
maybe-mostlyclean-sim: mostlyclean-sim

mostlyclean-sim: 
	@: $(MAKE); $(unstage)
	@[ -f ./sim/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in sim"; \
	(cd $(HOST_SUBDIR)/sim && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif sim

.PHONY: maybe-clean-sim clean-sim
maybe-clean-sim:
@if sim
maybe-clean-sim: clean-sim

clean-sim: 
	@: $(MAKE); $(unstage)
	@[ -f ./sim/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in sim"; \
	(cd $(HOST_SUBDIR)/sim && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif sim

.PHONY: maybe-distclean-sim distclean-sim
maybe-distclean-sim:
@if sim
maybe-distclean-sim: distclean-sim

distclean-sim: 
	@: $(MAKE); $(unstage)
	@[ -f ./sim/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in sim"; \
	(cd $(HOST_SUBDIR)/sim && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif sim

.PHONY: maybe-maintainer-clean-sim maintainer-clean-sim
maybe-maintainer-clean-sim:
@if sim
maybe-maintainer-clean-sim: maintainer-clean-sim

maintainer-clean-sim: 
	@: $(MAKE); $(unstage)
	@[ -f ./sim/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in sim"; \
	(cd $(HOST_SUBDIR)/sim && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif sim



.PHONY: configure-texinfo maybe-configure-texinfo
maybe-configure-texinfo:
@if gcc-bootstrap
configure-texinfo: stage_current
@endif gcc-bootstrap
@if texinfo
maybe-configure-texinfo: configure-texinfo
configure-texinfo: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/texinfo/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/texinfo; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/texinfo; \
	cd "$(HOST_SUBDIR)/texinfo" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/texinfo/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=texinfo; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif texinfo





.PHONY: all-texinfo maybe-all-texinfo
maybe-all-texinfo:
@if gcc-bootstrap
all-texinfo: stage_current
@endif gcc-bootstrap
@if texinfo
TARGET-texinfo=all
maybe-all-texinfo: all-texinfo
all-texinfo: configure-texinfo
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/texinfo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-texinfo))
@endif texinfo




.PHONY: check-texinfo maybe-check-texinfo
maybe-check-texinfo:
@if texinfo
maybe-check-texinfo: check-texinfo

check-texinfo:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/texinfo && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif texinfo

.PHONY: install-texinfo maybe-install-texinfo
maybe-install-texinfo:
@if texinfo
maybe-install-texinfo: install-texinfo

install-texinfo:

@endif texinfo

.PHONY: install-strip-texinfo maybe-install-strip-texinfo
maybe-install-strip-texinfo:
@if texinfo
maybe-install-strip-texinfo: install-strip-texinfo

install-strip-texinfo:

@endif texinfo

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-texinfo info-texinfo
maybe-info-texinfo:
@if texinfo
maybe-info-texinfo: info-texinfo

info-texinfo: \
    configure-texinfo 
	@: $(MAKE); $(unstage)
	@[ -f ./texinfo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in texinfo"; \
	(cd $(HOST_SUBDIR)/texinfo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif texinfo

.PHONY: maybe-dvi-texinfo dvi-texinfo
maybe-dvi-texinfo:
@if texinfo
maybe-dvi-texinfo: dvi-texinfo

dvi-texinfo: \
    configure-texinfo 
	@: $(MAKE); $(unstage)
	@[ -f ./texinfo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in texinfo"; \
	(cd $(HOST_SUBDIR)/texinfo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif texinfo

.PHONY: maybe-pdf-texinfo pdf-texinfo
maybe-pdf-texinfo:
@if texinfo
maybe-pdf-texinfo: pdf-texinfo

pdf-texinfo: \
    configure-texinfo 
	@: $(MAKE); $(unstage)
	@[ -f ./texinfo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in texinfo"; \
	(cd $(HOST_SUBDIR)/texinfo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif texinfo

.PHONY: maybe-html-texinfo html-texinfo
maybe-html-texinfo:
@if texinfo
maybe-html-texinfo: html-texinfo

html-texinfo: \
    configure-texinfo 
	@: $(MAKE); $(unstage)
	@[ -f ./texinfo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in texinfo"; \
	(cd $(HOST_SUBDIR)/texinfo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif texinfo

.PHONY: maybe-TAGS-texinfo TAGS-texinfo
maybe-TAGS-texinfo:
@if texinfo
maybe-TAGS-texinfo: TAGS-texinfo

TAGS-texinfo: \
    configure-texinfo 
	@: $(MAKE); $(unstage)
	@[ -f ./texinfo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in texinfo"; \
	(cd $(HOST_SUBDIR)/texinfo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif texinfo

.PHONY: maybe-install-info-texinfo install-info-texinfo
maybe-install-info-texinfo:
@if texinfo
maybe-install-info-texinfo: install-info-texinfo

install-info-texinfo: \
    configure-texinfo \
    info-texinfo 
	@: $(MAKE); $(unstage)
	@[ -f ./texinfo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in texinfo"; \
	(cd $(HOST_SUBDIR)/texinfo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif texinfo

.PHONY: maybe-install-pdf-texinfo install-pdf-texinfo
maybe-install-pdf-texinfo:
@if texinfo
maybe-install-pdf-texinfo: install-pdf-texinfo

install-pdf-texinfo: \
    configure-texinfo \
    pdf-texinfo 
	@: $(MAKE); $(unstage)
	@[ -f ./texinfo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in texinfo"; \
	(cd $(HOST_SUBDIR)/texinfo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif texinfo

.PHONY: maybe-install-html-texinfo install-html-texinfo
maybe-install-html-texinfo:
@if texinfo
maybe-install-html-texinfo: install-html-texinfo

install-html-texinfo: \
    configure-texinfo \
    html-texinfo 
	@: $(MAKE); $(unstage)
	@[ -f ./texinfo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in texinfo"; \
	(cd $(HOST_SUBDIR)/texinfo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif texinfo

.PHONY: maybe-installcheck-texinfo installcheck-texinfo
maybe-installcheck-texinfo:
@if texinfo
maybe-installcheck-texinfo: installcheck-texinfo

installcheck-texinfo: \
    configure-texinfo 
	@: $(MAKE); $(unstage)
	@[ -f ./texinfo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in texinfo"; \
	(cd $(HOST_SUBDIR)/texinfo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif texinfo

.PHONY: maybe-mostlyclean-texinfo mostlyclean-texinfo
maybe-mostlyclean-texinfo:
@if texinfo
maybe-mostlyclean-texinfo: mostlyclean-texinfo

mostlyclean-texinfo: 
	@: $(MAKE); $(unstage)
	@[ -f ./texinfo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in texinfo"; \
	(cd $(HOST_SUBDIR)/texinfo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif texinfo

.PHONY: maybe-clean-texinfo clean-texinfo
maybe-clean-texinfo:
@if texinfo
maybe-clean-texinfo: clean-texinfo

clean-texinfo: 
	@: $(MAKE); $(unstage)
	@[ -f ./texinfo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in texinfo"; \
	(cd $(HOST_SUBDIR)/texinfo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif texinfo

.PHONY: maybe-distclean-texinfo distclean-texinfo
maybe-distclean-texinfo:
@if texinfo
maybe-distclean-texinfo: distclean-texinfo

distclean-texinfo: 
	@: $(MAKE); $(unstage)
	@[ -f ./texinfo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in texinfo"; \
	(cd $(HOST_SUBDIR)/texinfo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif texinfo

.PHONY: maybe-maintainer-clean-texinfo maintainer-clean-texinfo
maybe-maintainer-clean-texinfo:
@if texinfo
maybe-maintainer-clean-texinfo: maintainer-clean-texinfo

maintainer-clean-texinfo: 
	@: $(MAKE); $(unstage)
	@[ -f ./texinfo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in texinfo"; \
	(cd $(HOST_SUBDIR)/texinfo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif texinfo



.PHONY: configure-zlib maybe-configure-zlib
maybe-configure-zlib:
@if gcc-bootstrap
configure-zlib: stage_current
@endif gcc-bootstrap
@if zlib
maybe-configure-zlib: configure-zlib
configure-zlib: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/zlib; \
	cd "$(HOST_SUBDIR)/zlib" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/zlib/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=zlib; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} @extra_host_zlib_configure_flags@ \
	  || exit 1
@endif zlib



.PHONY: configure-stage1-zlib maybe-configure-stage1-zlib
maybe-configure-stage1-zlib:
@if zlib-bootstrap
maybe-configure-stage1-zlib: configure-stage1-zlib
configure-stage1-zlib:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib; \
	cd $(HOST_SUBDIR)/zlib || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/zlib/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=zlib; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS) \
	  @extra_host_zlib_configure_flags@
@endif zlib-bootstrap

.PHONY: configure-stage2-zlib maybe-configure-stage2-zlib
maybe-configure-stage2-zlib:
@if zlib-bootstrap
maybe-configure-stage2-zlib: configure-stage2-zlib
configure-stage2-zlib:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib; \
	cd $(HOST_SUBDIR)/zlib || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/zlib/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=zlib; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS) \
	  @extra_host_zlib_configure_flags@
@endif zlib-bootstrap

.PHONY: configure-stage3-zlib maybe-configure-stage3-zlib
maybe-configure-stage3-zlib:
@if zlib-bootstrap
maybe-configure-stage3-zlib: configure-stage3-zlib
configure-stage3-zlib:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib; \
	cd $(HOST_SUBDIR)/zlib || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/zlib/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=zlib; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS) \
	  @extra_host_zlib_configure_flags@
@endif zlib-bootstrap

.PHONY: configure-stage4-zlib maybe-configure-stage4-zlib
maybe-configure-stage4-zlib:
@if zlib-bootstrap
maybe-configure-stage4-zlib: configure-stage4-zlib
configure-stage4-zlib:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib; \
	cd $(HOST_SUBDIR)/zlib || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/zlib/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=zlib; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS) \
	  @extra_host_zlib_configure_flags@
@endif zlib-bootstrap

.PHONY: configure-stageprofile-zlib maybe-configure-stageprofile-zlib
maybe-configure-stageprofile-zlib:
@if zlib-bootstrap
maybe-configure-stageprofile-zlib: configure-stageprofile-zlib
configure-stageprofile-zlib:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib; \
	cd $(HOST_SUBDIR)/zlib || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/zlib/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=zlib; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS) \
	  @extra_host_zlib_configure_flags@
@endif zlib-bootstrap

.PHONY: configure-stagetrain-zlib maybe-configure-stagetrain-zlib
maybe-configure-stagetrain-zlib:
@if zlib-bootstrap
maybe-configure-stagetrain-zlib: configure-stagetrain-zlib
configure-stagetrain-zlib:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib; \
	cd $(HOST_SUBDIR)/zlib || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/zlib/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=zlib; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS) \
	  @extra_host_zlib_configure_flags@
@endif zlib-bootstrap

.PHONY: configure-stagefeedback-zlib maybe-configure-stagefeedback-zlib
maybe-configure-stagefeedback-zlib:
@if zlib-bootstrap
maybe-configure-stagefeedback-zlib: configure-stagefeedback-zlib
configure-stagefeedback-zlib:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib; \
	cd $(HOST_SUBDIR)/zlib || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/zlib/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=zlib; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS) \
	  @extra_host_zlib_configure_flags@
@endif zlib-bootstrap

.PHONY: configure-stageautoprofile-zlib maybe-configure-stageautoprofile-zlib
maybe-configure-stageautoprofile-zlib:
@if zlib-bootstrap
maybe-configure-stageautoprofile-zlib: configure-stageautoprofile-zlib
configure-stageautoprofile-zlib:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib; \
	cd $(HOST_SUBDIR)/zlib || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/zlib/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=zlib; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS) \
	  @extra_host_zlib_configure_flags@
@endif zlib-bootstrap

.PHONY: configure-stageautofeedback-zlib maybe-configure-stageautofeedback-zlib
maybe-configure-stageautofeedback-zlib:
@if zlib-bootstrap
maybe-configure-stageautofeedback-zlib: configure-stageautofeedback-zlib
configure-stageautofeedback-zlib:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/zlib/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/zlib; \
	cd $(HOST_SUBDIR)/zlib || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/zlib/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=zlib; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS) \
	  @extra_host_zlib_configure_flags@
@endif zlib-bootstrap





.PHONY: all-zlib maybe-all-zlib
maybe-all-zlib:
@if gcc-bootstrap
all-zlib: stage_current
@endif gcc-bootstrap
@if zlib
TARGET-zlib=all
maybe-all-zlib: all-zlib
all-zlib: configure-zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-zlib))
@endif zlib



.PHONY: all-stage1-zlib maybe-all-stage1-zlib
.PHONY: clean-stage1-zlib maybe-clean-stage1-zlib
maybe-all-stage1-zlib:
maybe-clean-stage1-zlib:
@if zlib-bootstrap
maybe-all-stage1-zlib: all-stage1-zlib
all-stage1: all-stage1-zlib
TARGET-stage1-zlib = $(TARGET-zlib)
all-stage1-zlib: configure-stage1-zlib
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/zlib && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-zlib)

maybe-clean-stage1-zlib: clean-stage1-zlib
clean-stage1: clean-stage1-zlib
clean-stage1-zlib:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-zlib/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS)  clean
@endif zlib-bootstrap


.PHONY: all-stage2-zlib maybe-all-stage2-zlib
.PHONY: clean-stage2-zlib maybe-clean-stage2-zlib
maybe-all-stage2-zlib:
maybe-clean-stage2-zlib:
@if zlib-bootstrap
maybe-all-stage2-zlib: all-stage2-zlib
all-stage2: all-stage2-zlib
TARGET-stage2-zlib = $(TARGET-zlib)
all-stage2-zlib: configure-stage2-zlib
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/zlib && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-zlib)

maybe-clean-stage2-zlib: clean-stage2-zlib
clean-stage2: clean-stage2-zlib
clean-stage2-zlib:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-zlib/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif zlib-bootstrap


.PHONY: all-stage3-zlib maybe-all-stage3-zlib
.PHONY: clean-stage3-zlib maybe-clean-stage3-zlib
maybe-all-stage3-zlib:
maybe-clean-stage3-zlib:
@if zlib-bootstrap
maybe-all-stage3-zlib: all-stage3-zlib
all-stage3: all-stage3-zlib
TARGET-stage3-zlib = $(TARGET-zlib)
all-stage3-zlib: configure-stage3-zlib
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/zlib && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-zlib)

maybe-clean-stage3-zlib: clean-stage3-zlib
clean-stage3: clean-stage3-zlib
clean-stage3-zlib:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-zlib/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif zlib-bootstrap


.PHONY: all-stage4-zlib maybe-all-stage4-zlib
.PHONY: clean-stage4-zlib maybe-clean-stage4-zlib
maybe-all-stage4-zlib:
maybe-clean-stage4-zlib:
@if zlib-bootstrap
maybe-all-stage4-zlib: all-stage4-zlib
all-stage4: all-stage4-zlib
TARGET-stage4-zlib = $(TARGET-zlib)
all-stage4-zlib: configure-stage4-zlib
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/zlib && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-zlib)

maybe-clean-stage4-zlib: clean-stage4-zlib
clean-stage4: clean-stage4-zlib
clean-stage4-zlib:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-zlib/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif zlib-bootstrap


.PHONY: all-stageprofile-zlib maybe-all-stageprofile-zlib
.PHONY: clean-stageprofile-zlib maybe-clean-stageprofile-zlib
maybe-all-stageprofile-zlib:
maybe-clean-stageprofile-zlib:
@if zlib-bootstrap
maybe-all-stageprofile-zlib: all-stageprofile-zlib
all-stageprofile: all-stageprofile-zlib
TARGET-stageprofile-zlib = $(TARGET-zlib)
all-stageprofile-zlib: configure-stageprofile-zlib
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/zlib && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-zlib)

maybe-clean-stageprofile-zlib: clean-stageprofile-zlib
clean-stageprofile: clean-stageprofile-zlib
clean-stageprofile-zlib:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-zlib/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif zlib-bootstrap


.PHONY: all-stagetrain-zlib maybe-all-stagetrain-zlib
.PHONY: clean-stagetrain-zlib maybe-clean-stagetrain-zlib
maybe-all-stagetrain-zlib:
maybe-clean-stagetrain-zlib:
@if zlib-bootstrap
maybe-all-stagetrain-zlib: all-stagetrain-zlib
all-stagetrain: all-stagetrain-zlib
TARGET-stagetrain-zlib = $(TARGET-zlib)
all-stagetrain-zlib: configure-stagetrain-zlib
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/zlib && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-zlib)

maybe-clean-stagetrain-zlib: clean-stagetrain-zlib
clean-stagetrain: clean-stagetrain-zlib
clean-stagetrain-zlib:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-zlib/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif zlib-bootstrap


.PHONY: all-stagefeedback-zlib maybe-all-stagefeedback-zlib
.PHONY: clean-stagefeedback-zlib maybe-clean-stagefeedback-zlib
maybe-all-stagefeedback-zlib:
maybe-clean-stagefeedback-zlib:
@if zlib-bootstrap
maybe-all-stagefeedback-zlib: all-stagefeedback-zlib
all-stagefeedback: all-stagefeedback-zlib
TARGET-stagefeedback-zlib = $(TARGET-zlib)
all-stagefeedback-zlib: configure-stagefeedback-zlib
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/zlib && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-zlib)

maybe-clean-stagefeedback-zlib: clean-stagefeedback-zlib
clean-stagefeedback: clean-stagefeedback-zlib
clean-stagefeedback-zlib:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-zlib/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif zlib-bootstrap


.PHONY: all-stageautoprofile-zlib maybe-all-stageautoprofile-zlib
.PHONY: clean-stageautoprofile-zlib maybe-clean-stageautoprofile-zlib
maybe-all-stageautoprofile-zlib:
maybe-clean-stageautoprofile-zlib:
@if zlib-bootstrap
maybe-all-stageautoprofile-zlib: all-stageautoprofile-zlib
all-stageautoprofile: all-stageautoprofile-zlib
TARGET-stageautoprofile-zlib = $(TARGET-zlib)
all-stageautoprofile-zlib: configure-stageautoprofile-zlib
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/zlib && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-zlib)

maybe-clean-stageautoprofile-zlib: clean-stageautoprofile-zlib
clean-stageautoprofile: clean-stageautoprofile-zlib
clean-stageautoprofile-zlib:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-zlib/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif zlib-bootstrap


.PHONY: all-stageautofeedback-zlib maybe-all-stageautofeedback-zlib
.PHONY: clean-stageautofeedback-zlib maybe-clean-stageautofeedback-zlib
maybe-all-stageautofeedback-zlib:
maybe-clean-stageautofeedback-zlib:
@if zlib-bootstrap
maybe-all-stageautofeedback-zlib: all-stageautofeedback-zlib
all-stageautofeedback: all-stageautofeedback-zlib
TARGET-stageautofeedback-zlib = $(TARGET-zlib)
all-stageautofeedback-zlib: configure-stageautofeedback-zlib
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/zlib && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-zlib)

maybe-clean-stageautofeedback-zlib: clean-stageautofeedback-zlib
clean-stageautofeedback: clean-stageautofeedback-zlib
clean-stageautofeedback-zlib:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-zlib/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS)  clean
@endif zlib-bootstrap





.PHONY: check-zlib maybe-check-zlib
maybe-check-zlib:
@if zlib
maybe-check-zlib: check-zlib

check-zlib:

@endif zlib

.PHONY: install-zlib maybe-install-zlib
maybe-install-zlib:
@if zlib
maybe-install-zlib: install-zlib

install-zlib:

@endif zlib

.PHONY: install-strip-zlib maybe-install-strip-zlib
maybe-install-strip-zlib:
@if zlib
maybe-install-strip-zlib: install-strip-zlib

install-strip-zlib:

@endif zlib

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-zlib info-zlib
maybe-info-zlib:
@if zlib
maybe-info-zlib: info-zlib

info-zlib: \
    configure-zlib 
	@[ -f ./zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in zlib"; \
	(cd $(HOST_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif zlib

.PHONY: maybe-dvi-zlib dvi-zlib
maybe-dvi-zlib:
@if zlib
maybe-dvi-zlib: dvi-zlib

dvi-zlib: \
    configure-zlib 
	@[ -f ./zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in zlib"; \
	(cd $(HOST_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif zlib

.PHONY: maybe-pdf-zlib pdf-zlib
maybe-pdf-zlib:
@if zlib
maybe-pdf-zlib: pdf-zlib

pdf-zlib: \
    configure-zlib 
	@[ -f ./zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in zlib"; \
	(cd $(HOST_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif zlib

.PHONY: maybe-html-zlib html-zlib
maybe-html-zlib:
@if zlib
maybe-html-zlib: html-zlib

html-zlib: \
    configure-zlib 
	@[ -f ./zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in zlib"; \
	(cd $(HOST_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif zlib

.PHONY: maybe-TAGS-zlib TAGS-zlib
maybe-TAGS-zlib:
@if zlib
maybe-TAGS-zlib: TAGS-zlib

TAGS-zlib: \
    configure-zlib 
	@[ -f ./zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in zlib"; \
	(cd $(HOST_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif zlib

.PHONY: maybe-install-info-zlib install-info-zlib
maybe-install-info-zlib:
@if zlib
maybe-install-info-zlib: install-info-zlib

install-info-zlib: \
    configure-zlib \
    info-zlib 
	@[ -f ./zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in zlib"; \
	(cd $(HOST_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif zlib

.PHONY: maybe-install-pdf-zlib install-pdf-zlib
maybe-install-pdf-zlib:
@if zlib
maybe-install-pdf-zlib: install-pdf-zlib

install-pdf-zlib: \
    configure-zlib \
    pdf-zlib 
	@[ -f ./zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in zlib"; \
	(cd $(HOST_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif zlib

.PHONY: maybe-install-html-zlib install-html-zlib
maybe-install-html-zlib:
@if zlib
maybe-install-html-zlib: install-html-zlib

install-html-zlib: \
    configure-zlib \
    html-zlib 
	@[ -f ./zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in zlib"; \
	(cd $(HOST_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif zlib

.PHONY: maybe-installcheck-zlib installcheck-zlib
maybe-installcheck-zlib:
@if zlib
maybe-installcheck-zlib: installcheck-zlib

installcheck-zlib: \
    configure-zlib 
	@[ -f ./zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in zlib"; \
	(cd $(HOST_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif zlib

.PHONY: maybe-mostlyclean-zlib mostlyclean-zlib
maybe-mostlyclean-zlib:
@if zlib
maybe-mostlyclean-zlib: mostlyclean-zlib

mostlyclean-zlib: 
	@[ -f ./zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in zlib"; \
	(cd $(HOST_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif zlib

.PHONY: maybe-clean-zlib clean-zlib
maybe-clean-zlib:
@if zlib
maybe-clean-zlib: clean-zlib

clean-zlib: 
	@[ -f ./zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in zlib"; \
	(cd $(HOST_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif zlib

.PHONY: maybe-distclean-zlib distclean-zlib
maybe-distclean-zlib:
@if zlib
maybe-distclean-zlib: distclean-zlib

distclean-zlib: 
	@[ -f ./zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in zlib"; \
	(cd $(HOST_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif zlib

.PHONY: maybe-maintainer-clean-zlib maintainer-clean-zlib
maybe-maintainer-clean-zlib:
@if zlib
maybe-maintainer-clean-zlib: maintainer-clean-zlib

maintainer-clean-zlib: 
	@[ -f ./zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in zlib"; \
	(cd $(HOST_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif zlib



.PHONY: configure-gdb maybe-configure-gdb
maybe-configure-gdb:
@if gcc-bootstrap
configure-gdb: stage_current
@endif gcc-bootstrap
@if gdb
maybe-configure-gdb: configure-gdb
configure-gdb: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/gdb/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gdb; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/gdb; \
	cd "$(HOST_SUBDIR)/gdb" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gdb/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gdb; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif gdb





.PHONY: all-gdb maybe-all-gdb
maybe-all-gdb:
@if gcc-bootstrap
all-gdb: stage_current
@endif gcc-bootstrap
@if gdb
TARGET-gdb=all
maybe-all-gdb: all-gdb
all-gdb: configure-gdb
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/gdb && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-gdb))
@endif gdb




.PHONY: check-gdb maybe-check-gdb
maybe-check-gdb:
@if gdb
maybe-check-gdb: check-gdb

check-gdb:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/gdb && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif gdb

.PHONY: install-gdb maybe-install-gdb
maybe-install-gdb:
@if gdb
maybe-install-gdb: install-gdb

install-gdb: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gdb && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif gdb

.PHONY: install-strip-gdb maybe-install-strip-gdb
maybe-install-strip-gdb:
@if gdb
maybe-install-strip-gdb: install-strip-gdb

install-strip-gdb: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gdb && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif gdb

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-gdb info-gdb
maybe-info-gdb:
@if gdb
maybe-info-gdb: info-gdb

info-gdb: \
    configure-gdb 
	@: $(MAKE); $(unstage)
	@[ -f ./gdb/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in gdb"; \
	(cd $(HOST_SUBDIR)/gdb && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif gdb

.PHONY: maybe-dvi-gdb dvi-gdb
maybe-dvi-gdb:
@if gdb
maybe-dvi-gdb: dvi-gdb

dvi-gdb: \
    configure-gdb 
	@: $(MAKE); $(unstage)
	@[ -f ./gdb/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in gdb"; \
	(cd $(HOST_SUBDIR)/gdb && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif gdb

.PHONY: maybe-pdf-gdb pdf-gdb
maybe-pdf-gdb:
@if gdb
maybe-pdf-gdb: pdf-gdb

pdf-gdb: \
    configure-gdb 
	@: $(MAKE); $(unstage)
	@[ -f ./gdb/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in gdb"; \
	(cd $(HOST_SUBDIR)/gdb && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif gdb

.PHONY: maybe-html-gdb html-gdb
maybe-html-gdb:
@if gdb
maybe-html-gdb: html-gdb

html-gdb: \
    configure-gdb 
	@: $(MAKE); $(unstage)
	@[ -f ./gdb/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in gdb"; \
	(cd $(HOST_SUBDIR)/gdb && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif gdb

.PHONY: maybe-TAGS-gdb TAGS-gdb
maybe-TAGS-gdb:
@if gdb
maybe-TAGS-gdb: TAGS-gdb

TAGS-gdb: \
    configure-gdb 
	@: $(MAKE); $(unstage)
	@[ -f ./gdb/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in gdb"; \
	(cd $(HOST_SUBDIR)/gdb && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif gdb

.PHONY: maybe-install-info-gdb install-info-gdb
maybe-install-info-gdb:
@if gdb
maybe-install-info-gdb: install-info-gdb

install-info-gdb: \
    configure-gdb \
    info-gdb 
	@: $(MAKE); $(unstage)
	@[ -f ./gdb/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in gdb"; \
	(cd $(HOST_SUBDIR)/gdb && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif gdb

.PHONY: maybe-install-pdf-gdb install-pdf-gdb
maybe-install-pdf-gdb:
@if gdb
maybe-install-pdf-gdb: install-pdf-gdb

install-pdf-gdb: \
    configure-gdb \
    pdf-gdb 
	@: $(MAKE); $(unstage)
	@[ -f ./gdb/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in gdb"; \
	(cd $(HOST_SUBDIR)/gdb && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif gdb

.PHONY: maybe-install-html-gdb install-html-gdb
maybe-install-html-gdb:
@if gdb
maybe-install-html-gdb: install-html-gdb

install-html-gdb: \
    configure-gdb \
    html-gdb 
	@: $(MAKE); $(unstage)
	@[ -f ./gdb/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in gdb"; \
	(cd $(HOST_SUBDIR)/gdb && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif gdb

.PHONY: maybe-installcheck-gdb installcheck-gdb
maybe-installcheck-gdb:
@if gdb
maybe-installcheck-gdb: installcheck-gdb

installcheck-gdb: \
    configure-gdb 
	@: $(MAKE); $(unstage)
	@[ -f ./gdb/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in gdb"; \
	(cd $(HOST_SUBDIR)/gdb && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif gdb

.PHONY: maybe-mostlyclean-gdb mostlyclean-gdb
maybe-mostlyclean-gdb:
@if gdb
maybe-mostlyclean-gdb: mostlyclean-gdb

mostlyclean-gdb: 
	@: $(MAKE); $(unstage)
	@[ -f ./gdb/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in gdb"; \
	(cd $(HOST_SUBDIR)/gdb && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif gdb

.PHONY: maybe-clean-gdb clean-gdb
maybe-clean-gdb:
@if gdb
maybe-clean-gdb: clean-gdb

clean-gdb: 
	@: $(MAKE); $(unstage)
	@[ -f ./gdb/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in gdb"; \
	(cd $(HOST_SUBDIR)/gdb && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif gdb

.PHONY: maybe-distclean-gdb distclean-gdb
maybe-distclean-gdb:
@if gdb
maybe-distclean-gdb: distclean-gdb

distclean-gdb: 
	@: $(MAKE); $(unstage)
	@[ -f ./gdb/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in gdb"; \
	(cd $(HOST_SUBDIR)/gdb && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif gdb

.PHONY: maybe-maintainer-clean-gdb maintainer-clean-gdb
maybe-maintainer-clean-gdb:
@if gdb
maybe-maintainer-clean-gdb: maintainer-clean-gdb

maintainer-clean-gdb: 
	@: $(MAKE); $(unstage)
	@[ -f ./gdb/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in gdb"; \
	(cd $(HOST_SUBDIR)/gdb && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif gdb



.PHONY: configure-expect maybe-configure-expect
maybe-configure-expect:
@if gcc-bootstrap
configure-expect: stage_current
@endif gcc-bootstrap
@if expect
maybe-configure-expect: configure-expect
configure-expect: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/expect/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/expect; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/expect; \
	cd "$(HOST_SUBDIR)/expect" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/expect/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=expect; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif expect





.PHONY: all-expect maybe-all-expect
maybe-all-expect:
@if gcc-bootstrap
all-expect: stage_current
@endif gcc-bootstrap
@if expect
TARGET-expect=all
maybe-all-expect: all-expect
all-expect: configure-expect
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/expect && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-expect))
@endif expect




.PHONY: check-expect maybe-check-expect
maybe-check-expect:
@if expect
maybe-check-expect: check-expect

check-expect:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/expect && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif expect

.PHONY: install-expect maybe-install-expect
maybe-install-expect:
@if expect
maybe-install-expect: install-expect

install-expect: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/expect && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif expect

.PHONY: install-strip-expect maybe-install-strip-expect
maybe-install-strip-expect:
@if expect
maybe-install-strip-expect: install-strip-expect

install-strip-expect: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/expect && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif expect

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-expect info-expect
maybe-info-expect:
@if expect
maybe-info-expect: info-expect

info-expect: \
    configure-expect 
	@: $(MAKE); $(unstage)
	@[ -f ./expect/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in expect"; \
	(cd $(HOST_SUBDIR)/expect && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif expect

.PHONY: maybe-dvi-expect dvi-expect
maybe-dvi-expect:
@if expect
maybe-dvi-expect: dvi-expect

dvi-expect: \
    configure-expect 
	@: $(MAKE); $(unstage)
	@[ -f ./expect/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in expect"; \
	(cd $(HOST_SUBDIR)/expect && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif expect

.PHONY: maybe-pdf-expect pdf-expect
maybe-pdf-expect:
@if expect
maybe-pdf-expect: pdf-expect

pdf-expect: \
    configure-expect 
	@: $(MAKE); $(unstage)
	@[ -f ./expect/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in expect"; \
	(cd $(HOST_SUBDIR)/expect && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif expect

.PHONY: maybe-html-expect html-expect
maybe-html-expect:
@if expect
maybe-html-expect: html-expect

html-expect: \
    configure-expect 
	@: $(MAKE); $(unstage)
	@[ -f ./expect/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in expect"; \
	(cd $(HOST_SUBDIR)/expect && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif expect

.PHONY: maybe-TAGS-expect TAGS-expect
maybe-TAGS-expect:
@if expect
maybe-TAGS-expect: TAGS-expect

TAGS-expect: \
    configure-expect 
	@: $(MAKE); $(unstage)
	@[ -f ./expect/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in expect"; \
	(cd $(HOST_SUBDIR)/expect && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif expect

.PHONY: maybe-install-info-expect install-info-expect
maybe-install-info-expect:
@if expect
maybe-install-info-expect: install-info-expect

install-info-expect: \
    configure-expect \
    info-expect 
	@: $(MAKE); $(unstage)
	@[ -f ./expect/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in expect"; \
	(cd $(HOST_SUBDIR)/expect && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif expect

.PHONY: maybe-install-pdf-expect install-pdf-expect
maybe-install-pdf-expect:
@if expect
maybe-install-pdf-expect: install-pdf-expect

install-pdf-expect: \
    configure-expect \
    pdf-expect 
	@: $(MAKE); $(unstage)
	@[ -f ./expect/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in expect"; \
	(cd $(HOST_SUBDIR)/expect && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif expect

.PHONY: maybe-install-html-expect install-html-expect
maybe-install-html-expect:
@if expect
maybe-install-html-expect: install-html-expect

install-html-expect: \
    configure-expect \
    html-expect 
	@: $(MAKE); $(unstage)
	@[ -f ./expect/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in expect"; \
	(cd $(HOST_SUBDIR)/expect && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif expect

.PHONY: maybe-installcheck-expect installcheck-expect
maybe-installcheck-expect:
@if expect
maybe-installcheck-expect: installcheck-expect

installcheck-expect: \
    configure-expect 
	@: $(MAKE); $(unstage)
	@[ -f ./expect/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in expect"; \
	(cd $(HOST_SUBDIR)/expect && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif expect

.PHONY: maybe-mostlyclean-expect mostlyclean-expect
maybe-mostlyclean-expect:
@if expect
maybe-mostlyclean-expect: mostlyclean-expect

mostlyclean-expect: 
	@: $(MAKE); $(unstage)
	@[ -f ./expect/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in expect"; \
	(cd $(HOST_SUBDIR)/expect && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif expect

.PHONY: maybe-clean-expect clean-expect
maybe-clean-expect:
@if expect
maybe-clean-expect: clean-expect

clean-expect: 
	@: $(MAKE); $(unstage)
	@[ -f ./expect/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in expect"; \
	(cd $(HOST_SUBDIR)/expect && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif expect

.PHONY: maybe-distclean-expect distclean-expect
maybe-distclean-expect:
@if expect
maybe-distclean-expect: distclean-expect

distclean-expect: 
	@: $(MAKE); $(unstage)
	@[ -f ./expect/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in expect"; \
	(cd $(HOST_SUBDIR)/expect && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif expect

.PHONY: maybe-maintainer-clean-expect maintainer-clean-expect
maybe-maintainer-clean-expect:
@if expect
maybe-maintainer-clean-expect: maintainer-clean-expect

maintainer-clean-expect: 
	@: $(MAKE); $(unstage)
	@[ -f ./expect/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in expect"; \
	(cd $(HOST_SUBDIR)/expect && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif expect



.PHONY: configure-guile maybe-configure-guile
maybe-configure-guile:
@if gcc-bootstrap
configure-guile: stage_current
@endif gcc-bootstrap
@if guile
maybe-configure-guile: configure-guile
configure-guile: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/guile/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/guile; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/guile; \
	cd "$(HOST_SUBDIR)/guile" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/guile/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=guile; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif guile





.PHONY: all-guile maybe-all-guile
maybe-all-guile:
@if gcc-bootstrap
all-guile: stage_current
@endif gcc-bootstrap
@if guile
TARGET-guile=all
maybe-all-guile: all-guile
all-guile: configure-guile
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/guile && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-guile))
@endif guile




.PHONY: check-guile maybe-check-guile
maybe-check-guile:
@if guile
maybe-check-guile: check-guile

check-guile:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/guile && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif guile

.PHONY: install-guile maybe-install-guile
maybe-install-guile:
@if guile
maybe-install-guile: install-guile

install-guile: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/guile && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif guile

.PHONY: install-strip-guile maybe-install-strip-guile
maybe-install-strip-guile:
@if guile
maybe-install-strip-guile: install-strip-guile

install-strip-guile: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/guile && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif guile

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-guile info-guile
maybe-info-guile:
@if guile
maybe-info-guile: info-guile

info-guile: \
    configure-guile 
	@: $(MAKE); $(unstage)
	@[ -f ./guile/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in guile"; \
	(cd $(HOST_SUBDIR)/guile && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif guile

.PHONY: maybe-dvi-guile dvi-guile
maybe-dvi-guile:
@if guile
maybe-dvi-guile: dvi-guile

dvi-guile: \
    configure-guile 
	@: $(MAKE); $(unstage)
	@[ -f ./guile/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in guile"; \
	(cd $(HOST_SUBDIR)/guile && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif guile

.PHONY: maybe-pdf-guile pdf-guile
maybe-pdf-guile:
@if guile
maybe-pdf-guile: pdf-guile

pdf-guile: \
    configure-guile 
	@: $(MAKE); $(unstage)
	@[ -f ./guile/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in guile"; \
	(cd $(HOST_SUBDIR)/guile && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif guile

.PHONY: maybe-html-guile html-guile
maybe-html-guile:
@if guile
maybe-html-guile: html-guile

html-guile: \
    configure-guile 
	@: $(MAKE); $(unstage)
	@[ -f ./guile/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in guile"; \
	(cd $(HOST_SUBDIR)/guile && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif guile

.PHONY: maybe-TAGS-guile TAGS-guile
maybe-TAGS-guile:
@if guile
maybe-TAGS-guile: TAGS-guile

TAGS-guile: \
    configure-guile 
	@: $(MAKE); $(unstage)
	@[ -f ./guile/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in guile"; \
	(cd $(HOST_SUBDIR)/guile && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif guile

.PHONY: maybe-install-info-guile install-info-guile
maybe-install-info-guile:
@if guile
maybe-install-info-guile: install-info-guile

install-info-guile: \
    configure-guile \
    info-guile 
	@: $(MAKE); $(unstage)
	@[ -f ./guile/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in guile"; \
	(cd $(HOST_SUBDIR)/guile && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif guile

.PHONY: maybe-install-pdf-guile install-pdf-guile
maybe-install-pdf-guile:
@if guile
maybe-install-pdf-guile: install-pdf-guile

install-pdf-guile: \
    configure-guile \
    pdf-guile 
	@: $(MAKE); $(unstage)
	@[ -f ./guile/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in guile"; \
	(cd $(HOST_SUBDIR)/guile && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif guile

.PHONY: maybe-install-html-guile install-html-guile
maybe-install-html-guile:
@if guile
maybe-install-html-guile: install-html-guile

install-html-guile: \
    configure-guile \
    html-guile 
	@: $(MAKE); $(unstage)
	@[ -f ./guile/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in guile"; \
	(cd $(HOST_SUBDIR)/guile && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif guile

.PHONY: maybe-installcheck-guile installcheck-guile
maybe-installcheck-guile:
@if guile
maybe-installcheck-guile: installcheck-guile

installcheck-guile: \
    configure-guile 
	@: $(MAKE); $(unstage)
	@[ -f ./guile/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in guile"; \
	(cd $(HOST_SUBDIR)/guile && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif guile

.PHONY: maybe-mostlyclean-guile mostlyclean-guile
maybe-mostlyclean-guile:
@if guile
maybe-mostlyclean-guile: mostlyclean-guile

mostlyclean-guile: 
	@: $(MAKE); $(unstage)
	@[ -f ./guile/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in guile"; \
	(cd $(HOST_SUBDIR)/guile && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif guile

.PHONY: maybe-clean-guile clean-guile
maybe-clean-guile:
@if guile
maybe-clean-guile: clean-guile

clean-guile: 
	@: $(MAKE); $(unstage)
	@[ -f ./guile/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in guile"; \
	(cd $(HOST_SUBDIR)/guile && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif guile

.PHONY: maybe-distclean-guile distclean-guile
maybe-distclean-guile:
@if guile
maybe-distclean-guile: distclean-guile

distclean-guile: 
	@: $(MAKE); $(unstage)
	@[ -f ./guile/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in guile"; \
	(cd $(HOST_SUBDIR)/guile && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif guile

.PHONY: maybe-maintainer-clean-guile maintainer-clean-guile
maybe-maintainer-clean-guile:
@if guile
maybe-maintainer-clean-guile: maintainer-clean-guile

maintainer-clean-guile: 
	@: $(MAKE); $(unstage)
	@[ -f ./guile/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in guile"; \
	(cd $(HOST_SUBDIR)/guile && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif guile



.PHONY: configure-tk maybe-configure-tk
maybe-configure-tk:
@if gcc-bootstrap
configure-tk: stage_current
@endif gcc-bootstrap
@if tk
maybe-configure-tk: configure-tk
configure-tk: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/tk/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/tk; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/tk; \
	cd "$(HOST_SUBDIR)/tk" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/tk/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=tk; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif tk





.PHONY: all-tk maybe-all-tk
maybe-all-tk:
@if gcc-bootstrap
all-tk: stage_current
@endif gcc-bootstrap
@if tk
TARGET-tk=all
maybe-all-tk: all-tk
all-tk: configure-tk
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/tk && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-tk))
@endif tk




.PHONY: check-tk maybe-check-tk
maybe-check-tk:
@if tk
maybe-check-tk: check-tk

check-tk:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/tk && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif tk

.PHONY: install-tk maybe-install-tk
maybe-install-tk:
@if tk
maybe-install-tk: install-tk

install-tk: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/tk && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif tk

.PHONY: install-strip-tk maybe-install-strip-tk
maybe-install-strip-tk:
@if tk
maybe-install-strip-tk: install-strip-tk

install-strip-tk: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/tk && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif tk

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-tk info-tk
maybe-info-tk:
@if tk
maybe-info-tk: info-tk

info-tk: \
    configure-tk 
	@: $(MAKE); $(unstage)
	@[ -f ./tk/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in tk"; \
	(cd $(HOST_SUBDIR)/tk && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif tk

.PHONY: maybe-dvi-tk dvi-tk
maybe-dvi-tk:
@if tk
maybe-dvi-tk: dvi-tk

dvi-tk: \
    configure-tk 
	@: $(MAKE); $(unstage)
	@[ -f ./tk/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in tk"; \
	(cd $(HOST_SUBDIR)/tk && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif tk

.PHONY: maybe-pdf-tk pdf-tk
maybe-pdf-tk:
@if tk
maybe-pdf-tk: pdf-tk

pdf-tk: \
    configure-tk 
	@: $(MAKE); $(unstage)
	@[ -f ./tk/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in tk"; \
	(cd $(HOST_SUBDIR)/tk && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif tk

.PHONY: maybe-html-tk html-tk
maybe-html-tk:
@if tk
maybe-html-tk: html-tk

html-tk: \
    configure-tk 
	@: $(MAKE); $(unstage)
	@[ -f ./tk/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in tk"; \
	(cd $(HOST_SUBDIR)/tk && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif tk

.PHONY: maybe-TAGS-tk TAGS-tk
maybe-TAGS-tk:
@if tk
maybe-TAGS-tk: TAGS-tk

TAGS-tk: \
    configure-tk 
	@: $(MAKE); $(unstage)
	@[ -f ./tk/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in tk"; \
	(cd $(HOST_SUBDIR)/tk && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif tk

.PHONY: maybe-install-info-tk install-info-tk
maybe-install-info-tk:
@if tk
maybe-install-info-tk: install-info-tk

install-info-tk: \
    configure-tk \
    info-tk 
	@: $(MAKE); $(unstage)
	@[ -f ./tk/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in tk"; \
	(cd $(HOST_SUBDIR)/tk && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif tk

.PHONY: maybe-install-pdf-tk install-pdf-tk
maybe-install-pdf-tk:
@if tk
maybe-install-pdf-tk: install-pdf-tk

install-pdf-tk: \
    configure-tk \
    pdf-tk 
	@: $(MAKE); $(unstage)
	@[ -f ./tk/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in tk"; \
	(cd $(HOST_SUBDIR)/tk && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif tk

.PHONY: maybe-install-html-tk install-html-tk
maybe-install-html-tk:
@if tk
maybe-install-html-tk: install-html-tk

install-html-tk: \
    configure-tk \
    html-tk 
	@: $(MAKE); $(unstage)
	@[ -f ./tk/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in tk"; \
	(cd $(HOST_SUBDIR)/tk && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif tk

.PHONY: maybe-installcheck-tk installcheck-tk
maybe-installcheck-tk:
@if tk
maybe-installcheck-tk: installcheck-tk

installcheck-tk: \
    configure-tk 
	@: $(MAKE); $(unstage)
	@[ -f ./tk/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in tk"; \
	(cd $(HOST_SUBDIR)/tk && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif tk

.PHONY: maybe-mostlyclean-tk mostlyclean-tk
maybe-mostlyclean-tk:
@if tk
maybe-mostlyclean-tk: mostlyclean-tk

mostlyclean-tk: 
	@: $(MAKE); $(unstage)
	@[ -f ./tk/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in tk"; \
	(cd $(HOST_SUBDIR)/tk && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif tk

.PHONY: maybe-clean-tk clean-tk
maybe-clean-tk:
@if tk
maybe-clean-tk: clean-tk

clean-tk: 
	@: $(MAKE); $(unstage)
	@[ -f ./tk/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in tk"; \
	(cd $(HOST_SUBDIR)/tk && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif tk

.PHONY: maybe-distclean-tk distclean-tk
maybe-distclean-tk:
@if tk
maybe-distclean-tk: distclean-tk

distclean-tk: 
	@: $(MAKE); $(unstage)
	@[ -f ./tk/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in tk"; \
	(cd $(HOST_SUBDIR)/tk && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif tk

.PHONY: maybe-maintainer-clean-tk maintainer-clean-tk
maybe-maintainer-clean-tk:
@if tk
maybe-maintainer-clean-tk: maintainer-clean-tk

maintainer-clean-tk: 
	@: $(MAKE); $(unstage)
	@[ -f ./tk/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in tk"; \
	(cd $(HOST_SUBDIR)/tk && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif tk



.PHONY: configure-libtermcap maybe-configure-libtermcap
maybe-configure-libtermcap:
@if gcc-bootstrap
configure-libtermcap: stage_current
@endif gcc-bootstrap
@if libtermcap
maybe-configure-libtermcap: configure-libtermcap
configure-libtermcap: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/libtermcap/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libtermcap; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/libtermcap; \
	cd "$(HOST_SUBDIR)/libtermcap" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libtermcap/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libtermcap; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif libtermcap





.PHONY: all-libtermcap maybe-all-libtermcap
maybe-all-libtermcap:
@if gcc-bootstrap
all-libtermcap: stage_current
@endif gcc-bootstrap
@if libtermcap
TARGET-libtermcap=all
maybe-all-libtermcap: all-libtermcap
all-libtermcap: configure-libtermcap
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-libtermcap))
@endif libtermcap




.PHONY: check-libtermcap maybe-check-libtermcap
maybe-check-libtermcap:
@if libtermcap
maybe-check-libtermcap: check-libtermcap

check-libtermcap:

@endif libtermcap

.PHONY: install-libtermcap maybe-install-libtermcap
maybe-install-libtermcap:
@if libtermcap
maybe-install-libtermcap: install-libtermcap

install-libtermcap: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libtermcap && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif libtermcap

.PHONY: install-strip-libtermcap maybe-install-strip-libtermcap
maybe-install-strip-libtermcap:
@if libtermcap
maybe-install-strip-libtermcap: install-strip-libtermcap

install-strip-libtermcap: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libtermcap && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif libtermcap

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-libtermcap info-libtermcap
maybe-info-libtermcap:
@if libtermcap
maybe-info-libtermcap: info-libtermcap

info-libtermcap: \
    configure-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f ./libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in libtermcap"; \
	(cd $(HOST_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif libtermcap

.PHONY: maybe-dvi-libtermcap dvi-libtermcap
maybe-dvi-libtermcap:
@if libtermcap
maybe-dvi-libtermcap: dvi-libtermcap

dvi-libtermcap: \
    configure-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f ./libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in libtermcap"; \
	(cd $(HOST_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif libtermcap

.PHONY: maybe-pdf-libtermcap pdf-libtermcap
maybe-pdf-libtermcap:
@if libtermcap
maybe-pdf-libtermcap: pdf-libtermcap

pdf-libtermcap: \
    configure-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f ./libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in libtermcap"; \
	(cd $(HOST_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif libtermcap

.PHONY: maybe-html-libtermcap html-libtermcap
maybe-html-libtermcap:
@if libtermcap
maybe-html-libtermcap: html-libtermcap

html-libtermcap: \
    configure-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f ./libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in libtermcap"; \
	(cd $(HOST_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif libtermcap

.PHONY: maybe-TAGS-libtermcap TAGS-libtermcap
maybe-TAGS-libtermcap:
@if libtermcap
maybe-TAGS-libtermcap: TAGS-libtermcap

TAGS-libtermcap: \
    configure-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f ./libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in libtermcap"; \
	(cd $(HOST_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif libtermcap

.PHONY: maybe-install-info-libtermcap install-info-libtermcap
maybe-install-info-libtermcap:
@if libtermcap
maybe-install-info-libtermcap: install-info-libtermcap

install-info-libtermcap: \
    configure-libtermcap \
    info-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f ./libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in libtermcap"; \
	(cd $(HOST_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif libtermcap

.PHONY: maybe-install-pdf-libtermcap install-pdf-libtermcap
maybe-install-pdf-libtermcap:
@if libtermcap
maybe-install-pdf-libtermcap: install-pdf-libtermcap

install-pdf-libtermcap: \
    configure-libtermcap \
    pdf-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f ./libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in libtermcap"; \
	(cd $(HOST_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif libtermcap

.PHONY: maybe-install-html-libtermcap install-html-libtermcap
maybe-install-html-libtermcap:
@if libtermcap
maybe-install-html-libtermcap: install-html-libtermcap

install-html-libtermcap: \
    configure-libtermcap \
    html-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f ./libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in libtermcap"; \
	(cd $(HOST_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif libtermcap

.PHONY: maybe-installcheck-libtermcap installcheck-libtermcap
maybe-installcheck-libtermcap:
@if libtermcap
maybe-installcheck-libtermcap: installcheck-libtermcap

installcheck-libtermcap: \
    configure-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f ./libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in libtermcap"; \
	(cd $(HOST_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif libtermcap

.PHONY: maybe-mostlyclean-libtermcap mostlyclean-libtermcap
maybe-mostlyclean-libtermcap:
@if libtermcap
maybe-mostlyclean-libtermcap: mostlyclean-libtermcap

# libtermcap doesn't support mostlyclean.
mostlyclean-libtermcap:

@endif libtermcap

.PHONY: maybe-clean-libtermcap clean-libtermcap
maybe-clean-libtermcap:
@if libtermcap
maybe-clean-libtermcap: clean-libtermcap

# libtermcap doesn't support clean.
clean-libtermcap:

@endif libtermcap

.PHONY: maybe-distclean-libtermcap distclean-libtermcap
maybe-distclean-libtermcap:
@if libtermcap
maybe-distclean-libtermcap: distclean-libtermcap

# libtermcap doesn't support distclean.
distclean-libtermcap:

@endif libtermcap

.PHONY: maybe-maintainer-clean-libtermcap maintainer-clean-libtermcap
maybe-maintainer-clean-libtermcap:
@if libtermcap
maybe-maintainer-clean-libtermcap: maintainer-clean-libtermcap

# libtermcap doesn't support maintainer-clean.
maintainer-clean-libtermcap:

@endif libtermcap



.PHONY: configure-utils maybe-configure-utils
maybe-configure-utils:
@if gcc-bootstrap
configure-utils: stage_current
@endif gcc-bootstrap
@if utils
maybe-configure-utils: configure-utils
configure-utils: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/utils/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/utils; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/utils; \
	cd "$(HOST_SUBDIR)/utils" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/utils/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=utils; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif utils





.PHONY: all-utils maybe-all-utils
maybe-all-utils:
@if gcc-bootstrap
all-utils: stage_current
@endif gcc-bootstrap
@if utils
TARGET-utils=all
maybe-all-utils: all-utils
all-utils: configure-utils
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/utils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-utils))
@endif utils




.PHONY: check-utils maybe-check-utils
maybe-check-utils:
@if utils
maybe-check-utils: check-utils

check-utils:

@endif utils

.PHONY: install-utils maybe-install-utils
maybe-install-utils:
@if utils
maybe-install-utils: install-utils

install-utils: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/utils && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif utils

.PHONY: install-strip-utils maybe-install-strip-utils
maybe-install-strip-utils:
@if utils
maybe-install-strip-utils: install-strip-utils

install-strip-utils: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/utils && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif utils

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-utils info-utils
maybe-info-utils:
@if utils
maybe-info-utils: info-utils

info-utils: \
    configure-utils 
	@: $(MAKE); $(unstage)
	@[ -f ./utils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in utils"; \
	(cd $(HOST_SUBDIR)/utils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif utils

.PHONY: maybe-dvi-utils dvi-utils
maybe-dvi-utils:
@if utils
maybe-dvi-utils: dvi-utils

dvi-utils: \
    configure-utils 
	@: $(MAKE); $(unstage)
	@[ -f ./utils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in utils"; \
	(cd $(HOST_SUBDIR)/utils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif utils

.PHONY: maybe-pdf-utils pdf-utils
maybe-pdf-utils:
@if utils
maybe-pdf-utils: pdf-utils

pdf-utils: \
    configure-utils 
	@: $(MAKE); $(unstage)
	@[ -f ./utils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in utils"; \
	(cd $(HOST_SUBDIR)/utils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif utils

.PHONY: maybe-html-utils html-utils
maybe-html-utils:
@if utils
maybe-html-utils: html-utils

html-utils: \
    configure-utils 
	@: $(MAKE); $(unstage)
	@[ -f ./utils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in utils"; \
	(cd $(HOST_SUBDIR)/utils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif utils

.PHONY: maybe-TAGS-utils TAGS-utils
maybe-TAGS-utils:
@if utils
maybe-TAGS-utils: TAGS-utils

TAGS-utils: \
    configure-utils 
	@: $(MAKE); $(unstage)
	@[ -f ./utils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in utils"; \
	(cd $(HOST_SUBDIR)/utils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif utils

.PHONY: maybe-install-info-utils install-info-utils
maybe-install-info-utils:
@if utils
maybe-install-info-utils: install-info-utils

install-info-utils: \
    configure-utils \
    info-utils 
	@: $(MAKE); $(unstage)
	@[ -f ./utils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in utils"; \
	(cd $(HOST_SUBDIR)/utils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif utils

.PHONY: maybe-install-pdf-utils install-pdf-utils
maybe-install-pdf-utils:
@if utils
maybe-install-pdf-utils: install-pdf-utils

install-pdf-utils: \
    configure-utils \
    pdf-utils 
	@: $(MAKE); $(unstage)
	@[ -f ./utils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in utils"; \
	(cd $(HOST_SUBDIR)/utils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif utils

.PHONY: maybe-install-html-utils install-html-utils
maybe-install-html-utils:
@if utils
maybe-install-html-utils: install-html-utils

install-html-utils: \
    configure-utils \
    html-utils 
	@: $(MAKE); $(unstage)
	@[ -f ./utils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in utils"; \
	(cd $(HOST_SUBDIR)/utils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif utils

.PHONY: maybe-installcheck-utils installcheck-utils
maybe-installcheck-utils:
@if utils
maybe-installcheck-utils: installcheck-utils

installcheck-utils: \
    configure-utils 
	@: $(MAKE); $(unstage)
	@[ -f ./utils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in utils"; \
	(cd $(HOST_SUBDIR)/utils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif utils

.PHONY: maybe-mostlyclean-utils mostlyclean-utils
maybe-mostlyclean-utils:
@if utils
maybe-mostlyclean-utils: mostlyclean-utils

mostlyclean-utils: 
	@: $(MAKE); $(unstage)
	@[ -f ./utils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in utils"; \
	(cd $(HOST_SUBDIR)/utils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif utils

.PHONY: maybe-clean-utils clean-utils
maybe-clean-utils:
@if utils
maybe-clean-utils: clean-utils

clean-utils: 
	@: $(MAKE); $(unstage)
	@[ -f ./utils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in utils"; \
	(cd $(HOST_SUBDIR)/utils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif utils

.PHONY: maybe-distclean-utils distclean-utils
maybe-distclean-utils:
@if utils
maybe-distclean-utils: distclean-utils

distclean-utils: 
	@: $(MAKE); $(unstage)
	@[ -f ./utils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in utils"; \
	(cd $(HOST_SUBDIR)/utils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif utils

.PHONY: maybe-maintainer-clean-utils maintainer-clean-utils
maybe-maintainer-clean-utils:
@if utils
maybe-maintainer-clean-utils: maintainer-clean-utils

maintainer-clean-utils: 
	@: $(MAKE); $(unstage)
	@[ -f ./utils/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in utils"; \
	(cd $(HOST_SUBDIR)/utils && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif utils



.PHONY: configure-gnattools maybe-configure-gnattools
maybe-configure-gnattools:
@if gcc-bootstrap
configure-gnattools: stage_current
@endif gcc-bootstrap
@if gnattools
maybe-configure-gnattools: configure-gnattools
configure-gnattools: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/gnattools/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gnattools; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/gnattools; \
	cd "$(HOST_SUBDIR)/gnattools" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gnattools/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gnattools; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif gnattools





.PHONY: all-gnattools maybe-all-gnattools
maybe-all-gnattools:
@if gcc-bootstrap
all-gnattools: stage_current
@endif gcc-bootstrap
@if gnattools
TARGET-gnattools=all
maybe-all-gnattools: all-gnattools
all-gnattools: configure-gnattools
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/gnattools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-gnattools))
@endif gnattools




.PHONY: check-gnattools maybe-check-gnattools
maybe-check-gnattools:
@if gnattools
maybe-check-gnattools: check-gnattools

check-gnattools:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/gnattools && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif gnattools

.PHONY: install-gnattools maybe-install-gnattools
maybe-install-gnattools:
@if gnattools
maybe-install-gnattools: install-gnattools

install-gnattools: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gnattools && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif gnattools

.PHONY: install-strip-gnattools maybe-install-strip-gnattools
maybe-install-strip-gnattools:
@if gnattools
maybe-install-strip-gnattools: install-strip-gnattools

install-strip-gnattools: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gnattools && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif gnattools

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-gnattools info-gnattools
maybe-info-gnattools:
@if gnattools
maybe-info-gnattools: info-gnattools

info-gnattools: \
    configure-gnattools 
	@: $(MAKE); $(unstage)
	@[ -f ./gnattools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in gnattools"; \
	(cd $(HOST_SUBDIR)/gnattools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif gnattools

.PHONY: maybe-dvi-gnattools dvi-gnattools
maybe-dvi-gnattools:
@if gnattools
maybe-dvi-gnattools: dvi-gnattools

dvi-gnattools: \
    configure-gnattools 
	@: $(MAKE); $(unstage)
	@[ -f ./gnattools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in gnattools"; \
	(cd $(HOST_SUBDIR)/gnattools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif gnattools

.PHONY: maybe-pdf-gnattools pdf-gnattools
maybe-pdf-gnattools:
@if gnattools
maybe-pdf-gnattools: pdf-gnattools

pdf-gnattools: \
    configure-gnattools 
	@: $(MAKE); $(unstage)
	@[ -f ./gnattools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in gnattools"; \
	(cd $(HOST_SUBDIR)/gnattools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif gnattools

.PHONY: maybe-html-gnattools html-gnattools
maybe-html-gnattools:
@if gnattools
maybe-html-gnattools: html-gnattools

html-gnattools: \
    configure-gnattools 
	@: $(MAKE); $(unstage)
	@[ -f ./gnattools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in gnattools"; \
	(cd $(HOST_SUBDIR)/gnattools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif gnattools

.PHONY: maybe-TAGS-gnattools TAGS-gnattools
maybe-TAGS-gnattools:
@if gnattools
maybe-TAGS-gnattools: TAGS-gnattools

TAGS-gnattools: \
    configure-gnattools 
	@: $(MAKE); $(unstage)
	@[ -f ./gnattools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in gnattools"; \
	(cd $(HOST_SUBDIR)/gnattools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif gnattools

.PHONY: maybe-install-info-gnattools install-info-gnattools
maybe-install-info-gnattools:
@if gnattools
maybe-install-info-gnattools: install-info-gnattools

install-info-gnattools: \
    configure-gnattools \
    info-gnattools 
	@: $(MAKE); $(unstage)
	@[ -f ./gnattools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in gnattools"; \
	(cd $(HOST_SUBDIR)/gnattools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif gnattools

.PHONY: maybe-install-pdf-gnattools install-pdf-gnattools
maybe-install-pdf-gnattools:
@if gnattools
maybe-install-pdf-gnattools: install-pdf-gnattools

install-pdf-gnattools: \
    configure-gnattools \
    pdf-gnattools 
	@: $(MAKE); $(unstage)
	@[ -f ./gnattools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in gnattools"; \
	(cd $(HOST_SUBDIR)/gnattools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif gnattools

.PHONY: maybe-install-html-gnattools install-html-gnattools
maybe-install-html-gnattools:
@if gnattools
maybe-install-html-gnattools: install-html-gnattools

install-html-gnattools: \
    configure-gnattools \
    html-gnattools 
	@: $(MAKE); $(unstage)
	@[ -f ./gnattools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in gnattools"; \
	(cd $(HOST_SUBDIR)/gnattools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif gnattools

.PHONY: maybe-installcheck-gnattools installcheck-gnattools
maybe-installcheck-gnattools:
@if gnattools
maybe-installcheck-gnattools: installcheck-gnattools

installcheck-gnattools: \
    configure-gnattools 
	@: $(MAKE); $(unstage)
	@[ -f ./gnattools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in gnattools"; \
	(cd $(HOST_SUBDIR)/gnattools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif gnattools

.PHONY: maybe-mostlyclean-gnattools mostlyclean-gnattools
maybe-mostlyclean-gnattools:
@if gnattools
maybe-mostlyclean-gnattools: mostlyclean-gnattools

mostlyclean-gnattools: 
	@: $(MAKE); $(unstage)
	@[ -f ./gnattools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in gnattools"; \
	(cd $(HOST_SUBDIR)/gnattools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif gnattools

.PHONY: maybe-clean-gnattools clean-gnattools
maybe-clean-gnattools:
@if gnattools
maybe-clean-gnattools: clean-gnattools

clean-gnattools: 
	@: $(MAKE); $(unstage)
	@[ -f ./gnattools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in gnattools"; \
	(cd $(HOST_SUBDIR)/gnattools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif gnattools

.PHONY: maybe-distclean-gnattools distclean-gnattools
maybe-distclean-gnattools:
@if gnattools
maybe-distclean-gnattools: distclean-gnattools

distclean-gnattools: 
	@: $(MAKE); $(unstage)
	@[ -f ./gnattools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in gnattools"; \
	(cd $(HOST_SUBDIR)/gnattools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif gnattools

.PHONY: maybe-maintainer-clean-gnattools maintainer-clean-gnattools
maybe-maintainer-clean-gnattools:
@if gnattools
maybe-maintainer-clean-gnattools: maintainer-clean-gnattools

maintainer-clean-gnattools: 
	@: $(MAKE); $(unstage)
	@[ -f ./gnattools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in gnattools"; \
	(cd $(HOST_SUBDIR)/gnattools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif gnattools



.PHONY: configure-lto-plugin maybe-configure-lto-plugin
maybe-configure-lto-plugin:
@if gcc-bootstrap
configure-lto-plugin: stage_current
@endif gcc-bootstrap
@if lto-plugin
maybe-configure-lto-plugin: configure-lto-plugin
configure-lto-plugin: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/lto-plugin/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/lto-plugin; \
	cd "$(HOST_SUBDIR)/lto-plugin" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/lto-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=lto-plugin; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} --enable-shared @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@ \
	  || exit 1
@endif lto-plugin



.PHONY: configure-stage1-lto-plugin maybe-configure-stage1-lto-plugin
maybe-configure-stage1-lto-plugin:
@if lto-plugin-bootstrap
maybe-configure-stage1-lto-plugin: configure-stage1-lto-plugin
configure-stage1-lto-plugin:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/lto-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	CFLAGS="$(STAGE1_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE1_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(HOST_SUBDIR)/lto-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin; \
	cd $(HOST_SUBDIR)/lto-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/lto-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=lto-plugin; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS) \
	  --enable-shared @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif lto-plugin-bootstrap

.PHONY: configure-stage2-lto-plugin maybe-configure-stage2-lto-plugin
maybe-configure-stage2-lto-plugin:
@if lto-plugin-bootstrap
maybe-configure-stage2-lto-plugin: configure-stage2-lto-plugin
configure-stage2-lto-plugin:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/lto-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE2_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE2_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE2_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(HOST_SUBDIR)/lto-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin; \
	cd $(HOST_SUBDIR)/lto-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/lto-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=lto-plugin; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS) \
	  --enable-shared @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif lto-plugin-bootstrap

.PHONY: configure-stage3-lto-plugin maybe-configure-stage3-lto-plugin
maybe-configure-stage3-lto-plugin:
@if lto-plugin-bootstrap
maybe-configure-stage3-lto-plugin: configure-stage3-lto-plugin
configure-stage3-lto-plugin:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/lto-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE3_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE3_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE3_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(HOST_SUBDIR)/lto-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin; \
	cd $(HOST_SUBDIR)/lto-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/lto-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=lto-plugin; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS) \
	  --enable-shared @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif lto-plugin-bootstrap

.PHONY: configure-stage4-lto-plugin maybe-configure-stage4-lto-plugin
maybe-configure-stage4-lto-plugin:
@if lto-plugin-bootstrap
maybe-configure-stage4-lto-plugin: configure-stage4-lto-plugin
configure-stage4-lto-plugin:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/lto-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGE4_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGE4_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGE4_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(HOST_SUBDIR)/lto-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin; \
	cd $(HOST_SUBDIR)/lto-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/lto-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=lto-plugin; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS) \
	  --enable-shared @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif lto-plugin-bootstrap

.PHONY: configure-stageprofile-lto-plugin maybe-configure-stageprofile-lto-plugin
maybe-configure-stageprofile-lto-plugin:
@if lto-plugin-bootstrap
maybe-configure-stageprofile-lto-plugin: configure-stageprofile-lto-plugin
configure-stageprofile-lto-plugin:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/lto-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(HOST_SUBDIR)/lto-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin; \
	cd $(HOST_SUBDIR)/lto-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/lto-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=lto-plugin; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS) \
	  --enable-shared @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif lto-plugin-bootstrap

.PHONY: configure-stagetrain-lto-plugin maybe-configure-stagetrain-lto-plugin
maybe-configure-stagetrain-lto-plugin:
@if lto-plugin-bootstrap
maybe-configure-stagetrain-lto-plugin: configure-stagetrain-lto-plugin
configure-stagetrain-lto-plugin:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/lto-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEtrain_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEtrain_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEtrain_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(HOST_SUBDIR)/lto-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin; \
	cd $(HOST_SUBDIR)/lto-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/lto-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=lto-plugin; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS) \
	  --enable-shared @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif lto-plugin-bootstrap

.PHONY: configure-stagefeedback-lto-plugin maybe-configure-stagefeedback-lto-plugin
maybe-configure-stagefeedback-lto-plugin:
@if lto-plugin-bootstrap
maybe-configure-stagefeedback-lto-plugin: configure-stagefeedback-lto-plugin
configure-stagefeedback-lto-plugin:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/lto-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEfeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEfeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEfeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(HOST_SUBDIR)/lto-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin; \
	cd $(HOST_SUBDIR)/lto-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/lto-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=lto-plugin; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS) \
	  --enable-shared @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif lto-plugin-bootstrap

.PHONY: configure-stageautoprofile-lto-plugin maybe-configure-stageautoprofile-lto-plugin
maybe-configure-stageautoprofile-lto-plugin:
@if lto-plugin-bootstrap
maybe-configure-stageautoprofile-lto-plugin: configure-stageautoprofile-lto-plugin
configure-stageautoprofile-lto-plugin:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/lto-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautoprofile_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautoprofile_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(HOST_SUBDIR)/lto-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin; \
	cd $(HOST_SUBDIR)/lto-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/lto-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=lto-plugin; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS) \
	  --enable-shared @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif lto-plugin-bootstrap

.PHONY: configure-stageautofeedback-lto-plugin maybe-configure-stageautofeedback-lto-plugin
maybe-configure-stageautofeedback-lto-plugin:
@if lto-plugin-bootstrap
maybe-configure-stageautofeedback-lto-plugin: configure-stageautofeedback-lto-plugin
configure-stageautofeedback-lto-plugin:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/lto-plugin/Makefile || exit 0; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS) \
	CFLAGS="$(STAGEautofeedback_CFLAGS)"; export CFLAGS; \
	CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)"; export CXXFLAGS; \
	LIBCFLAGS="$(STAGEautofeedback_CFLAGS)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(HOST_SUBDIR)/lto-plugin; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/lto-plugin; \
	cd $(HOST_SUBDIR)/lto-plugin || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/lto-plugin/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=lto-plugin; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS) \
	  --enable-shared @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@
@endif lto-plugin-bootstrap





.PHONY: all-lto-plugin maybe-all-lto-plugin
maybe-all-lto-plugin:
@if gcc-bootstrap
all-lto-plugin: stage_current
@endif gcc-bootstrap
@if lto-plugin
TARGET-lto-plugin=all
maybe-all-lto-plugin: all-lto-plugin
all-lto-plugin: configure-lto-plugin
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/lto-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		$(TARGET-lto-plugin))
@endif lto-plugin



.PHONY: all-stage1-lto-plugin maybe-all-stage1-lto-plugin
.PHONY: clean-stage1-lto-plugin maybe-clean-stage1-lto-plugin
maybe-all-stage1-lto-plugin:
maybe-clean-stage1-lto-plugin:
@if lto-plugin-bootstrap
maybe-all-stage1-lto-plugin: all-stage1-lto-plugin
all-stage1: all-stage1-lto-plugin
TARGET-stage1-lto-plugin = $(TARGET-lto-plugin)
all-stage1-lto-plugin: configure-stage1-lto-plugin
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/lto-plugin && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE1_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE1_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE1_CXXFLAGS)" \
		LIBCFLAGS="$(LIBCFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS)  \
		$(STAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-lto-plugin)

maybe-clean-stage1-lto-plugin: clean-stage1-lto-plugin
clean-stage1: clean-stage1-lto-plugin
clean-stage1-lto-plugin:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(HOST_SUBDIR)/lto-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage1-lto-plugin/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(HOST_SUBDIR)/lto-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS)  \
	$(STAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif lto-plugin-bootstrap


.PHONY: all-stage2-lto-plugin maybe-all-stage2-lto-plugin
.PHONY: clean-stage2-lto-plugin maybe-clean-stage2-lto-plugin
maybe-all-stage2-lto-plugin:
maybe-clean-stage2-lto-plugin:
@if lto-plugin-bootstrap
maybe-all-stage2-lto-plugin: all-stage2-lto-plugin
all-stage2: all-stage2-lto-plugin
TARGET-stage2-lto-plugin = $(TARGET-lto-plugin)
all-stage2-lto-plugin: configure-stage2-lto-plugin
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/lto-plugin && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE2_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE2_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE2_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE2_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-lto-plugin)

maybe-clean-stage2-lto-plugin: clean-stage2-lto-plugin
clean-stage2: clean-stage2-lto-plugin
clean-stage2-lto-plugin:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(HOST_SUBDIR)/lto-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage2-lto-plugin/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(HOST_SUBDIR)/lto-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif lto-plugin-bootstrap


.PHONY: all-stage3-lto-plugin maybe-all-stage3-lto-plugin
.PHONY: clean-stage3-lto-plugin maybe-clean-stage3-lto-plugin
maybe-all-stage3-lto-plugin:
maybe-clean-stage3-lto-plugin:
@if lto-plugin-bootstrap
maybe-all-stage3-lto-plugin: all-stage3-lto-plugin
all-stage3: all-stage3-lto-plugin
TARGET-stage3-lto-plugin = $(TARGET-lto-plugin)
all-stage3-lto-plugin: configure-stage3-lto-plugin
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/lto-plugin && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE3_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE3_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE3_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE3_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-lto-plugin)

maybe-clean-stage3-lto-plugin: clean-stage3-lto-plugin
clean-stage3: clean-stage3-lto-plugin
clean-stage3-lto-plugin:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(HOST_SUBDIR)/lto-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage3-lto-plugin/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(HOST_SUBDIR)/lto-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif lto-plugin-bootstrap


.PHONY: all-stage4-lto-plugin maybe-all-stage4-lto-plugin
.PHONY: clean-stage4-lto-plugin maybe-clean-stage4-lto-plugin
maybe-all-stage4-lto-plugin:
maybe-clean-stage4-lto-plugin:
@if lto-plugin-bootstrap
maybe-all-stage4-lto-plugin: all-stage4-lto-plugin
all-stage4: all-stage4-lto-plugin
TARGET-stage4-lto-plugin = $(TARGET-lto-plugin)
all-stage4-lto-plugin: configure-stage4-lto-plugin
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/lto-plugin && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGE4_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGE4_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGE4_CXXFLAGS)" \
		LIBCFLAGS="$(STAGE4_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-lto-plugin)

maybe-clean-stage4-lto-plugin: clean-stage4-lto-plugin
clean-stage4: clean-stage4-lto-plugin
clean-stage4-lto-plugin:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(HOST_SUBDIR)/lto-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stage4-lto-plugin/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(HOST_SUBDIR)/lto-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif lto-plugin-bootstrap


.PHONY: all-stageprofile-lto-plugin maybe-all-stageprofile-lto-plugin
.PHONY: clean-stageprofile-lto-plugin maybe-clean-stageprofile-lto-plugin
maybe-all-stageprofile-lto-plugin:
maybe-clean-stageprofile-lto-plugin:
@if lto-plugin-bootstrap
maybe-all-stageprofile-lto-plugin: all-stageprofile-lto-plugin
all-stageprofile: all-stageprofile-lto-plugin
TARGET-stageprofile-lto-plugin = $(TARGET-lto-plugin)
all-stageprofile-lto-plugin: configure-stageprofile-lto-plugin
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/lto-plugin && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-lto-plugin)

maybe-clean-stageprofile-lto-plugin: clean-stageprofile-lto-plugin
clean-stageprofile: clean-stageprofile-lto-plugin
clean-stageprofile-lto-plugin:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(HOST_SUBDIR)/lto-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageprofile-lto-plugin/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/lto-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif lto-plugin-bootstrap


.PHONY: all-stagetrain-lto-plugin maybe-all-stagetrain-lto-plugin
.PHONY: clean-stagetrain-lto-plugin maybe-clean-stagetrain-lto-plugin
maybe-all-stagetrain-lto-plugin:
maybe-clean-stagetrain-lto-plugin:
@if lto-plugin-bootstrap
maybe-all-stagetrain-lto-plugin: all-stagetrain-lto-plugin
all-stagetrain: all-stagetrain-lto-plugin
TARGET-stagetrain-lto-plugin = $(TARGET-lto-plugin)
all-stagetrain-lto-plugin: configure-stagetrain-lto-plugin
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/lto-plugin && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEtrain_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEtrain_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEtrain_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEtrain_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-lto-plugin)

maybe-clean-stagetrain-lto-plugin: clean-stagetrain-lto-plugin
clean-stagetrain: clean-stagetrain-lto-plugin
clean-stagetrain-lto-plugin:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(HOST_SUBDIR)/lto-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagetrain-lto-plugin/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(HOST_SUBDIR)/lto-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif lto-plugin-bootstrap


.PHONY: all-stagefeedback-lto-plugin maybe-all-stagefeedback-lto-plugin
.PHONY: clean-stagefeedback-lto-plugin maybe-clean-stagefeedback-lto-plugin
maybe-all-stagefeedback-lto-plugin:
maybe-clean-stagefeedback-lto-plugin:
@if lto-plugin-bootstrap
maybe-all-stagefeedback-lto-plugin: all-stagefeedback-lto-plugin
all-stagefeedback: all-stagefeedback-lto-plugin
TARGET-stagefeedback-lto-plugin = $(TARGET-lto-plugin)
all-stagefeedback-lto-plugin: configure-stagefeedback-lto-plugin
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/lto-plugin && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEfeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEfeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEfeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEfeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-lto-plugin)

maybe-clean-stagefeedback-lto-plugin: clean-stagefeedback-lto-plugin
clean-stagefeedback: clean-stagefeedback-lto-plugin
clean-stagefeedback-lto-plugin:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(HOST_SUBDIR)/lto-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stagefeedback-lto-plugin/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/lto-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif lto-plugin-bootstrap


.PHONY: all-stageautoprofile-lto-plugin maybe-all-stageautoprofile-lto-plugin
.PHONY: clean-stageautoprofile-lto-plugin maybe-clean-stageautoprofile-lto-plugin
maybe-all-stageautoprofile-lto-plugin:
maybe-clean-stageautoprofile-lto-plugin:
@if lto-plugin-bootstrap
maybe-all-stageautoprofile-lto-plugin: all-stageautoprofile-lto-plugin
all-stageautoprofile: all-stageautoprofile-lto-plugin
TARGET-stageautoprofile-lto-plugin = $(TARGET-lto-plugin)
all-stageautoprofile-lto-plugin: configure-stageautoprofile-lto-plugin
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/lto-plugin && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautoprofile_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautoprofile_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautoprofile_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautoprofile_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-lto-plugin)

maybe-clean-stageautoprofile-lto-plugin: clean-stageautoprofile-lto-plugin
clean-stageautoprofile: clean-stageautoprofile-lto-plugin
clean-stageautoprofile-lto-plugin:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(HOST_SUBDIR)/lto-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautoprofile-lto-plugin/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(HOST_SUBDIR)/lto-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif lto-plugin-bootstrap


.PHONY: all-stageautofeedback-lto-plugin maybe-all-stageautofeedback-lto-plugin
.PHONY: clean-stageautofeedback-lto-plugin maybe-clean-stageautofeedback-lto-plugin
maybe-all-stageautofeedback-lto-plugin:
maybe-clean-stageautofeedback-lto-plugin:
@if lto-plugin-bootstrap
maybe-all-stageautofeedback-lto-plugin: all-stageautofeedback-lto-plugin
all-stageautofeedback: all-stageautofeedback-lto-plugin
TARGET-stageautofeedback-lto-plugin = $(TARGET-lto-plugin)
all-stageautofeedback-lto-plugin: configure-stageautofeedback-lto-plugin
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(HOST_EXPORTS) \
	$(POSTSTAGE1_HOST_EXPORTS)  \
	cd $(HOST_SUBDIR)/lto-plugin && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(STAGEautofeedback_CFLAGS)" \
		GENERATOR_CFLAGS="$(STAGEautofeedback_GENERATOR_CFLAGS)" \
		CXXFLAGS="$(STAGEautofeedback_CXXFLAGS)" \
		LIBCFLAGS="$(STAGEautofeedback_CFLAGS)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-lto-plugin)

maybe-clean-stageautofeedback-lto-plugin: clean-stageautofeedback-lto-plugin
clean-stageautofeedback: clean-stageautofeedback-lto-plugin
clean-stageautofeedback-lto-plugin:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(HOST_SUBDIR)/lto-plugin/Makefile ] || exit 0; \
	else \
	  [ -f $(HOST_SUBDIR)/stageautofeedback-lto-plugin/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(HOST_SUBDIR)/lto-plugin && \
	$(MAKE) $(EXTRA_HOST_FLAGS) $(POSTSTAGE1_FLAGS_TO_PASS) @extra_linker_plugin_flags@ clean
@endif lto-plugin-bootstrap





.PHONY: check-lto-plugin maybe-check-lto-plugin
maybe-check-lto-plugin:
@if lto-plugin
maybe-check-lto-plugin: check-lto-plugin

check-lto-plugin:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/lto-plugin && \
	  $(MAKE) $(FLAGS_TO_PASS) @extra_linker_plugin_flags@ $(EXTRA_BOOTSTRAP_FLAGS) check)

@endif lto-plugin

.PHONY: install-lto-plugin maybe-install-lto-plugin
maybe-install-lto-plugin:
@if lto-plugin
maybe-install-lto-plugin: install-lto-plugin

install-lto-plugin: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/lto-plugin && \
	  $(MAKE) $(FLAGS_TO_PASS) @extra_linker_plugin_flags@ install)

@endif lto-plugin

.PHONY: install-strip-lto-plugin maybe-install-strip-lto-plugin
maybe-install-strip-lto-plugin:
@if lto-plugin
maybe-install-strip-lto-plugin: install-strip-lto-plugin

install-strip-lto-plugin: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/lto-plugin && \
	  $(MAKE) $(FLAGS_TO_PASS) @extra_linker_plugin_flags@ install-strip)

@endif lto-plugin

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-lto-plugin info-lto-plugin
maybe-info-lto-plugin:
@if lto-plugin
maybe-info-lto-plugin: info-lto-plugin

info-lto-plugin: \
    configure-lto-plugin 
	@[ -f ./lto-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in lto-plugin"; \
	(cd $(HOST_SUBDIR)/lto-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif lto-plugin

.PHONY: maybe-dvi-lto-plugin dvi-lto-plugin
maybe-dvi-lto-plugin:
@if lto-plugin
maybe-dvi-lto-plugin: dvi-lto-plugin

dvi-lto-plugin: \
    configure-lto-plugin 
	@[ -f ./lto-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in lto-plugin"; \
	(cd $(HOST_SUBDIR)/lto-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif lto-plugin

.PHONY: maybe-pdf-lto-plugin pdf-lto-plugin
maybe-pdf-lto-plugin:
@if lto-plugin
maybe-pdf-lto-plugin: pdf-lto-plugin

pdf-lto-plugin: \
    configure-lto-plugin 
	@[ -f ./lto-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in lto-plugin"; \
	(cd $(HOST_SUBDIR)/lto-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif lto-plugin

.PHONY: maybe-html-lto-plugin html-lto-plugin
maybe-html-lto-plugin:
@if lto-plugin
maybe-html-lto-plugin: html-lto-plugin

html-lto-plugin: \
    configure-lto-plugin 
	@[ -f ./lto-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in lto-plugin"; \
	(cd $(HOST_SUBDIR)/lto-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif lto-plugin

.PHONY: maybe-TAGS-lto-plugin TAGS-lto-plugin
maybe-TAGS-lto-plugin:
@if lto-plugin
maybe-TAGS-lto-plugin: TAGS-lto-plugin

TAGS-lto-plugin: \
    configure-lto-plugin 
	@[ -f ./lto-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in lto-plugin"; \
	(cd $(HOST_SUBDIR)/lto-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif lto-plugin

.PHONY: maybe-install-info-lto-plugin install-info-lto-plugin
maybe-install-info-lto-plugin:
@if lto-plugin
maybe-install-info-lto-plugin: install-info-lto-plugin

install-info-lto-plugin: \
    configure-lto-plugin \
    info-lto-plugin 
	@[ -f ./lto-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in lto-plugin"; \
	(cd $(HOST_SUBDIR)/lto-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif lto-plugin

.PHONY: maybe-install-pdf-lto-plugin install-pdf-lto-plugin
maybe-install-pdf-lto-plugin:
@if lto-plugin
maybe-install-pdf-lto-plugin: install-pdf-lto-plugin

install-pdf-lto-plugin: \
    configure-lto-plugin \
    pdf-lto-plugin 
	@[ -f ./lto-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in lto-plugin"; \
	(cd $(HOST_SUBDIR)/lto-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif lto-plugin

.PHONY: maybe-install-html-lto-plugin install-html-lto-plugin
maybe-install-html-lto-plugin:
@if lto-plugin
maybe-install-html-lto-plugin: install-html-lto-plugin

install-html-lto-plugin: \
    configure-lto-plugin \
    html-lto-plugin 
	@[ -f ./lto-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in lto-plugin"; \
	(cd $(HOST_SUBDIR)/lto-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif lto-plugin

.PHONY: maybe-installcheck-lto-plugin installcheck-lto-plugin
maybe-installcheck-lto-plugin:
@if lto-plugin
maybe-installcheck-lto-plugin: installcheck-lto-plugin

installcheck-lto-plugin: \
    configure-lto-plugin 
	@[ -f ./lto-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in lto-plugin"; \
	(cd $(HOST_SUBDIR)/lto-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif lto-plugin

.PHONY: maybe-mostlyclean-lto-plugin mostlyclean-lto-plugin
maybe-mostlyclean-lto-plugin:
@if lto-plugin
maybe-mostlyclean-lto-plugin: mostlyclean-lto-plugin

mostlyclean-lto-plugin: 
	@[ -f ./lto-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in lto-plugin"; \
	(cd $(HOST_SUBDIR)/lto-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif lto-plugin

.PHONY: maybe-clean-lto-plugin clean-lto-plugin
maybe-clean-lto-plugin:
@if lto-plugin
maybe-clean-lto-plugin: clean-lto-plugin

clean-lto-plugin: 
	@[ -f ./lto-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in lto-plugin"; \
	(cd $(HOST_SUBDIR)/lto-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif lto-plugin

.PHONY: maybe-distclean-lto-plugin distclean-lto-plugin
maybe-distclean-lto-plugin:
@if lto-plugin
maybe-distclean-lto-plugin: distclean-lto-plugin

distclean-lto-plugin: 
	@[ -f ./lto-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in lto-plugin"; \
	(cd $(HOST_SUBDIR)/lto-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif lto-plugin

.PHONY: maybe-maintainer-clean-lto-plugin maintainer-clean-lto-plugin
maybe-maintainer-clean-lto-plugin:
@if lto-plugin
maybe-maintainer-clean-lto-plugin: maintainer-clean-lto-plugin

maintainer-clean-lto-plugin: 
	@[ -f ./lto-plugin/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) @extra_linker_plugin_flags@; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in lto-plugin"; \
	(cd $(HOST_SUBDIR)/lto-plugin && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif lto-plugin



.PHONY: configure-libcc1 maybe-configure-libcc1
maybe-configure-libcc1:
@if gcc-bootstrap
configure-libcc1: stage_current
@endif gcc-bootstrap
@if libcc1
maybe-configure-libcc1: configure-libcc1
configure-libcc1: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/libcc1/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcc1; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/libcc1; \
	cd "$(HOST_SUBDIR)/libcc1" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcc1/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcc1; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} --enable-shared \
	  || exit 1
@endif libcc1





.PHONY: all-libcc1 maybe-all-libcc1
maybe-all-libcc1:
@if gcc-bootstrap
all-libcc1: stage_current
@endif gcc-bootstrap
@if libcc1
TARGET-libcc1=all
maybe-all-libcc1: all-libcc1
all-libcc1: configure-libcc1
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/libcc1 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-libcc1))
@endif libcc1




.PHONY: check-libcc1 maybe-check-libcc1
maybe-check-libcc1:
@if libcc1
maybe-check-libcc1: check-libcc1

check-libcc1:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/libcc1 && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif libcc1

.PHONY: install-libcc1 maybe-install-libcc1
maybe-install-libcc1:
@if libcc1
maybe-install-libcc1: install-libcc1

install-libcc1: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libcc1 && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif libcc1

.PHONY: install-strip-libcc1 maybe-install-strip-libcc1
maybe-install-strip-libcc1:
@if libcc1
maybe-install-strip-libcc1: install-strip-libcc1

install-strip-libcc1: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/libcc1 && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif libcc1

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-libcc1 info-libcc1
maybe-info-libcc1:
@if libcc1
maybe-info-libcc1: info-libcc1

info-libcc1: \
    configure-libcc1 
	@: $(MAKE); $(unstage)
	@[ -f ./libcc1/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in libcc1"; \
	(cd $(HOST_SUBDIR)/libcc1 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif libcc1

.PHONY: maybe-dvi-libcc1 dvi-libcc1
maybe-dvi-libcc1:
@if libcc1
maybe-dvi-libcc1: dvi-libcc1

dvi-libcc1: \
    configure-libcc1 
	@: $(MAKE); $(unstage)
	@[ -f ./libcc1/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in libcc1"; \
	(cd $(HOST_SUBDIR)/libcc1 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif libcc1

.PHONY: maybe-pdf-libcc1 pdf-libcc1
maybe-pdf-libcc1:
@if libcc1
maybe-pdf-libcc1: pdf-libcc1

pdf-libcc1: \
    configure-libcc1 
	@: $(MAKE); $(unstage)
	@[ -f ./libcc1/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in libcc1"; \
	(cd $(HOST_SUBDIR)/libcc1 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif libcc1

.PHONY: maybe-html-libcc1 html-libcc1
maybe-html-libcc1:
@if libcc1
maybe-html-libcc1: html-libcc1

html-libcc1: \
    configure-libcc1 
	@: $(MAKE); $(unstage)
	@[ -f ./libcc1/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in libcc1"; \
	(cd $(HOST_SUBDIR)/libcc1 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif libcc1

.PHONY: maybe-TAGS-libcc1 TAGS-libcc1
maybe-TAGS-libcc1:
@if libcc1
maybe-TAGS-libcc1: TAGS-libcc1

TAGS-libcc1: \
    configure-libcc1 
	@: $(MAKE); $(unstage)
	@[ -f ./libcc1/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in libcc1"; \
	(cd $(HOST_SUBDIR)/libcc1 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif libcc1

.PHONY: maybe-install-info-libcc1 install-info-libcc1
maybe-install-info-libcc1:
@if libcc1
maybe-install-info-libcc1: install-info-libcc1

install-info-libcc1: \
    configure-libcc1 \
    info-libcc1 
	@: $(MAKE); $(unstage)
	@[ -f ./libcc1/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in libcc1"; \
	(cd $(HOST_SUBDIR)/libcc1 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif libcc1

.PHONY: maybe-install-pdf-libcc1 install-pdf-libcc1
maybe-install-pdf-libcc1:
@if libcc1
maybe-install-pdf-libcc1: install-pdf-libcc1

install-pdf-libcc1: \
    configure-libcc1 \
    pdf-libcc1 
	@: $(MAKE); $(unstage)
	@[ -f ./libcc1/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in libcc1"; \
	(cd $(HOST_SUBDIR)/libcc1 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif libcc1

.PHONY: maybe-install-html-libcc1 install-html-libcc1
maybe-install-html-libcc1:
@if libcc1
maybe-install-html-libcc1: install-html-libcc1

install-html-libcc1: \
    configure-libcc1 \
    html-libcc1 
	@: $(MAKE); $(unstage)
	@[ -f ./libcc1/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in libcc1"; \
	(cd $(HOST_SUBDIR)/libcc1 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif libcc1

.PHONY: maybe-installcheck-libcc1 installcheck-libcc1
maybe-installcheck-libcc1:
@if libcc1
maybe-installcheck-libcc1: installcheck-libcc1

installcheck-libcc1: \
    configure-libcc1 
	@: $(MAKE); $(unstage)
	@[ -f ./libcc1/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in libcc1"; \
	(cd $(HOST_SUBDIR)/libcc1 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif libcc1

.PHONY: maybe-mostlyclean-libcc1 mostlyclean-libcc1
maybe-mostlyclean-libcc1:
@if libcc1
maybe-mostlyclean-libcc1: mostlyclean-libcc1

mostlyclean-libcc1: 
	@: $(MAKE); $(unstage)
	@[ -f ./libcc1/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in libcc1"; \
	(cd $(HOST_SUBDIR)/libcc1 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif libcc1

.PHONY: maybe-clean-libcc1 clean-libcc1
maybe-clean-libcc1:
@if libcc1
maybe-clean-libcc1: clean-libcc1

clean-libcc1: 
	@: $(MAKE); $(unstage)
	@[ -f ./libcc1/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in libcc1"; \
	(cd $(HOST_SUBDIR)/libcc1 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif libcc1

.PHONY: maybe-distclean-libcc1 distclean-libcc1
maybe-distclean-libcc1:
@if libcc1
maybe-distclean-libcc1: distclean-libcc1

distclean-libcc1: 
	@: $(MAKE); $(unstage)
	@[ -f ./libcc1/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in libcc1"; \
	(cd $(HOST_SUBDIR)/libcc1 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif libcc1

.PHONY: maybe-maintainer-clean-libcc1 maintainer-clean-libcc1
maybe-maintainer-clean-libcc1:
@if libcc1
maybe-maintainer-clean-libcc1: maintainer-clean-libcc1

maintainer-clean-libcc1: 
	@: $(MAKE); $(unstage)
	@[ -f ./libcc1/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in libcc1"; \
	(cd $(HOST_SUBDIR)/libcc1 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif libcc1



.PHONY: configure-gotools maybe-configure-gotools
maybe-configure-gotools:
@if gcc-bootstrap
configure-gotools: stage_current
@endif gcc-bootstrap
@if gotools
maybe-configure-gotools: configure-gotools
configure-gotools: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	test ! -f $(HOST_SUBDIR)/gotools/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/gotools; \
	$(HOST_EXPORTS)  \
	echo Configuring in $(HOST_SUBDIR)/gotools; \
	cd "$(HOST_SUBDIR)/gotools" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/gotools/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=gotools; \
	$(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif gotools





.PHONY: all-gotools maybe-all-gotools
maybe-all-gotools:
@if gcc-bootstrap
all-gotools: stage_current
@endif gcc-bootstrap
@if gotools
TARGET-gotools=all
maybe-all-gotools: all-gotools
all-gotools: configure-gotools
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/gotools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(STAGE1_FLAGS_TO_PASS)  \
		$(TARGET-gotools))
@endif gotools




.PHONY: check-gotools maybe-check-gotools
maybe-check-gotools:
@if gotools
maybe-check-gotools: check-gotools

check-gotools:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS)  \
	(cd $(HOST_SUBDIR)/gotools && \
	  $(MAKE) $(FLAGS_TO_PASS)  check)

@endif gotools

.PHONY: install-gotools maybe-install-gotools
maybe-install-gotools:
@if gotools
maybe-install-gotools: install-gotools

install-gotools: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gotools && \
	  $(MAKE) $(FLAGS_TO_PASS)  install)

@endif gotools

.PHONY: install-strip-gotools maybe-install-strip-gotools
maybe-install-strip-gotools:
@if gotools
maybe-install-strip-gotools: install-strip-gotools

install-strip-gotools: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd $(HOST_SUBDIR)/gotools && \
	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)

@endif gotools

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-gotools info-gotools
maybe-info-gotools:
@if gotools
maybe-info-gotools: info-gotools

info-gotools: \
    configure-gotools 
	@: $(MAKE); $(unstage)
	@[ -f ./gotools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing info in gotools"; \
	(cd $(HOST_SUBDIR)/gotools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          info) \
	  || exit 1

@endif gotools

.PHONY: maybe-dvi-gotools dvi-gotools
maybe-dvi-gotools:
@if gotools
maybe-dvi-gotools: dvi-gotools

dvi-gotools: \
    configure-gotools 
	@: $(MAKE); $(unstage)
	@[ -f ./gotools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing dvi in gotools"; \
	(cd $(HOST_SUBDIR)/gotools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          dvi) \
	  || exit 1

@endif gotools

.PHONY: maybe-pdf-gotools pdf-gotools
maybe-pdf-gotools:
@if gotools
maybe-pdf-gotools: pdf-gotools

pdf-gotools: \
    configure-gotools 
	@: $(MAKE); $(unstage)
	@[ -f ./gotools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing pdf in gotools"; \
	(cd $(HOST_SUBDIR)/gotools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          pdf) \
	  || exit 1

@endif gotools

.PHONY: maybe-html-gotools html-gotools
maybe-html-gotools:
@if gotools
maybe-html-gotools: html-gotools

html-gotools: \
    configure-gotools 
	@: $(MAKE); $(unstage)
	@[ -f ./gotools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing html in gotools"; \
	(cd $(HOST_SUBDIR)/gotools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          html) \
	  || exit 1

@endif gotools

.PHONY: maybe-TAGS-gotools TAGS-gotools
maybe-TAGS-gotools:
@if gotools
maybe-TAGS-gotools: TAGS-gotools

TAGS-gotools: \
    configure-gotools 
	@: $(MAKE); $(unstage)
	@[ -f ./gotools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing TAGS in gotools"; \
	(cd $(HOST_SUBDIR)/gotools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          TAGS) \
	  || exit 1

@endif gotools

.PHONY: maybe-install-info-gotools install-info-gotools
maybe-install-info-gotools:
@if gotools
maybe-install-info-gotools: install-info-gotools

install-info-gotools: \
    configure-gotools \
    info-gotools 
	@: $(MAKE); $(unstage)
	@[ -f ./gotools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-info in gotools"; \
	(cd $(HOST_SUBDIR)/gotools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-info) \
	  || exit 1

@endif gotools

.PHONY: maybe-install-pdf-gotools install-pdf-gotools
maybe-install-pdf-gotools:
@if gotools
maybe-install-pdf-gotools: install-pdf-gotools

install-pdf-gotools: \
    configure-gotools \
    pdf-gotools 
	@: $(MAKE); $(unstage)
	@[ -f ./gotools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-pdf in gotools"; \
	(cd $(HOST_SUBDIR)/gotools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-pdf) \
	  || exit 1

@endif gotools

.PHONY: maybe-install-html-gotools install-html-gotools
maybe-install-html-gotools:
@if gotools
maybe-install-html-gotools: install-html-gotools

install-html-gotools: \
    configure-gotools \
    html-gotools 
	@: $(MAKE); $(unstage)
	@[ -f ./gotools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing install-html in gotools"; \
	(cd $(HOST_SUBDIR)/gotools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          install-html) \
	  || exit 1

@endif gotools

.PHONY: maybe-installcheck-gotools installcheck-gotools
maybe-installcheck-gotools:
@if gotools
maybe-installcheck-gotools: installcheck-gotools

installcheck-gotools: \
    configure-gotools 
	@: $(MAKE); $(unstage)
	@[ -f ./gotools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing installcheck in gotools"; \
	(cd $(HOST_SUBDIR)/gotools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          installcheck) \
	  || exit 1

@endif gotools

.PHONY: maybe-mostlyclean-gotools mostlyclean-gotools
maybe-mostlyclean-gotools:
@if gotools
maybe-mostlyclean-gotools: mostlyclean-gotools

mostlyclean-gotools: 
	@: $(MAKE); $(unstage)
	@[ -f ./gotools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing mostlyclean in gotools"; \
	(cd $(HOST_SUBDIR)/gotools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          mostlyclean) \
	  || exit 1

@endif gotools

.PHONY: maybe-clean-gotools clean-gotools
maybe-clean-gotools:
@if gotools
maybe-clean-gotools: clean-gotools

clean-gotools: 
	@: $(MAKE); $(unstage)
	@[ -f ./gotools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing clean in gotools"; \
	(cd $(HOST_SUBDIR)/gotools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          clean) \
	  || exit 1

@endif gotools

.PHONY: maybe-distclean-gotools distclean-gotools
maybe-distclean-gotools:
@if gotools
maybe-distclean-gotools: distclean-gotools

distclean-gotools: 
	@: $(MAKE); $(unstage)
	@[ -f ./gotools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing distclean in gotools"; \
	(cd $(HOST_SUBDIR)/gotools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          distclean) \
	  || exit 1

@endif gotools

.PHONY: maybe-maintainer-clean-gotools maintainer-clean-gotools
maybe-maintainer-clean-gotools:
@if gotools
maybe-maintainer-clean-gotools: maintainer-clean-gotools

maintainer-clean-gotools: 
	@: $(MAKE); $(unstage)
	@[ -f ./gotools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	for flag in $(EXTRA_HOST_FLAGS) ; do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	echo "Doing maintainer-clean in gotools"; \
	(cd $(HOST_SUBDIR)/gotools && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	          maintainer-clean) \
	  || exit 1

@endif gotools



# ---------------------------------------
# Modules which run on the target machine
# ---------------------------------------




.PHONY: configure-target-libstdc++-v3 maybe-configure-target-libstdc++-v3
maybe-configure-target-libstdc++-v3:
@if gcc-bootstrap
configure-target-libstdc++-v3: stage_current
@endif gcc-bootstrap
@if target-libstdc++-v3
maybe-configure-target-libstdc++-v3: configure-target-libstdc++-v3
configure-target-libstdc++-v3: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libstdc++-v3..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile; \
	    mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3; \
	$(RAW_CXX_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libstdc++-v3; \
	cd "$(TARGET_SUBDIR)/libstdc++-v3" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libstdc++-v3/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libstdc++-v3; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libstdc++-v3



.PHONY: configure-stage1-target-libstdc++-v3 maybe-configure-stage1-target-libstdc++-v3
maybe-configure-stage1-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-configure-stage1-target-libstdc++-v3: configure-stage1-target-libstdc++-v3
configure-stage1-target-libstdc++-v3:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	echo "Checking multilib configuration for libstdc++-v3..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile; \
	    mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(TARGET_SUBDIR)/libstdc++-v3; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libstdc++-v3/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libstdc++-v3; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif target-libstdc++-v3-bootstrap

.PHONY: configure-stage2-target-libstdc++-v3 maybe-configure-stage2-target-libstdc++-v3
maybe-configure-stage2-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-configure-stage2-target-libstdc++-v3: configure-stage2-target-libstdc++-v3
configure-stage2-target-libstdc++-v3:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	echo "Checking multilib configuration for libstdc++-v3..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile; \
	    mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(TARGET_SUBDIR)/libstdc++-v3; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libstdc++-v3/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libstdc++-v3; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS)
@endif target-libstdc++-v3-bootstrap

.PHONY: configure-stage3-target-libstdc++-v3 maybe-configure-stage3-target-libstdc++-v3
maybe-configure-stage3-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-configure-stage3-target-libstdc++-v3: configure-stage3-target-libstdc++-v3
configure-stage3-target-libstdc++-v3:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	echo "Checking multilib configuration for libstdc++-v3..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile; \
	    mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(TARGET_SUBDIR)/libstdc++-v3; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libstdc++-v3/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libstdc++-v3; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS)
@endif target-libstdc++-v3-bootstrap

.PHONY: configure-stage4-target-libstdc++-v3 maybe-configure-stage4-target-libstdc++-v3
maybe-configure-stage4-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-configure-stage4-target-libstdc++-v3: configure-stage4-target-libstdc++-v3
configure-stage4-target-libstdc++-v3:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	echo "Checking multilib configuration for libstdc++-v3..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile; \
	    mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(TARGET_SUBDIR)/libstdc++-v3; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libstdc++-v3/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libstdc++-v3; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS)
@endif target-libstdc++-v3-bootstrap

.PHONY: configure-stageprofile-target-libstdc++-v3 maybe-configure-stageprofile-target-libstdc++-v3
maybe-configure-stageprofile-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-configure-stageprofile-target-libstdc++-v3: configure-stageprofile-target-libstdc++-v3
configure-stageprofile-target-libstdc++-v3:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	echo "Checking multilib configuration for libstdc++-v3..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile; \
	    mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(TARGET_SUBDIR)/libstdc++-v3; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libstdc++-v3/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libstdc++-v3; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS)
@endif target-libstdc++-v3-bootstrap

.PHONY: configure-stagetrain-target-libstdc++-v3 maybe-configure-stagetrain-target-libstdc++-v3
maybe-configure-stagetrain-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-configure-stagetrain-target-libstdc++-v3: configure-stagetrain-target-libstdc++-v3
configure-stagetrain-target-libstdc++-v3:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	echo "Checking multilib configuration for libstdc++-v3..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile; \
	    mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(TARGET_SUBDIR)/libstdc++-v3; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libstdc++-v3/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libstdc++-v3; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS)
@endif target-libstdc++-v3-bootstrap

.PHONY: configure-stagefeedback-target-libstdc++-v3 maybe-configure-stagefeedback-target-libstdc++-v3
maybe-configure-stagefeedback-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-configure-stagefeedback-target-libstdc++-v3: configure-stagefeedback-target-libstdc++-v3
configure-stagefeedback-target-libstdc++-v3:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	echo "Checking multilib configuration for libstdc++-v3..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile; \
	    mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(TARGET_SUBDIR)/libstdc++-v3; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libstdc++-v3/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libstdc++-v3; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS)
@endif target-libstdc++-v3-bootstrap

.PHONY: configure-stageautoprofile-target-libstdc++-v3 maybe-configure-stageautoprofile-target-libstdc++-v3
maybe-configure-stageautoprofile-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-configure-stageautoprofile-target-libstdc++-v3: configure-stageautoprofile-target-libstdc++-v3
configure-stageautoprofile-target-libstdc++-v3:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	echo "Checking multilib configuration for libstdc++-v3..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile; \
	    mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(TARGET_SUBDIR)/libstdc++-v3; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libstdc++-v3/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libstdc++-v3; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS)
@endif target-libstdc++-v3-bootstrap

.PHONY: configure-stageautofeedback-target-libstdc++-v3 maybe-configure-stageautofeedback-target-libstdc++-v3
maybe-configure-stageautofeedback-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-configure-stageautofeedback-target-libstdc++-v3: configure-stageautofeedback-target-libstdc++-v3
configure-stageautofeedback-target-libstdc++-v3:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	echo "Checking multilib configuration for libstdc++-v3..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile; \
	    mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libstdc++-v3/multilib.tmp $(TARGET_SUBDIR)/libstdc++-v3/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(TARGET_SUBDIR)/libstdc++-v3; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libstdc++-v3; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libstdc++-v3/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libstdc++-v3; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS)
@endif target-libstdc++-v3-bootstrap





.PHONY: all-target-libstdc++-v3 maybe-all-target-libstdc++-v3
maybe-all-target-libstdc++-v3:
@if gcc-bootstrap
all-target-libstdc++-v3: stage_current
@endif gcc-bootstrap
@if target-libstdc++-v3
TARGET-target-libstdc++-v3=all
maybe-all-target-libstdc++-v3: all-target-libstdc++-v3
all-target-libstdc++-v3: configure-target-libstdc++-v3
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		$(TARGET-target-libstdc++-v3))
@endif target-libstdc++-v3



.PHONY: all-stage1-target-libstdc++-v3 maybe-all-stage1-target-libstdc++-v3
.PHONY: clean-stage1-target-libstdc++-v3 maybe-clean-stage1-target-libstdc++-v3
maybe-all-stage1-target-libstdc++-v3:
maybe-clean-stage1-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-all-stage1-target-libstdc++-v3: all-stage1-target-libstdc++-v3
all-stage1: all-stage1-target-libstdc++-v3
TARGET-stage1-target-libstdc++-v3 = $(TARGET-target-libstdc++-v3)
all-stage1-target-libstdc++-v3: configure-stage1-target-libstdc++-v3
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS)  \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  \
		  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-target-libstdc++-v3)

maybe-clean-stage1-target-libstdc++-v3: clean-stage1-target-libstdc++-v3
clean-stage1: clean-stage1-target-libstdc++-v3
clean-stage1-target-libstdc++-v3:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage1-libstdc++-v3/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  \
	  clean
@endif target-libstdc++-v3-bootstrap


.PHONY: all-stage2-target-libstdc++-v3 maybe-all-stage2-target-libstdc++-v3
.PHONY: clean-stage2-target-libstdc++-v3 maybe-clean-stage2-target-libstdc++-v3
maybe-all-stage2-target-libstdc++-v3:
maybe-clean-stage2-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-all-stage2-target-libstdc++-v3: all-stage2-target-libstdc++-v3
all-stage2: all-stage2-target-libstdc++-v3
TARGET-stage2-target-libstdc++-v3 = $(TARGET-target-libstdc++-v3)
all-stage2-target-libstdc++-v3: configure-stage2-target-libstdc++-v3
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-target-libstdc++-v3)

maybe-clean-stage2-target-libstdc++-v3: clean-stage2-target-libstdc++-v3
clean-stage2: clean-stage2-target-libstdc++-v3
clean-stage2-target-libstdc++-v3:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage2-libstdc++-v3/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libstdc++-v3-bootstrap


.PHONY: all-stage3-target-libstdc++-v3 maybe-all-stage3-target-libstdc++-v3
.PHONY: clean-stage3-target-libstdc++-v3 maybe-clean-stage3-target-libstdc++-v3
maybe-all-stage3-target-libstdc++-v3:
maybe-clean-stage3-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-all-stage3-target-libstdc++-v3: all-stage3-target-libstdc++-v3
all-stage3: all-stage3-target-libstdc++-v3
TARGET-stage3-target-libstdc++-v3 = $(TARGET-target-libstdc++-v3)
all-stage3-target-libstdc++-v3: configure-stage3-target-libstdc++-v3
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-target-libstdc++-v3)

maybe-clean-stage3-target-libstdc++-v3: clean-stage3-target-libstdc++-v3
clean-stage3: clean-stage3-target-libstdc++-v3
clean-stage3-target-libstdc++-v3:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage3-libstdc++-v3/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libstdc++-v3-bootstrap


.PHONY: all-stage4-target-libstdc++-v3 maybe-all-stage4-target-libstdc++-v3
.PHONY: clean-stage4-target-libstdc++-v3 maybe-clean-stage4-target-libstdc++-v3
maybe-all-stage4-target-libstdc++-v3:
maybe-clean-stage4-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-all-stage4-target-libstdc++-v3: all-stage4-target-libstdc++-v3
all-stage4: all-stage4-target-libstdc++-v3
TARGET-stage4-target-libstdc++-v3 = $(TARGET-target-libstdc++-v3)
all-stage4-target-libstdc++-v3: configure-stage4-target-libstdc++-v3
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-target-libstdc++-v3)

maybe-clean-stage4-target-libstdc++-v3: clean-stage4-target-libstdc++-v3
clean-stage4: clean-stage4-target-libstdc++-v3
clean-stage4-target-libstdc++-v3:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage4-libstdc++-v3/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libstdc++-v3-bootstrap


.PHONY: all-stageprofile-target-libstdc++-v3 maybe-all-stageprofile-target-libstdc++-v3
.PHONY: clean-stageprofile-target-libstdc++-v3 maybe-clean-stageprofile-target-libstdc++-v3
maybe-all-stageprofile-target-libstdc++-v3:
maybe-clean-stageprofile-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-all-stageprofile-target-libstdc++-v3: all-stageprofile-target-libstdc++-v3
all-stageprofile: all-stageprofile-target-libstdc++-v3
TARGET-stageprofile-target-libstdc++-v3 = $(TARGET-target-libstdc++-v3)
all-stageprofile-target-libstdc++-v3: configure-stageprofile-target-libstdc++-v3
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-target-libstdc++-v3)

maybe-clean-stageprofile-target-libstdc++-v3: clean-stageprofile-target-libstdc++-v3
clean-stageprofile: clean-stageprofile-target-libstdc++-v3
clean-stageprofile-target-libstdc++-v3:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageprofile-libstdc++-v3/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libstdc++-v3-bootstrap


.PHONY: all-stagetrain-target-libstdc++-v3 maybe-all-stagetrain-target-libstdc++-v3
.PHONY: clean-stagetrain-target-libstdc++-v3 maybe-clean-stagetrain-target-libstdc++-v3
maybe-all-stagetrain-target-libstdc++-v3:
maybe-clean-stagetrain-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-all-stagetrain-target-libstdc++-v3: all-stagetrain-target-libstdc++-v3
all-stagetrain: all-stagetrain-target-libstdc++-v3
TARGET-stagetrain-target-libstdc++-v3 = $(TARGET-target-libstdc++-v3)
all-stagetrain-target-libstdc++-v3: configure-stagetrain-target-libstdc++-v3
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-target-libstdc++-v3)

maybe-clean-stagetrain-target-libstdc++-v3: clean-stagetrain-target-libstdc++-v3
clean-stagetrain: clean-stagetrain-target-libstdc++-v3
clean-stagetrain-target-libstdc++-v3:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagetrain-libstdc++-v3/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libstdc++-v3-bootstrap


.PHONY: all-stagefeedback-target-libstdc++-v3 maybe-all-stagefeedback-target-libstdc++-v3
.PHONY: clean-stagefeedback-target-libstdc++-v3 maybe-clean-stagefeedback-target-libstdc++-v3
maybe-all-stagefeedback-target-libstdc++-v3:
maybe-clean-stagefeedback-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-all-stagefeedback-target-libstdc++-v3: all-stagefeedback-target-libstdc++-v3
all-stagefeedback: all-stagefeedback-target-libstdc++-v3
TARGET-stagefeedback-target-libstdc++-v3 = $(TARGET-target-libstdc++-v3)
all-stagefeedback-target-libstdc++-v3: configure-stagefeedback-target-libstdc++-v3
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-target-libstdc++-v3)

maybe-clean-stagefeedback-target-libstdc++-v3: clean-stagefeedback-target-libstdc++-v3
clean-stagefeedback: clean-stagefeedback-target-libstdc++-v3
clean-stagefeedback-target-libstdc++-v3:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagefeedback-libstdc++-v3/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libstdc++-v3-bootstrap


.PHONY: all-stageautoprofile-target-libstdc++-v3 maybe-all-stageautoprofile-target-libstdc++-v3
.PHONY: clean-stageautoprofile-target-libstdc++-v3 maybe-clean-stageautoprofile-target-libstdc++-v3
maybe-all-stageautoprofile-target-libstdc++-v3:
maybe-clean-stageautoprofile-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-all-stageautoprofile-target-libstdc++-v3: all-stageautoprofile-target-libstdc++-v3
all-stageautoprofile: all-stageautoprofile-target-libstdc++-v3
TARGET-stageautoprofile-target-libstdc++-v3 = $(TARGET-target-libstdc++-v3)
all-stageautoprofile-target-libstdc++-v3: configure-stageautoprofile-target-libstdc++-v3
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-target-libstdc++-v3)

maybe-clean-stageautoprofile-target-libstdc++-v3: clean-stageautoprofile-target-libstdc++-v3
clean-stageautoprofile: clean-stageautoprofile-target-libstdc++-v3
clean-stageautoprofile-target-libstdc++-v3:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautoprofile-libstdc++-v3/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libstdc++-v3-bootstrap


.PHONY: all-stageautofeedback-target-libstdc++-v3 maybe-all-stageautofeedback-target-libstdc++-v3
.PHONY: clean-stageautofeedback-target-libstdc++-v3 maybe-clean-stageautofeedback-target-libstdc++-v3
maybe-all-stageautofeedback-target-libstdc++-v3:
maybe-clean-stageautofeedback-target-libstdc++-v3:
@if target-libstdc++-v3-bootstrap
maybe-all-stageautofeedback-target-libstdc++-v3: all-stageautofeedback-target-libstdc++-v3
all-stageautofeedback: all-stageautofeedback-target-libstdc++-v3
TARGET-stageautofeedback-target-libstdc++-v3 = $(TARGET-target-libstdc++-v3)
all-stageautofeedback-target-libstdc++-v3: configure-stageautofeedback-target-libstdc++-v3
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-target-libstdc++-v3)

maybe-clean-stageautofeedback-target-libstdc++-v3: clean-stageautofeedback-target-libstdc++-v3
clean-stageautofeedback: clean-stageautofeedback-target-libstdc++-v3
clean-stageautofeedback-target-libstdc++-v3:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautofeedback-libstdc++-v3/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libstdc++-v3-bootstrap






.PHONY: check-target-libstdc++-v3 maybe-check-target-libstdc++-v3
maybe-check-target-libstdc++-v3:
@if target-libstdc++-v3
maybe-check-target-libstdc++-v3: check-target-libstdc++-v3

check-target-libstdc++-v3:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   check)

@endif target-libstdc++-v3

.PHONY: install-target-libstdc++-v3 maybe-install-target-libstdc++-v3
maybe-install-target-libstdc++-v3:
@if target-libstdc++-v3
maybe-install-target-libstdc++-v3: install-target-libstdc++-v3

install-target-libstdc++-v3: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libstdc++-v3

.PHONY: install-strip-target-libstdc++-v3 maybe-install-strip-target-libstdc++-v3
maybe-install-strip-target-libstdc++-v3:
@if target-libstdc++-v3
maybe-install-strip-target-libstdc++-v3: install-strip-target-libstdc++-v3

install-strip-target-libstdc++-v3: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libstdc++-v3

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libstdc++-v3 info-target-libstdc++-v3
maybe-info-target-libstdc++-v3:
@if target-libstdc++-v3
maybe-info-target-libstdc++-v3: info-target-libstdc++-v3

info-target-libstdc++-v3: \
    configure-target-libstdc++-v3 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libstdc++-v3"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libstdc++-v3

.PHONY: maybe-dvi-target-libstdc++-v3 dvi-target-libstdc++-v3
maybe-dvi-target-libstdc++-v3:
@if target-libstdc++-v3
maybe-dvi-target-libstdc++-v3: dvi-target-libstdc++-v3

dvi-target-libstdc++-v3: \
    configure-target-libstdc++-v3 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libstdc++-v3"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libstdc++-v3

.PHONY: maybe-pdf-target-libstdc++-v3 pdf-target-libstdc++-v3
maybe-pdf-target-libstdc++-v3:
@if target-libstdc++-v3
maybe-pdf-target-libstdc++-v3: pdf-target-libstdc++-v3

pdf-target-libstdc++-v3: \
    configure-target-libstdc++-v3 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libstdc++-v3"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libstdc++-v3

.PHONY: maybe-html-target-libstdc++-v3 html-target-libstdc++-v3
maybe-html-target-libstdc++-v3:
@if target-libstdc++-v3
maybe-html-target-libstdc++-v3: html-target-libstdc++-v3

html-target-libstdc++-v3: \
    configure-target-libstdc++-v3 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libstdc++-v3"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libstdc++-v3

.PHONY: maybe-TAGS-target-libstdc++-v3 TAGS-target-libstdc++-v3
maybe-TAGS-target-libstdc++-v3:
@if target-libstdc++-v3
maybe-TAGS-target-libstdc++-v3: TAGS-target-libstdc++-v3

TAGS-target-libstdc++-v3: \
    configure-target-libstdc++-v3 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libstdc++-v3"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libstdc++-v3

.PHONY: maybe-install-info-target-libstdc++-v3 install-info-target-libstdc++-v3
maybe-install-info-target-libstdc++-v3:
@if target-libstdc++-v3
maybe-install-info-target-libstdc++-v3: install-info-target-libstdc++-v3

install-info-target-libstdc++-v3: \
    configure-target-libstdc++-v3 \
    info-target-libstdc++-v3 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libstdc++-v3"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libstdc++-v3

.PHONY: maybe-install-pdf-target-libstdc++-v3 install-pdf-target-libstdc++-v3
maybe-install-pdf-target-libstdc++-v3:
@if target-libstdc++-v3
maybe-install-pdf-target-libstdc++-v3: install-pdf-target-libstdc++-v3

install-pdf-target-libstdc++-v3: \
    configure-target-libstdc++-v3 \
    pdf-target-libstdc++-v3 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libstdc++-v3"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libstdc++-v3

.PHONY: maybe-install-html-target-libstdc++-v3 install-html-target-libstdc++-v3
maybe-install-html-target-libstdc++-v3:
@if target-libstdc++-v3
maybe-install-html-target-libstdc++-v3: install-html-target-libstdc++-v3

install-html-target-libstdc++-v3: \
    configure-target-libstdc++-v3 \
    html-target-libstdc++-v3 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libstdc++-v3"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libstdc++-v3

.PHONY: maybe-installcheck-target-libstdc++-v3 installcheck-target-libstdc++-v3
maybe-installcheck-target-libstdc++-v3:
@if target-libstdc++-v3
maybe-installcheck-target-libstdc++-v3: installcheck-target-libstdc++-v3

installcheck-target-libstdc++-v3: \
    configure-target-libstdc++-v3 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libstdc++-v3"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libstdc++-v3

.PHONY: maybe-mostlyclean-target-libstdc++-v3 mostlyclean-target-libstdc++-v3
maybe-mostlyclean-target-libstdc++-v3:
@if target-libstdc++-v3
maybe-mostlyclean-target-libstdc++-v3: mostlyclean-target-libstdc++-v3

mostlyclean-target-libstdc++-v3: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libstdc++-v3"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libstdc++-v3

.PHONY: maybe-clean-target-libstdc++-v3 clean-target-libstdc++-v3
maybe-clean-target-libstdc++-v3:
@if target-libstdc++-v3
maybe-clean-target-libstdc++-v3: clean-target-libstdc++-v3

clean-target-libstdc++-v3: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libstdc++-v3"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libstdc++-v3

.PHONY: maybe-distclean-target-libstdc++-v3 distclean-target-libstdc++-v3
maybe-distclean-target-libstdc++-v3:
@if target-libstdc++-v3
maybe-distclean-target-libstdc++-v3: distclean-target-libstdc++-v3

distclean-target-libstdc++-v3: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libstdc++-v3"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libstdc++-v3

.PHONY: maybe-maintainer-clean-target-libstdc++-v3 maintainer-clean-target-libstdc++-v3
maybe-maintainer-clean-target-libstdc++-v3:
@if target-libstdc++-v3
maybe-maintainer-clean-target-libstdc++-v3: maintainer-clean-target-libstdc++-v3

maintainer-clean-target-libstdc++-v3: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libstdc++-v3"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libstdc++-v3 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libstdc++-v3





.PHONY: configure-target-libsanitizer maybe-configure-target-libsanitizer
maybe-configure-target-libsanitizer:
@if gcc-bootstrap
configure-target-libsanitizer: stage_current
@endif gcc-bootstrap
@if target-libsanitizer
maybe-configure-target-libsanitizer: configure-target-libsanitizer
configure-target-libsanitizer: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libsanitizer..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libsanitizer/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/Makefile; \
	    mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libsanitizer/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer; \
	$(RAW_CXX_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libsanitizer; \
	cd "$(TARGET_SUBDIR)/libsanitizer" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libsanitizer/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsanitizer; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libsanitizer



.PHONY: configure-stage1-target-libsanitizer maybe-configure-stage1-target-libsanitizer
maybe-configure-stage1-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-configure-stage1-target-libsanitizer: configure-stage1-target-libsanitizer
configure-stage1-target-libsanitizer:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	echo "Checking multilib configuration for libsanitizer..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libsanitizer/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/Makefile; \
	    mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libsanitizer/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(TARGET_SUBDIR)/libsanitizer; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer; \
	cd $(TARGET_SUBDIR)/libsanitizer || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libsanitizer/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsanitizer; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif target-libsanitizer-bootstrap

.PHONY: configure-stage2-target-libsanitizer maybe-configure-stage2-target-libsanitizer
maybe-configure-stage2-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-configure-stage2-target-libsanitizer: configure-stage2-target-libsanitizer
configure-stage2-target-libsanitizer:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	echo "Checking multilib configuration for libsanitizer..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libsanitizer/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/Makefile; \
	    mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libsanitizer/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(TARGET_SUBDIR)/libsanitizer; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer; \
	cd $(TARGET_SUBDIR)/libsanitizer || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libsanitizer/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsanitizer; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS)
@endif target-libsanitizer-bootstrap

.PHONY: configure-stage3-target-libsanitizer maybe-configure-stage3-target-libsanitizer
maybe-configure-stage3-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-configure-stage3-target-libsanitizer: configure-stage3-target-libsanitizer
configure-stage3-target-libsanitizer:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	echo "Checking multilib configuration for libsanitizer..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libsanitizer/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/Makefile; \
	    mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libsanitizer/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(TARGET_SUBDIR)/libsanitizer; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer; \
	cd $(TARGET_SUBDIR)/libsanitizer || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libsanitizer/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsanitizer; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS)
@endif target-libsanitizer-bootstrap

.PHONY: configure-stage4-target-libsanitizer maybe-configure-stage4-target-libsanitizer
maybe-configure-stage4-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-configure-stage4-target-libsanitizer: configure-stage4-target-libsanitizer
configure-stage4-target-libsanitizer:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	echo "Checking multilib configuration for libsanitizer..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libsanitizer/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/Makefile; \
	    mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libsanitizer/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(TARGET_SUBDIR)/libsanitizer; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer; \
	cd $(TARGET_SUBDIR)/libsanitizer || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libsanitizer/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsanitizer; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS)
@endif target-libsanitizer-bootstrap

.PHONY: configure-stageprofile-target-libsanitizer maybe-configure-stageprofile-target-libsanitizer
maybe-configure-stageprofile-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-configure-stageprofile-target-libsanitizer: configure-stageprofile-target-libsanitizer
configure-stageprofile-target-libsanitizer:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	echo "Checking multilib configuration for libsanitizer..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libsanitizer/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/Makefile; \
	    mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libsanitizer/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(TARGET_SUBDIR)/libsanitizer; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer; \
	cd $(TARGET_SUBDIR)/libsanitizer || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libsanitizer/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsanitizer; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS)
@endif target-libsanitizer-bootstrap

.PHONY: configure-stagetrain-target-libsanitizer maybe-configure-stagetrain-target-libsanitizer
maybe-configure-stagetrain-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-configure-stagetrain-target-libsanitizer: configure-stagetrain-target-libsanitizer
configure-stagetrain-target-libsanitizer:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	echo "Checking multilib configuration for libsanitizer..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libsanitizer/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/Makefile; \
	    mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libsanitizer/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(TARGET_SUBDIR)/libsanitizer; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer; \
	cd $(TARGET_SUBDIR)/libsanitizer || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libsanitizer/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsanitizer; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS)
@endif target-libsanitizer-bootstrap

.PHONY: configure-stagefeedback-target-libsanitizer maybe-configure-stagefeedback-target-libsanitizer
maybe-configure-stagefeedback-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-configure-stagefeedback-target-libsanitizer: configure-stagefeedback-target-libsanitizer
configure-stagefeedback-target-libsanitizer:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	echo "Checking multilib configuration for libsanitizer..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libsanitizer/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/Makefile; \
	    mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libsanitizer/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(TARGET_SUBDIR)/libsanitizer; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer; \
	cd $(TARGET_SUBDIR)/libsanitizer || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libsanitizer/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsanitizer; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS)
@endif target-libsanitizer-bootstrap

.PHONY: configure-stageautoprofile-target-libsanitizer maybe-configure-stageautoprofile-target-libsanitizer
maybe-configure-stageautoprofile-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-configure-stageautoprofile-target-libsanitizer: configure-stageautoprofile-target-libsanitizer
configure-stageautoprofile-target-libsanitizer:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	echo "Checking multilib configuration for libsanitizer..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libsanitizer/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/Makefile; \
	    mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libsanitizer/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(TARGET_SUBDIR)/libsanitizer; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer; \
	cd $(TARGET_SUBDIR)/libsanitizer || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libsanitizer/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsanitizer; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS)
@endif target-libsanitizer-bootstrap

.PHONY: configure-stageautofeedback-target-libsanitizer maybe-configure-stageautofeedback-target-libsanitizer
maybe-configure-stageautofeedback-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-configure-stageautofeedback-target-libsanitizer: configure-stageautofeedback-target-libsanitizer
configure-stageautofeedback-target-libsanitizer:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	echo "Checking multilib configuration for libsanitizer..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libsanitizer/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libsanitizer/Makefile; \
	    mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libsanitizer/multilib.tmp $(TARGET_SUBDIR)/libsanitizer/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libsanitizer/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(TARGET_SUBDIR)/libsanitizer; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libsanitizer; \
	cd $(TARGET_SUBDIR)/libsanitizer || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libsanitizer/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsanitizer; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS)
@endif target-libsanitizer-bootstrap





.PHONY: all-target-libsanitizer maybe-all-target-libsanitizer
maybe-all-target-libsanitizer:
@if gcc-bootstrap
all-target-libsanitizer: stage_current
@endif gcc-bootstrap
@if target-libsanitizer
TARGET-target-libsanitizer=all
maybe-all-target-libsanitizer: all-target-libsanitizer
all-target-libsanitizer: configure-target-libsanitizer
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libsanitizer && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		$(TARGET-target-libsanitizer))
@endif target-libsanitizer



.PHONY: all-stage1-target-libsanitizer maybe-all-stage1-target-libsanitizer
.PHONY: clean-stage1-target-libsanitizer maybe-clean-stage1-target-libsanitizer
maybe-all-stage1-target-libsanitizer:
maybe-clean-stage1-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-all-stage1-target-libsanitizer: all-stage1-target-libsanitizer
all-stage1: all-stage1-target-libsanitizer
TARGET-stage1-target-libsanitizer = $(TARGET-target-libsanitizer)
all-stage1-target-libsanitizer: configure-stage1-target-libsanitizer
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS)  \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  \
		  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-target-libsanitizer)

maybe-clean-stage1-target-libsanitizer: clean-stage1-target-libsanitizer
clean-stage1: clean-stage1-target-libsanitizer
clean-stage1-target-libsanitizer:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage1-libsanitizer/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  \
	  clean
@endif target-libsanitizer-bootstrap


.PHONY: all-stage2-target-libsanitizer maybe-all-stage2-target-libsanitizer
.PHONY: clean-stage2-target-libsanitizer maybe-clean-stage2-target-libsanitizer
maybe-all-stage2-target-libsanitizer:
maybe-clean-stage2-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-all-stage2-target-libsanitizer: all-stage2-target-libsanitizer
all-stage2: all-stage2-target-libsanitizer
TARGET-stage2-target-libsanitizer = $(TARGET-target-libsanitizer)
all-stage2-target-libsanitizer: configure-stage2-target-libsanitizer
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-target-libsanitizer)

maybe-clean-stage2-target-libsanitizer: clean-stage2-target-libsanitizer
clean-stage2: clean-stage2-target-libsanitizer
clean-stage2-target-libsanitizer:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage2-libsanitizer/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libsanitizer-bootstrap


.PHONY: all-stage3-target-libsanitizer maybe-all-stage3-target-libsanitizer
.PHONY: clean-stage3-target-libsanitizer maybe-clean-stage3-target-libsanitizer
maybe-all-stage3-target-libsanitizer:
maybe-clean-stage3-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-all-stage3-target-libsanitizer: all-stage3-target-libsanitizer
all-stage3: all-stage3-target-libsanitizer
TARGET-stage3-target-libsanitizer = $(TARGET-target-libsanitizer)
all-stage3-target-libsanitizer: configure-stage3-target-libsanitizer
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-target-libsanitizer)

maybe-clean-stage3-target-libsanitizer: clean-stage3-target-libsanitizer
clean-stage3: clean-stage3-target-libsanitizer
clean-stage3-target-libsanitizer:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage3-libsanitizer/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libsanitizer-bootstrap


.PHONY: all-stage4-target-libsanitizer maybe-all-stage4-target-libsanitizer
.PHONY: clean-stage4-target-libsanitizer maybe-clean-stage4-target-libsanitizer
maybe-all-stage4-target-libsanitizer:
maybe-clean-stage4-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-all-stage4-target-libsanitizer: all-stage4-target-libsanitizer
all-stage4: all-stage4-target-libsanitizer
TARGET-stage4-target-libsanitizer = $(TARGET-target-libsanitizer)
all-stage4-target-libsanitizer: configure-stage4-target-libsanitizer
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-target-libsanitizer)

maybe-clean-stage4-target-libsanitizer: clean-stage4-target-libsanitizer
clean-stage4: clean-stage4-target-libsanitizer
clean-stage4-target-libsanitizer:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage4-libsanitizer/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libsanitizer-bootstrap


.PHONY: all-stageprofile-target-libsanitizer maybe-all-stageprofile-target-libsanitizer
.PHONY: clean-stageprofile-target-libsanitizer maybe-clean-stageprofile-target-libsanitizer
maybe-all-stageprofile-target-libsanitizer:
maybe-clean-stageprofile-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-all-stageprofile-target-libsanitizer: all-stageprofile-target-libsanitizer
all-stageprofile: all-stageprofile-target-libsanitizer
TARGET-stageprofile-target-libsanitizer = $(TARGET-target-libsanitizer)
all-stageprofile-target-libsanitizer: configure-stageprofile-target-libsanitizer
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-target-libsanitizer)

maybe-clean-stageprofile-target-libsanitizer: clean-stageprofile-target-libsanitizer
clean-stageprofile: clean-stageprofile-target-libsanitizer
clean-stageprofile-target-libsanitizer:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageprofile-libsanitizer/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libsanitizer-bootstrap


.PHONY: all-stagetrain-target-libsanitizer maybe-all-stagetrain-target-libsanitizer
.PHONY: clean-stagetrain-target-libsanitizer maybe-clean-stagetrain-target-libsanitizer
maybe-all-stagetrain-target-libsanitizer:
maybe-clean-stagetrain-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-all-stagetrain-target-libsanitizer: all-stagetrain-target-libsanitizer
all-stagetrain: all-stagetrain-target-libsanitizer
TARGET-stagetrain-target-libsanitizer = $(TARGET-target-libsanitizer)
all-stagetrain-target-libsanitizer: configure-stagetrain-target-libsanitizer
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-target-libsanitizer)

maybe-clean-stagetrain-target-libsanitizer: clean-stagetrain-target-libsanitizer
clean-stagetrain: clean-stagetrain-target-libsanitizer
clean-stagetrain-target-libsanitizer:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagetrain-libsanitizer/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libsanitizer-bootstrap


.PHONY: all-stagefeedback-target-libsanitizer maybe-all-stagefeedback-target-libsanitizer
.PHONY: clean-stagefeedback-target-libsanitizer maybe-clean-stagefeedback-target-libsanitizer
maybe-all-stagefeedback-target-libsanitizer:
maybe-clean-stagefeedback-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-all-stagefeedback-target-libsanitizer: all-stagefeedback-target-libsanitizer
all-stagefeedback: all-stagefeedback-target-libsanitizer
TARGET-stagefeedback-target-libsanitizer = $(TARGET-target-libsanitizer)
all-stagefeedback-target-libsanitizer: configure-stagefeedback-target-libsanitizer
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-target-libsanitizer)

maybe-clean-stagefeedback-target-libsanitizer: clean-stagefeedback-target-libsanitizer
clean-stagefeedback: clean-stagefeedback-target-libsanitizer
clean-stagefeedback-target-libsanitizer:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagefeedback-libsanitizer/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libsanitizer-bootstrap


.PHONY: all-stageautoprofile-target-libsanitizer maybe-all-stageautoprofile-target-libsanitizer
.PHONY: clean-stageautoprofile-target-libsanitizer maybe-clean-stageautoprofile-target-libsanitizer
maybe-all-stageautoprofile-target-libsanitizer:
maybe-clean-stageautoprofile-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-all-stageautoprofile-target-libsanitizer: all-stageautoprofile-target-libsanitizer
all-stageautoprofile: all-stageautoprofile-target-libsanitizer
TARGET-stageautoprofile-target-libsanitizer = $(TARGET-target-libsanitizer)
all-stageautoprofile-target-libsanitizer: configure-stageautoprofile-target-libsanitizer
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-target-libsanitizer)

maybe-clean-stageautoprofile-target-libsanitizer: clean-stageautoprofile-target-libsanitizer
clean-stageautoprofile: clean-stageautoprofile-target-libsanitizer
clean-stageautoprofile-target-libsanitizer:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautoprofile-libsanitizer/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libsanitizer-bootstrap


.PHONY: all-stageautofeedback-target-libsanitizer maybe-all-stageautofeedback-target-libsanitizer
.PHONY: clean-stageautofeedback-target-libsanitizer maybe-clean-stageautofeedback-target-libsanitizer
maybe-all-stageautofeedback-target-libsanitizer:
maybe-clean-stageautofeedback-target-libsanitizer:
@if target-libsanitizer-bootstrap
maybe-all-stageautofeedback-target-libsanitizer: all-stageautofeedback-target-libsanitizer
all-stageautofeedback: all-stageautofeedback-target-libsanitizer
TARGET-stageautofeedback-target-libsanitizer = $(TARGET-target-libsanitizer)
all-stageautofeedback-target-libsanitizer: configure-stageautofeedback-target-libsanitizer
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-target-libsanitizer)

maybe-clean-stageautofeedback-target-libsanitizer: clean-stageautofeedback-target-libsanitizer
clean-stageautofeedback: clean-stageautofeedback-target-libsanitizer
clean-stageautofeedback-target-libsanitizer:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautofeedback-libsanitizer/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libsanitizer && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libsanitizer-bootstrap






.PHONY: check-target-libsanitizer maybe-check-target-libsanitizer
maybe-check-target-libsanitizer:
@if target-libsanitizer
maybe-check-target-libsanitizer: check-target-libsanitizer

check-target-libsanitizer:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libsanitizer && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   check)

@endif target-libsanitizer

.PHONY: install-target-libsanitizer maybe-install-target-libsanitizer
maybe-install-target-libsanitizer:
@if target-libsanitizer
maybe-install-target-libsanitizer: install-target-libsanitizer

install-target-libsanitizer: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libsanitizer && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libsanitizer

.PHONY: install-strip-target-libsanitizer maybe-install-strip-target-libsanitizer
maybe-install-strip-target-libsanitizer:
@if target-libsanitizer
maybe-install-strip-target-libsanitizer: install-strip-target-libsanitizer

install-strip-target-libsanitizer: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libsanitizer && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libsanitizer

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libsanitizer info-target-libsanitizer
maybe-info-target-libsanitizer:
@if target-libsanitizer
maybe-info-target-libsanitizer: info-target-libsanitizer

info-target-libsanitizer: \
    configure-target-libsanitizer 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libsanitizer"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libsanitizer && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libsanitizer

.PHONY: maybe-dvi-target-libsanitizer dvi-target-libsanitizer
maybe-dvi-target-libsanitizer:
@if target-libsanitizer
maybe-dvi-target-libsanitizer: dvi-target-libsanitizer

dvi-target-libsanitizer: \
    configure-target-libsanitizer 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libsanitizer"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libsanitizer && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libsanitizer

.PHONY: maybe-pdf-target-libsanitizer pdf-target-libsanitizer
maybe-pdf-target-libsanitizer:
@if target-libsanitizer
maybe-pdf-target-libsanitizer: pdf-target-libsanitizer

pdf-target-libsanitizer: \
    configure-target-libsanitizer 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libsanitizer"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libsanitizer && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libsanitizer

.PHONY: maybe-html-target-libsanitizer html-target-libsanitizer
maybe-html-target-libsanitizer:
@if target-libsanitizer
maybe-html-target-libsanitizer: html-target-libsanitizer

html-target-libsanitizer: \
    configure-target-libsanitizer 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libsanitizer"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libsanitizer && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libsanitizer

.PHONY: maybe-TAGS-target-libsanitizer TAGS-target-libsanitizer
maybe-TAGS-target-libsanitizer:
@if target-libsanitizer
maybe-TAGS-target-libsanitizer: TAGS-target-libsanitizer

TAGS-target-libsanitizer: \
    configure-target-libsanitizer 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libsanitizer"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libsanitizer && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libsanitizer

.PHONY: maybe-install-info-target-libsanitizer install-info-target-libsanitizer
maybe-install-info-target-libsanitizer:
@if target-libsanitizer
maybe-install-info-target-libsanitizer: install-info-target-libsanitizer

install-info-target-libsanitizer: \
    configure-target-libsanitizer \
    info-target-libsanitizer 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libsanitizer"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libsanitizer && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libsanitizer

.PHONY: maybe-install-pdf-target-libsanitizer install-pdf-target-libsanitizer
maybe-install-pdf-target-libsanitizer:
@if target-libsanitizer
maybe-install-pdf-target-libsanitizer: install-pdf-target-libsanitizer

install-pdf-target-libsanitizer: \
    configure-target-libsanitizer \
    pdf-target-libsanitizer 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libsanitizer"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libsanitizer && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libsanitizer

.PHONY: maybe-install-html-target-libsanitizer install-html-target-libsanitizer
maybe-install-html-target-libsanitizer:
@if target-libsanitizer
maybe-install-html-target-libsanitizer: install-html-target-libsanitizer

install-html-target-libsanitizer: \
    configure-target-libsanitizer \
    html-target-libsanitizer 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libsanitizer"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libsanitizer && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libsanitizer

.PHONY: maybe-installcheck-target-libsanitizer installcheck-target-libsanitizer
maybe-installcheck-target-libsanitizer:
@if target-libsanitizer
maybe-installcheck-target-libsanitizer: installcheck-target-libsanitizer

installcheck-target-libsanitizer: \
    configure-target-libsanitizer 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libsanitizer"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libsanitizer && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libsanitizer

.PHONY: maybe-mostlyclean-target-libsanitizer mostlyclean-target-libsanitizer
maybe-mostlyclean-target-libsanitizer:
@if target-libsanitizer
maybe-mostlyclean-target-libsanitizer: mostlyclean-target-libsanitizer

mostlyclean-target-libsanitizer: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libsanitizer"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libsanitizer && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libsanitizer

.PHONY: maybe-clean-target-libsanitizer clean-target-libsanitizer
maybe-clean-target-libsanitizer:
@if target-libsanitizer
maybe-clean-target-libsanitizer: clean-target-libsanitizer

clean-target-libsanitizer: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libsanitizer"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libsanitizer && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libsanitizer

.PHONY: maybe-distclean-target-libsanitizer distclean-target-libsanitizer
maybe-distclean-target-libsanitizer:
@if target-libsanitizer
maybe-distclean-target-libsanitizer: distclean-target-libsanitizer

distclean-target-libsanitizer: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libsanitizer"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libsanitizer && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libsanitizer

.PHONY: maybe-maintainer-clean-target-libsanitizer maintainer-clean-target-libsanitizer
maybe-maintainer-clean-target-libsanitizer:
@if target-libsanitizer
maybe-maintainer-clean-target-libsanitizer: maintainer-clean-target-libsanitizer

maintainer-clean-target-libsanitizer: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libsanitizer/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libsanitizer"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libsanitizer && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libsanitizer





.PHONY: configure-target-libvtv maybe-configure-target-libvtv
maybe-configure-target-libvtv:
@if gcc-bootstrap
configure-target-libvtv: stage_current
@endif gcc-bootstrap
@if target-libvtv
maybe-configure-target-libvtv: configure-target-libvtv
configure-target-libvtv: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libvtv..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libvtv/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libvtv/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libvtv/Makefile; \
	    mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libvtv/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv; \
	$(RAW_CXX_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libvtv; \
	cd "$(TARGET_SUBDIR)/libvtv" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libvtv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libvtv; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libvtv



.PHONY: configure-stage1-target-libvtv maybe-configure-stage1-target-libvtv
maybe-configure-stage1-target-libvtv:
@if target-libvtv-bootstrap
maybe-configure-stage1-target-libvtv: configure-stage1-target-libvtv
configure-stage1-target-libvtv:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	echo "Checking multilib configuration for libvtv..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libvtv/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libvtv/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libvtv/Makefile; \
	    mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libvtv/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(TARGET_SUBDIR)/libvtv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv; \
	cd $(TARGET_SUBDIR)/libvtv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libvtv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libvtv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif target-libvtv-bootstrap

.PHONY: configure-stage2-target-libvtv maybe-configure-stage2-target-libvtv
maybe-configure-stage2-target-libvtv:
@if target-libvtv-bootstrap
maybe-configure-stage2-target-libvtv: configure-stage2-target-libvtv
configure-stage2-target-libvtv:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	echo "Checking multilib configuration for libvtv..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libvtv/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libvtv/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libvtv/Makefile; \
	    mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libvtv/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(TARGET_SUBDIR)/libvtv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv; \
	cd $(TARGET_SUBDIR)/libvtv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libvtv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libvtv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS)
@endif target-libvtv-bootstrap

.PHONY: configure-stage3-target-libvtv maybe-configure-stage3-target-libvtv
maybe-configure-stage3-target-libvtv:
@if target-libvtv-bootstrap
maybe-configure-stage3-target-libvtv: configure-stage3-target-libvtv
configure-stage3-target-libvtv:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	echo "Checking multilib configuration for libvtv..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libvtv/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libvtv/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libvtv/Makefile; \
	    mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libvtv/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(TARGET_SUBDIR)/libvtv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv; \
	cd $(TARGET_SUBDIR)/libvtv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libvtv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libvtv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS)
@endif target-libvtv-bootstrap

.PHONY: configure-stage4-target-libvtv maybe-configure-stage4-target-libvtv
maybe-configure-stage4-target-libvtv:
@if target-libvtv-bootstrap
maybe-configure-stage4-target-libvtv: configure-stage4-target-libvtv
configure-stage4-target-libvtv:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	echo "Checking multilib configuration for libvtv..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libvtv/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libvtv/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libvtv/Makefile; \
	    mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libvtv/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(TARGET_SUBDIR)/libvtv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv; \
	cd $(TARGET_SUBDIR)/libvtv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libvtv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libvtv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS)
@endif target-libvtv-bootstrap

.PHONY: configure-stageprofile-target-libvtv maybe-configure-stageprofile-target-libvtv
maybe-configure-stageprofile-target-libvtv:
@if target-libvtv-bootstrap
maybe-configure-stageprofile-target-libvtv: configure-stageprofile-target-libvtv
configure-stageprofile-target-libvtv:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	echo "Checking multilib configuration for libvtv..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libvtv/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libvtv/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libvtv/Makefile; \
	    mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libvtv/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(TARGET_SUBDIR)/libvtv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv; \
	cd $(TARGET_SUBDIR)/libvtv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libvtv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libvtv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS)
@endif target-libvtv-bootstrap

.PHONY: configure-stagetrain-target-libvtv maybe-configure-stagetrain-target-libvtv
maybe-configure-stagetrain-target-libvtv:
@if target-libvtv-bootstrap
maybe-configure-stagetrain-target-libvtv: configure-stagetrain-target-libvtv
configure-stagetrain-target-libvtv:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	echo "Checking multilib configuration for libvtv..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libvtv/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libvtv/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libvtv/Makefile; \
	    mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libvtv/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(TARGET_SUBDIR)/libvtv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv; \
	cd $(TARGET_SUBDIR)/libvtv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libvtv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libvtv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS)
@endif target-libvtv-bootstrap

.PHONY: configure-stagefeedback-target-libvtv maybe-configure-stagefeedback-target-libvtv
maybe-configure-stagefeedback-target-libvtv:
@if target-libvtv-bootstrap
maybe-configure-stagefeedback-target-libvtv: configure-stagefeedback-target-libvtv
configure-stagefeedback-target-libvtv:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	echo "Checking multilib configuration for libvtv..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libvtv/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libvtv/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libvtv/Makefile; \
	    mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libvtv/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(TARGET_SUBDIR)/libvtv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv; \
	cd $(TARGET_SUBDIR)/libvtv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libvtv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libvtv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS)
@endif target-libvtv-bootstrap

.PHONY: configure-stageautoprofile-target-libvtv maybe-configure-stageautoprofile-target-libvtv
maybe-configure-stageautoprofile-target-libvtv:
@if target-libvtv-bootstrap
maybe-configure-stageautoprofile-target-libvtv: configure-stageautoprofile-target-libvtv
configure-stageautoprofile-target-libvtv:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	echo "Checking multilib configuration for libvtv..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libvtv/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libvtv/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libvtv/Makefile; \
	    mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libvtv/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(TARGET_SUBDIR)/libvtv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv; \
	cd $(TARGET_SUBDIR)/libvtv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libvtv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libvtv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS)
@endif target-libvtv-bootstrap

.PHONY: configure-stageautofeedback-target-libvtv maybe-configure-stageautofeedback-target-libvtv
maybe-configure-stageautofeedback-target-libvtv:
@if target-libvtv-bootstrap
maybe-configure-stageautofeedback-target-libvtv: configure-stageautofeedback-target-libvtv
configure-stageautofeedback-target-libvtv:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	echo "Checking multilib configuration for libvtv..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libvtv/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libvtv/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libvtv/Makefile; \
	    mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libvtv/multilib.tmp $(TARGET_SUBDIR)/libvtv/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libvtv/Makefile || exit 0; \
	$(RAW_CXX_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(TARGET_SUBDIR)/libvtv; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libvtv; \
	cd $(TARGET_SUBDIR)/libvtv || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libvtv/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libvtv; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS)
@endif target-libvtv-bootstrap





.PHONY: all-target-libvtv maybe-all-target-libvtv
maybe-all-target-libvtv:
@if gcc-bootstrap
all-target-libvtv: stage_current
@endif gcc-bootstrap
@if target-libvtv
TARGET-target-libvtv=all
maybe-all-target-libvtv: all-target-libvtv
all-target-libvtv: configure-target-libvtv
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libvtv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		$(TARGET-target-libvtv))
@endif target-libvtv



.PHONY: all-stage1-target-libvtv maybe-all-stage1-target-libvtv
.PHONY: clean-stage1-target-libvtv maybe-clean-stage1-target-libvtv
maybe-all-stage1-target-libvtv:
maybe-clean-stage1-target-libvtv:
@if target-libvtv-bootstrap
maybe-all-stage1-target-libvtv: all-stage1-target-libvtv
all-stage1: all-stage1-target-libvtv
TARGET-stage1-target-libvtv = $(TARGET-target-libvtv)
all-stage1-target-libvtv: configure-stage1-target-libvtv
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS)  \
	cd $(TARGET_SUBDIR)/libvtv && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  \
		  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-target-libvtv)

maybe-clean-stage1-target-libvtv: clean-stage1-target-libvtv
clean-stage1: clean-stage1-target-libvtv
clean-stage1-target-libvtv:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage1-libvtv/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libvtv && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'  \
	  clean
@endif target-libvtv-bootstrap


.PHONY: all-stage2-target-libvtv maybe-all-stage2-target-libvtv
.PHONY: clean-stage2-target-libvtv maybe-clean-stage2-target-libvtv
maybe-all-stage2-target-libvtv:
maybe-clean-stage2-target-libvtv:
@if target-libvtv-bootstrap
maybe-all-stage2-target-libvtv: all-stage2-target-libvtv
all-stage2: all-stage2-target-libvtv
TARGET-stage2-target-libvtv = $(TARGET-target-libvtv)
all-stage2-target-libvtv: configure-stage2-target-libvtv
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libvtv && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-target-libvtv)

maybe-clean-stage2-target-libvtv: clean-stage2-target-libvtv
clean-stage2: clean-stage2-target-libvtv
clean-stage2-target-libvtv:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage2-libvtv/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libvtv && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libvtv-bootstrap


.PHONY: all-stage3-target-libvtv maybe-all-stage3-target-libvtv
.PHONY: clean-stage3-target-libvtv maybe-clean-stage3-target-libvtv
maybe-all-stage3-target-libvtv:
maybe-clean-stage3-target-libvtv:
@if target-libvtv-bootstrap
maybe-all-stage3-target-libvtv: all-stage3-target-libvtv
all-stage3: all-stage3-target-libvtv
TARGET-stage3-target-libvtv = $(TARGET-target-libvtv)
all-stage3-target-libvtv: configure-stage3-target-libvtv
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libvtv && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-target-libvtv)

maybe-clean-stage3-target-libvtv: clean-stage3-target-libvtv
clean-stage3: clean-stage3-target-libvtv
clean-stage3-target-libvtv:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage3-libvtv/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libvtv && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libvtv-bootstrap


.PHONY: all-stage4-target-libvtv maybe-all-stage4-target-libvtv
.PHONY: clean-stage4-target-libvtv maybe-clean-stage4-target-libvtv
maybe-all-stage4-target-libvtv:
maybe-clean-stage4-target-libvtv:
@if target-libvtv-bootstrap
maybe-all-stage4-target-libvtv: all-stage4-target-libvtv
all-stage4: all-stage4-target-libvtv
TARGET-stage4-target-libvtv = $(TARGET-target-libvtv)
all-stage4-target-libvtv: configure-stage4-target-libvtv
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libvtv && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-target-libvtv)

maybe-clean-stage4-target-libvtv: clean-stage4-target-libvtv
clean-stage4: clean-stage4-target-libvtv
clean-stage4-target-libvtv:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage4-libvtv/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libvtv && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libvtv-bootstrap


.PHONY: all-stageprofile-target-libvtv maybe-all-stageprofile-target-libvtv
.PHONY: clean-stageprofile-target-libvtv maybe-clean-stageprofile-target-libvtv
maybe-all-stageprofile-target-libvtv:
maybe-clean-stageprofile-target-libvtv:
@if target-libvtv-bootstrap
maybe-all-stageprofile-target-libvtv: all-stageprofile-target-libvtv
all-stageprofile: all-stageprofile-target-libvtv
TARGET-stageprofile-target-libvtv = $(TARGET-target-libvtv)
all-stageprofile-target-libvtv: configure-stageprofile-target-libvtv
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libvtv && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-target-libvtv)

maybe-clean-stageprofile-target-libvtv: clean-stageprofile-target-libvtv
clean-stageprofile: clean-stageprofile-target-libvtv
clean-stageprofile-target-libvtv:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageprofile-libvtv/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libvtv && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libvtv-bootstrap


.PHONY: all-stagetrain-target-libvtv maybe-all-stagetrain-target-libvtv
.PHONY: clean-stagetrain-target-libvtv maybe-clean-stagetrain-target-libvtv
maybe-all-stagetrain-target-libvtv:
maybe-clean-stagetrain-target-libvtv:
@if target-libvtv-bootstrap
maybe-all-stagetrain-target-libvtv: all-stagetrain-target-libvtv
all-stagetrain: all-stagetrain-target-libvtv
TARGET-stagetrain-target-libvtv = $(TARGET-target-libvtv)
all-stagetrain-target-libvtv: configure-stagetrain-target-libvtv
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libvtv && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-target-libvtv)

maybe-clean-stagetrain-target-libvtv: clean-stagetrain-target-libvtv
clean-stagetrain: clean-stagetrain-target-libvtv
clean-stagetrain-target-libvtv:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagetrain-libvtv/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libvtv && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libvtv-bootstrap


.PHONY: all-stagefeedback-target-libvtv maybe-all-stagefeedback-target-libvtv
.PHONY: clean-stagefeedback-target-libvtv maybe-clean-stagefeedback-target-libvtv
maybe-all-stagefeedback-target-libvtv:
maybe-clean-stagefeedback-target-libvtv:
@if target-libvtv-bootstrap
maybe-all-stagefeedback-target-libvtv: all-stagefeedback-target-libvtv
all-stagefeedback: all-stagefeedback-target-libvtv
TARGET-stagefeedback-target-libvtv = $(TARGET-target-libvtv)
all-stagefeedback-target-libvtv: configure-stagefeedback-target-libvtv
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libvtv && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-target-libvtv)

maybe-clean-stagefeedback-target-libvtv: clean-stagefeedback-target-libvtv
clean-stagefeedback: clean-stagefeedback-target-libvtv
clean-stagefeedback-target-libvtv:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagefeedback-libvtv/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libvtv && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libvtv-bootstrap


.PHONY: all-stageautoprofile-target-libvtv maybe-all-stageautoprofile-target-libvtv
.PHONY: clean-stageautoprofile-target-libvtv maybe-clean-stageautoprofile-target-libvtv
maybe-all-stageautoprofile-target-libvtv:
maybe-clean-stageautoprofile-target-libvtv:
@if target-libvtv-bootstrap
maybe-all-stageautoprofile-target-libvtv: all-stageautoprofile-target-libvtv
all-stageautoprofile: all-stageautoprofile-target-libvtv
TARGET-stageautoprofile-target-libvtv = $(TARGET-target-libvtv)
all-stageautoprofile-target-libvtv: configure-stageautoprofile-target-libvtv
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libvtv && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-target-libvtv)

maybe-clean-stageautoprofile-target-libvtv: clean-stageautoprofile-target-libvtv
clean-stageautoprofile: clean-stageautoprofile-target-libvtv
clean-stageautoprofile-target-libvtv:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautoprofile-libvtv/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libvtv && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libvtv-bootstrap


.PHONY: all-stageautofeedback-target-libvtv maybe-all-stageautofeedback-target-libvtv
.PHONY: clean-stageautofeedback-target-libvtv maybe-clean-stageautofeedback-target-libvtv
maybe-all-stageautofeedback-target-libvtv:
maybe-clean-stageautofeedback-target-libvtv:
@if target-libvtv-bootstrap
maybe-all-stageautofeedback-target-libvtv: all-stageautofeedback-target-libvtv
all-stageautofeedback: all-stageautofeedback-target-libvtv
TARGET-stageautofeedback-target-libvtv = $(TARGET-target-libvtv)
all-stageautofeedback-target-libvtv: configure-stageautofeedback-target-libvtv
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(RAW_CXX_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libvtv && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-target-libvtv)

maybe-clean-stageautofeedback-target-libvtv: clean-stageautofeedback-target-libvtv
clean-stageautofeedback: clean-stageautofeedback-target-libvtv
clean-stageautofeedback-target-libvtv:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautofeedback-libvtv/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libvtv && \
	$(MAKE) $(EXTRA_TARGET_FLAGS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   clean
@endif target-libvtv-bootstrap






.PHONY: check-target-libvtv maybe-check-target-libvtv
maybe-check-target-libvtv:
@if target-libvtv
maybe-check-target-libvtv: check-target-libvtv

check-target-libvtv:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libvtv && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)'   check)

@endif target-libvtv

.PHONY: install-target-libvtv maybe-install-target-libvtv
maybe-install-target-libvtv:
@if target-libvtv
maybe-install-target-libvtv: install-target-libvtv

install-target-libvtv: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libvtv && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libvtv

.PHONY: install-strip-target-libvtv maybe-install-strip-target-libvtv
maybe-install-strip-target-libvtv:
@if target-libvtv
maybe-install-strip-target-libvtv: install-strip-target-libvtv

install-strip-target-libvtv: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libvtv && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libvtv

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libvtv info-target-libvtv
maybe-info-target-libvtv:
@if target-libvtv
maybe-info-target-libvtv: info-target-libvtv

info-target-libvtv: \
    configure-target-libvtv 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libvtv"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libvtv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libvtv

.PHONY: maybe-dvi-target-libvtv dvi-target-libvtv
maybe-dvi-target-libvtv:
@if target-libvtv
maybe-dvi-target-libvtv: dvi-target-libvtv

dvi-target-libvtv: \
    configure-target-libvtv 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libvtv"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libvtv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libvtv

.PHONY: maybe-pdf-target-libvtv pdf-target-libvtv
maybe-pdf-target-libvtv:
@if target-libvtv
maybe-pdf-target-libvtv: pdf-target-libvtv

pdf-target-libvtv: \
    configure-target-libvtv 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libvtv"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libvtv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libvtv

.PHONY: maybe-html-target-libvtv html-target-libvtv
maybe-html-target-libvtv:
@if target-libvtv
maybe-html-target-libvtv: html-target-libvtv

html-target-libvtv: \
    configure-target-libvtv 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libvtv"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libvtv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libvtv

.PHONY: maybe-TAGS-target-libvtv TAGS-target-libvtv
maybe-TAGS-target-libvtv:
@if target-libvtv
maybe-TAGS-target-libvtv: TAGS-target-libvtv

TAGS-target-libvtv: \
    configure-target-libvtv 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libvtv"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libvtv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libvtv

.PHONY: maybe-install-info-target-libvtv install-info-target-libvtv
maybe-install-info-target-libvtv:
@if target-libvtv
maybe-install-info-target-libvtv: install-info-target-libvtv

install-info-target-libvtv: \
    configure-target-libvtv \
    info-target-libvtv 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libvtv"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libvtv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libvtv

.PHONY: maybe-install-pdf-target-libvtv install-pdf-target-libvtv
maybe-install-pdf-target-libvtv:
@if target-libvtv
maybe-install-pdf-target-libvtv: install-pdf-target-libvtv

install-pdf-target-libvtv: \
    configure-target-libvtv \
    pdf-target-libvtv 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libvtv"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libvtv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libvtv

.PHONY: maybe-install-html-target-libvtv install-html-target-libvtv
maybe-install-html-target-libvtv:
@if target-libvtv
maybe-install-html-target-libvtv: install-html-target-libvtv

install-html-target-libvtv: \
    configure-target-libvtv \
    html-target-libvtv 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libvtv"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libvtv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libvtv

.PHONY: maybe-installcheck-target-libvtv installcheck-target-libvtv
maybe-installcheck-target-libvtv:
@if target-libvtv
maybe-installcheck-target-libvtv: installcheck-target-libvtv

installcheck-target-libvtv: \
    configure-target-libvtv 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libvtv"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libvtv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libvtv

.PHONY: maybe-mostlyclean-target-libvtv mostlyclean-target-libvtv
maybe-mostlyclean-target-libvtv:
@if target-libvtv
maybe-mostlyclean-target-libvtv: mostlyclean-target-libvtv

mostlyclean-target-libvtv: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libvtv"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libvtv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libvtv

.PHONY: maybe-clean-target-libvtv clean-target-libvtv
maybe-clean-target-libvtv:
@if target-libvtv
maybe-clean-target-libvtv: clean-target-libvtv

clean-target-libvtv: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libvtv"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libvtv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libvtv

.PHONY: maybe-distclean-target-libvtv distclean-target-libvtv
maybe-distclean-target-libvtv:
@if target-libvtv
maybe-distclean-target-libvtv: distclean-target-libvtv

distclean-target-libvtv: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libvtv"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libvtv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libvtv

.PHONY: maybe-maintainer-clean-target-libvtv maintainer-clean-target-libvtv
maybe-maintainer-clean-target-libvtv:
@if target-libvtv
maybe-maintainer-clean-target-libvtv: maintainer-clean-target-libvtv

maintainer-clean-target-libvtv: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libvtv/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(RAW_CXX_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libvtv"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libvtv && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libvtv





.PHONY: configure-target-liboffloadmic maybe-configure-target-liboffloadmic
maybe-configure-target-liboffloadmic:
@if gcc-bootstrap
configure-target-liboffloadmic: stage_current
@endif gcc-bootstrap
@if target-liboffloadmic
maybe-configure-target-liboffloadmic: configure-target-liboffloadmic
configure-target-liboffloadmic: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for liboffloadmic..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/liboffloadmic; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/liboffloadmic/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/liboffloadmic/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/liboffloadmic/multilib.tmp $(TARGET_SUBDIR)/liboffloadmic/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/liboffloadmic/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/liboffloadmic/Makefile; \
	    mv $(TARGET_SUBDIR)/liboffloadmic/multilib.tmp $(TARGET_SUBDIR)/liboffloadmic/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/liboffloadmic/multilib.tmp $(TARGET_SUBDIR)/liboffloadmic/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/liboffloadmic/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/liboffloadmic; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/liboffloadmic; \
	cd "$(TARGET_SUBDIR)/liboffloadmic" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/liboffloadmic/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=liboffloadmic; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} @extra_liboffloadmic_configure_flags@ \
	  || exit 1
@endif target-liboffloadmic





.PHONY: all-target-liboffloadmic maybe-all-target-liboffloadmic
maybe-all-target-liboffloadmic:
@if gcc-bootstrap
all-target-liboffloadmic: stage_current
@endif gcc-bootstrap
@if target-liboffloadmic
TARGET-target-liboffloadmic=all
maybe-all-target-liboffloadmic: all-target-liboffloadmic
all-target-liboffloadmic: configure-target-liboffloadmic
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/liboffloadmic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-liboffloadmic))
@endif target-liboffloadmic





.PHONY: check-target-liboffloadmic maybe-check-target-liboffloadmic
maybe-check-target-liboffloadmic:
@if target-liboffloadmic
maybe-check-target-liboffloadmic: check-target-liboffloadmic

check-target-liboffloadmic:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/liboffloadmic && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-liboffloadmic

.PHONY: install-target-liboffloadmic maybe-install-target-liboffloadmic
maybe-install-target-liboffloadmic:
@if target-liboffloadmic
maybe-install-target-liboffloadmic: install-target-liboffloadmic

install-target-liboffloadmic: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/liboffloadmic && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-liboffloadmic

.PHONY: install-strip-target-liboffloadmic maybe-install-strip-target-liboffloadmic
maybe-install-strip-target-liboffloadmic:
@if target-liboffloadmic
maybe-install-strip-target-liboffloadmic: install-strip-target-liboffloadmic

install-strip-target-liboffloadmic: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/liboffloadmic && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-liboffloadmic

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-liboffloadmic info-target-liboffloadmic
maybe-info-target-liboffloadmic:
@if target-liboffloadmic
maybe-info-target-liboffloadmic: info-target-liboffloadmic

info-target-liboffloadmic: \
    configure-target-liboffloadmic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/liboffloadmic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/liboffloadmic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-liboffloadmic

.PHONY: maybe-dvi-target-liboffloadmic dvi-target-liboffloadmic
maybe-dvi-target-liboffloadmic:
@if target-liboffloadmic
maybe-dvi-target-liboffloadmic: dvi-target-liboffloadmic

dvi-target-liboffloadmic: \
    configure-target-liboffloadmic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/liboffloadmic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/liboffloadmic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-liboffloadmic

.PHONY: maybe-pdf-target-liboffloadmic pdf-target-liboffloadmic
maybe-pdf-target-liboffloadmic:
@if target-liboffloadmic
maybe-pdf-target-liboffloadmic: pdf-target-liboffloadmic

pdf-target-liboffloadmic: \
    configure-target-liboffloadmic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/liboffloadmic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/liboffloadmic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-liboffloadmic

.PHONY: maybe-html-target-liboffloadmic html-target-liboffloadmic
maybe-html-target-liboffloadmic:
@if target-liboffloadmic
maybe-html-target-liboffloadmic: html-target-liboffloadmic

html-target-liboffloadmic: \
    configure-target-liboffloadmic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/liboffloadmic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/liboffloadmic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-liboffloadmic

.PHONY: maybe-TAGS-target-liboffloadmic TAGS-target-liboffloadmic
maybe-TAGS-target-liboffloadmic:
@if target-liboffloadmic
maybe-TAGS-target-liboffloadmic: TAGS-target-liboffloadmic

TAGS-target-liboffloadmic: \
    configure-target-liboffloadmic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/liboffloadmic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/liboffloadmic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-liboffloadmic

.PHONY: maybe-install-info-target-liboffloadmic install-info-target-liboffloadmic
maybe-install-info-target-liboffloadmic:
@if target-liboffloadmic
maybe-install-info-target-liboffloadmic: install-info-target-liboffloadmic

install-info-target-liboffloadmic: \
    configure-target-liboffloadmic \
    info-target-liboffloadmic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/liboffloadmic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/liboffloadmic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-liboffloadmic

.PHONY: maybe-install-pdf-target-liboffloadmic install-pdf-target-liboffloadmic
maybe-install-pdf-target-liboffloadmic:
@if target-liboffloadmic
maybe-install-pdf-target-liboffloadmic: install-pdf-target-liboffloadmic

install-pdf-target-liboffloadmic: \
    configure-target-liboffloadmic \
    pdf-target-liboffloadmic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/liboffloadmic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/liboffloadmic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-liboffloadmic

.PHONY: maybe-install-html-target-liboffloadmic install-html-target-liboffloadmic
maybe-install-html-target-liboffloadmic:
@if target-liboffloadmic
maybe-install-html-target-liboffloadmic: install-html-target-liboffloadmic

install-html-target-liboffloadmic: \
    configure-target-liboffloadmic \
    html-target-liboffloadmic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/liboffloadmic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/liboffloadmic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-liboffloadmic

.PHONY: maybe-installcheck-target-liboffloadmic installcheck-target-liboffloadmic
maybe-installcheck-target-liboffloadmic:
@if target-liboffloadmic
maybe-installcheck-target-liboffloadmic: installcheck-target-liboffloadmic

installcheck-target-liboffloadmic: \
    configure-target-liboffloadmic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/liboffloadmic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/liboffloadmic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-liboffloadmic

.PHONY: maybe-mostlyclean-target-liboffloadmic mostlyclean-target-liboffloadmic
maybe-mostlyclean-target-liboffloadmic:
@if target-liboffloadmic
maybe-mostlyclean-target-liboffloadmic: mostlyclean-target-liboffloadmic

mostlyclean-target-liboffloadmic: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/liboffloadmic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/liboffloadmic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-liboffloadmic

.PHONY: maybe-clean-target-liboffloadmic clean-target-liboffloadmic
maybe-clean-target-liboffloadmic:
@if target-liboffloadmic
maybe-clean-target-liboffloadmic: clean-target-liboffloadmic

clean-target-liboffloadmic: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/liboffloadmic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/liboffloadmic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-liboffloadmic

.PHONY: maybe-distclean-target-liboffloadmic distclean-target-liboffloadmic
maybe-distclean-target-liboffloadmic:
@if target-liboffloadmic
maybe-distclean-target-liboffloadmic: distclean-target-liboffloadmic

distclean-target-liboffloadmic: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/liboffloadmic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/liboffloadmic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-liboffloadmic

.PHONY: maybe-maintainer-clean-target-liboffloadmic maintainer-clean-target-liboffloadmic
maybe-maintainer-clean-target-liboffloadmic:
@if target-liboffloadmic
maybe-maintainer-clean-target-liboffloadmic: maintainer-clean-target-liboffloadmic

maintainer-clean-target-liboffloadmic: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/liboffloadmic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/liboffloadmic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-liboffloadmic





.PHONY: configure-target-libssp maybe-configure-target-libssp
maybe-configure-target-libssp:
@if gcc-bootstrap
configure-target-libssp: stage_current
@endif gcc-bootstrap
@if target-libssp
maybe-configure-target-libssp: configure-target-libssp
configure-target-libssp: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libssp..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libssp; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libssp/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libssp/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libssp/multilib.tmp $(TARGET_SUBDIR)/libssp/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libssp/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libssp/Makefile; \
	    mv $(TARGET_SUBDIR)/libssp/multilib.tmp $(TARGET_SUBDIR)/libssp/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libssp/multilib.tmp $(TARGET_SUBDIR)/libssp/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libssp/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libssp; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libssp; \
	cd "$(TARGET_SUBDIR)/libssp" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libssp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libssp; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libssp





.PHONY: all-target-libssp maybe-all-target-libssp
maybe-all-target-libssp:
@if gcc-bootstrap
all-target-libssp: stage_current
@endif gcc-bootstrap
@if target-libssp
TARGET-target-libssp=all
maybe-all-target-libssp: all-target-libssp
all-target-libssp: configure-target-libssp
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libssp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-libssp))
@endif target-libssp





.PHONY: check-target-libssp maybe-check-target-libssp
maybe-check-target-libssp:
@if target-libssp
maybe-check-target-libssp: check-target-libssp

check-target-libssp:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libssp && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-libssp

.PHONY: install-target-libssp maybe-install-target-libssp
maybe-install-target-libssp:
@if target-libssp
maybe-install-target-libssp: install-target-libssp

install-target-libssp: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libssp && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libssp

.PHONY: install-strip-target-libssp maybe-install-strip-target-libssp
maybe-install-strip-target-libssp:
@if target-libssp
maybe-install-strip-target-libssp: install-strip-target-libssp

install-strip-target-libssp: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libssp && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libssp

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libssp info-target-libssp
maybe-info-target-libssp:
@if target-libssp
maybe-info-target-libssp: info-target-libssp

info-target-libssp: \
    configure-target-libssp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libssp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libssp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libssp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libssp

.PHONY: maybe-dvi-target-libssp dvi-target-libssp
maybe-dvi-target-libssp:
@if target-libssp
maybe-dvi-target-libssp: dvi-target-libssp

dvi-target-libssp: \
    configure-target-libssp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libssp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libssp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libssp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libssp

.PHONY: maybe-pdf-target-libssp pdf-target-libssp
maybe-pdf-target-libssp:
@if target-libssp
maybe-pdf-target-libssp: pdf-target-libssp

pdf-target-libssp: \
    configure-target-libssp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libssp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libssp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libssp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libssp

.PHONY: maybe-html-target-libssp html-target-libssp
maybe-html-target-libssp:
@if target-libssp
maybe-html-target-libssp: html-target-libssp

html-target-libssp: \
    configure-target-libssp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libssp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libssp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libssp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libssp

.PHONY: maybe-TAGS-target-libssp TAGS-target-libssp
maybe-TAGS-target-libssp:
@if target-libssp
maybe-TAGS-target-libssp: TAGS-target-libssp

TAGS-target-libssp: \
    configure-target-libssp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libssp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libssp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libssp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libssp

.PHONY: maybe-install-info-target-libssp install-info-target-libssp
maybe-install-info-target-libssp:
@if target-libssp
maybe-install-info-target-libssp: install-info-target-libssp

install-info-target-libssp: \
    configure-target-libssp \
    info-target-libssp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libssp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libssp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libssp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libssp

.PHONY: maybe-install-pdf-target-libssp install-pdf-target-libssp
maybe-install-pdf-target-libssp:
@if target-libssp
maybe-install-pdf-target-libssp: install-pdf-target-libssp

install-pdf-target-libssp: \
    configure-target-libssp \
    pdf-target-libssp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libssp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libssp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libssp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libssp

.PHONY: maybe-install-html-target-libssp install-html-target-libssp
maybe-install-html-target-libssp:
@if target-libssp
maybe-install-html-target-libssp: install-html-target-libssp

install-html-target-libssp: \
    configure-target-libssp \
    html-target-libssp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libssp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libssp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libssp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libssp

.PHONY: maybe-installcheck-target-libssp installcheck-target-libssp
maybe-installcheck-target-libssp:
@if target-libssp
maybe-installcheck-target-libssp: installcheck-target-libssp

installcheck-target-libssp: \
    configure-target-libssp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libssp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libssp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libssp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libssp

.PHONY: maybe-mostlyclean-target-libssp mostlyclean-target-libssp
maybe-mostlyclean-target-libssp:
@if target-libssp
maybe-mostlyclean-target-libssp: mostlyclean-target-libssp

mostlyclean-target-libssp: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libssp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libssp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libssp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libssp

.PHONY: maybe-clean-target-libssp clean-target-libssp
maybe-clean-target-libssp:
@if target-libssp
maybe-clean-target-libssp: clean-target-libssp

clean-target-libssp: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libssp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libssp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libssp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libssp

.PHONY: maybe-distclean-target-libssp distclean-target-libssp
maybe-distclean-target-libssp:
@if target-libssp
maybe-distclean-target-libssp: distclean-target-libssp

distclean-target-libssp: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libssp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libssp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libssp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libssp

.PHONY: maybe-maintainer-clean-target-libssp maintainer-clean-target-libssp
maybe-maintainer-clean-target-libssp:
@if target-libssp
maybe-maintainer-clean-target-libssp: maintainer-clean-target-libssp

maintainer-clean-target-libssp: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libssp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libssp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libssp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libssp





.PHONY: configure-target-newlib maybe-configure-target-newlib
maybe-configure-target-newlib:
@if gcc-bootstrap
configure-target-newlib: stage_current
@endif gcc-bootstrap
@if target-newlib
maybe-configure-target-newlib: configure-target-newlib
configure-target-newlib: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for newlib..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/newlib; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/newlib/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/newlib/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/newlib/multilib.tmp $(TARGET_SUBDIR)/newlib/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/newlib/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/newlib/Makefile; \
	    mv $(TARGET_SUBDIR)/newlib/multilib.tmp $(TARGET_SUBDIR)/newlib/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/newlib/multilib.tmp $(TARGET_SUBDIR)/newlib/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/newlib/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/newlib; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/newlib; \
	cd "$(TARGET_SUBDIR)/newlib" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/newlib/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=newlib; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-newlib





.PHONY: all-target-newlib maybe-all-target-newlib
maybe-all-target-newlib:
@if gcc-bootstrap
all-target-newlib: stage_current
@endif gcc-bootstrap
@if target-newlib
TARGET-target-newlib=all
maybe-all-target-newlib: all-target-newlib
all-target-newlib: configure-target-newlib
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/newlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-newlib))
@endif target-newlib





.PHONY: check-target-newlib maybe-check-target-newlib
maybe-check-target-newlib:
@if target-newlib
maybe-check-target-newlib: check-target-newlib

check-target-newlib:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/newlib && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-newlib

.PHONY: install-target-newlib maybe-install-target-newlib
maybe-install-target-newlib:
@if target-newlib
maybe-install-target-newlib: install-target-newlib

install-target-newlib: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/newlib && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-newlib

.PHONY: install-strip-target-newlib maybe-install-strip-target-newlib
maybe-install-strip-target-newlib:
@if target-newlib
maybe-install-strip-target-newlib: install-strip-target-newlib

install-strip-target-newlib: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/newlib && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-newlib

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-newlib info-target-newlib
maybe-info-target-newlib:
@if target-newlib
maybe-info-target-newlib: info-target-newlib

info-target-newlib: \
    configure-target-newlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/newlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/newlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-newlib

.PHONY: maybe-dvi-target-newlib dvi-target-newlib
maybe-dvi-target-newlib:
@if target-newlib
maybe-dvi-target-newlib: dvi-target-newlib

dvi-target-newlib: \
    configure-target-newlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/newlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/newlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-newlib

.PHONY: maybe-pdf-target-newlib pdf-target-newlib
maybe-pdf-target-newlib:
@if target-newlib
maybe-pdf-target-newlib: pdf-target-newlib

pdf-target-newlib: \
    configure-target-newlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/newlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/newlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-newlib

.PHONY: maybe-html-target-newlib html-target-newlib
maybe-html-target-newlib:
@if target-newlib
maybe-html-target-newlib: html-target-newlib

html-target-newlib: \
    configure-target-newlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/newlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/newlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-newlib

.PHONY: maybe-TAGS-target-newlib TAGS-target-newlib
maybe-TAGS-target-newlib:
@if target-newlib
maybe-TAGS-target-newlib: TAGS-target-newlib

TAGS-target-newlib: \
    configure-target-newlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/newlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/newlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-newlib

.PHONY: maybe-install-info-target-newlib install-info-target-newlib
maybe-install-info-target-newlib:
@if target-newlib
maybe-install-info-target-newlib: install-info-target-newlib

install-info-target-newlib: \
    configure-target-newlib \
    info-target-newlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/newlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/newlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-newlib

.PHONY: maybe-install-pdf-target-newlib install-pdf-target-newlib
maybe-install-pdf-target-newlib:
@if target-newlib
maybe-install-pdf-target-newlib: install-pdf-target-newlib

install-pdf-target-newlib: \
    configure-target-newlib \
    pdf-target-newlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/newlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/newlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-newlib

.PHONY: maybe-install-html-target-newlib install-html-target-newlib
maybe-install-html-target-newlib:
@if target-newlib
maybe-install-html-target-newlib: install-html-target-newlib

install-html-target-newlib: \
    configure-target-newlib \
    html-target-newlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/newlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/newlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-newlib

.PHONY: maybe-installcheck-target-newlib installcheck-target-newlib
maybe-installcheck-target-newlib:
@if target-newlib
maybe-installcheck-target-newlib: installcheck-target-newlib

installcheck-target-newlib: \
    configure-target-newlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/newlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/newlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-newlib

.PHONY: maybe-mostlyclean-target-newlib mostlyclean-target-newlib
maybe-mostlyclean-target-newlib:
@if target-newlib
maybe-mostlyclean-target-newlib: mostlyclean-target-newlib

mostlyclean-target-newlib: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/newlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/newlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-newlib

.PHONY: maybe-clean-target-newlib clean-target-newlib
maybe-clean-target-newlib:
@if target-newlib
maybe-clean-target-newlib: clean-target-newlib

clean-target-newlib: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/newlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/newlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-newlib

.PHONY: maybe-distclean-target-newlib distclean-target-newlib
maybe-distclean-target-newlib:
@if target-newlib
maybe-distclean-target-newlib: distclean-target-newlib

distclean-target-newlib: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/newlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/newlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-newlib

.PHONY: maybe-maintainer-clean-target-newlib maintainer-clean-target-newlib
maybe-maintainer-clean-target-newlib:
@if target-newlib
maybe-maintainer-clean-target-newlib: maintainer-clean-target-newlib

maintainer-clean-target-newlib: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/newlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/newlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/newlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-newlib





.PHONY: configure-target-libgcc maybe-configure-target-libgcc
maybe-configure-target-libgcc:
@if gcc-bootstrap
configure-target-libgcc: stage_current
@endif gcc-bootstrap
@if target-libgcc
maybe-configure-target-libgcc: configure-target-libgcc
configure-target-libgcc: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libgcc..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgcc/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgcc/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgcc/Makefile; \
	    mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libgcc; \
	cd "$(TARGET_SUBDIR)/libgcc" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgcc; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libgcc



.PHONY: configure-stage1-target-libgcc maybe-configure-stage1-target-libgcc
maybe-configure-stage1-target-libgcc:
@if target-libgcc-bootstrap
maybe-configure-stage1-target-libgcc: configure-stage1-target-libgcc
configure-stage1-target-libgcc:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	echo "Checking multilib configuration for libgcc..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgcc/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgcc/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgcc/Makefile; \
	    mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(TARGET_SUBDIR)/libgcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc; \
	cd $(TARGET_SUBDIR)/libgcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif target-libgcc-bootstrap

.PHONY: configure-stage2-target-libgcc maybe-configure-stage2-target-libgcc
maybe-configure-stage2-target-libgcc:
@if target-libgcc-bootstrap
maybe-configure-stage2-target-libgcc: configure-stage2-target-libgcc
configure-stage2-target-libgcc:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	echo "Checking multilib configuration for libgcc..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgcc/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgcc/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgcc/Makefile; \
	    mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(TARGET_SUBDIR)/libgcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc; \
	cd $(TARGET_SUBDIR)/libgcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS)
@endif target-libgcc-bootstrap

.PHONY: configure-stage3-target-libgcc maybe-configure-stage3-target-libgcc
maybe-configure-stage3-target-libgcc:
@if target-libgcc-bootstrap
maybe-configure-stage3-target-libgcc: configure-stage3-target-libgcc
configure-stage3-target-libgcc:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	echo "Checking multilib configuration for libgcc..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgcc/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgcc/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgcc/Makefile; \
	    mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(TARGET_SUBDIR)/libgcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc; \
	cd $(TARGET_SUBDIR)/libgcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS)
@endif target-libgcc-bootstrap

.PHONY: configure-stage4-target-libgcc maybe-configure-stage4-target-libgcc
maybe-configure-stage4-target-libgcc:
@if target-libgcc-bootstrap
maybe-configure-stage4-target-libgcc: configure-stage4-target-libgcc
configure-stage4-target-libgcc:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	echo "Checking multilib configuration for libgcc..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgcc/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgcc/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgcc/Makefile; \
	    mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(TARGET_SUBDIR)/libgcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc; \
	cd $(TARGET_SUBDIR)/libgcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS)
@endif target-libgcc-bootstrap

.PHONY: configure-stageprofile-target-libgcc maybe-configure-stageprofile-target-libgcc
maybe-configure-stageprofile-target-libgcc:
@if target-libgcc-bootstrap
maybe-configure-stageprofile-target-libgcc: configure-stageprofile-target-libgcc
configure-stageprofile-target-libgcc:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	echo "Checking multilib configuration for libgcc..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgcc/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgcc/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgcc/Makefile; \
	    mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(TARGET_SUBDIR)/libgcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc; \
	cd $(TARGET_SUBDIR)/libgcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS)
@endif target-libgcc-bootstrap

.PHONY: configure-stagetrain-target-libgcc maybe-configure-stagetrain-target-libgcc
maybe-configure-stagetrain-target-libgcc:
@if target-libgcc-bootstrap
maybe-configure-stagetrain-target-libgcc: configure-stagetrain-target-libgcc
configure-stagetrain-target-libgcc:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	echo "Checking multilib configuration for libgcc..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgcc/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgcc/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgcc/Makefile; \
	    mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(TARGET_SUBDIR)/libgcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc; \
	cd $(TARGET_SUBDIR)/libgcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS)
@endif target-libgcc-bootstrap

.PHONY: configure-stagefeedback-target-libgcc maybe-configure-stagefeedback-target-libgcc
maybe-configure-stagefeedback-target-libgcc:
@if target-libgcc-bootstrap
maybe-configure-stagefeedback-target-libgcc: configure-stagefeedback-target-libgcc
configure-stagefeedback-target-libgcc:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	echo "Checking multilib configuration for libgcc..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgcc/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgcc/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgcc/Makefile; \
	    mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(TARGET_SUBDIR)/libgcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc; \
	cd $(TARGET_SUBDIR)/libgcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS)
@endif target-libgcc-bootstrap

.PHONY: configure-stageautoprofile-target-libgcc maybe-configure-stageautoprofile-target-libgcc
maybe-configure-stageautoprofile-target-libgcc:
@if target-libgcc-bootstrap
maybe-configure-stageautoprofile-target-libgcc: configure-stageautoprofile-target-libgcc
configure-stageautoprofile-target-libgcc:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	echo "Checking multilib configuration for libgcc..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgcc/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgcc/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgcc/Makefile; \
	    mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(TARGET_SUBDIR)/libgcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc; \
	cd $(TARGET_SUBDIR)/libgcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS)
@endif target-libgcc-bootstrap

.PHONY: configure-stageautofeedback-target-libgcc maybe-configure-stageautofeedback-target-libgcc
maybe-configure-stageautofeedback-target-libgcc:
@if target-libgcc-bootstrap
maybe-configure-stageautofeedback-target-libgcc: configure-stageautofeedback-target-libgcc
configure-stageautofeedback-target-libgcc:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	echo "Checking multilib configuration for libgcc..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgcc/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgcc/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgcc/Makefile; \
	    mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgcc/multilib.tmp $(TARGET_SUBDIR)/libgcc/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgcc/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(TARGET_SUBDIR)/libgcc; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcc; \
	cd $(TARGET_SUBDIR)/libgcc || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgcc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgcc; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS)
@endif target-libgcc-bootstrap





.PHONY: all-target-libgcc maybe-all-target-libgcc
maybe-all-target-libgcc:
@if gcc-bootstrap
all-target-libgcc: stage_current
@endif gcc-bootstrap
@if target-libgcc
TARGET-target-libgcc=all
maybe-all-target-libgcc: all-target-libgcc
all-target-libgcc: configure-target-libgcc
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libgcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-libgcc))
@endif target-libgcc



.PHONY: all-stage1-target-libgcc maybe-all-stage1-target-libgcc
.PHONY: clean-stage1-target-libgcc maybe-clean-stage1-target-libgcc
maybe-all-stage1-target-libgcc:
maybe-clean-stage1-target-libgcc:
@if target-libgcc-bootstrap
maybe-all-stage1-target-libgcc: all-stage1-target-libgcc
all-stage1: all-stage1-target-libgcc
TARGET-stage1-target-libgcc = $(TARGET-target-libgcc)
all-stage1-target-libgcc: configure-stage1-target-libgcc
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS)  \
	cd $(TARGET_SUBDIR)/libgcc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)  \
		  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-target-libgcc)

maybe-clean-stage1-target-libgcc: clean-stage1-target-libgcc
clean-stage1: clean-stage1-target-libgcc
clean-stage1-target-libgcc:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage1-libgcc/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgcc && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)  \
	  clean
@endif target-libgcc-bootstrap


.PHONY: all-stage2-target-libgcc maybe-all-stage2-target-libgcc
.PHONY: clean-stage2-target-libgcc maybe-clean-stage2-target-libgcc
maybe-all-stage2-target-libgcc:
maybe-clean-stage2-target-libgcc:
@if target-libgcc-bootstrap
maybe-all-stage2-target-libgcc: all-stage2-target-libgcc
all-stage2: all-stage2-target-libgcc
TARGET-stage2-target-libgcc = $(TARGET-target-libgcc)
all-stage2-target-libgcc: configure-stage2-target-libgcc
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libgcc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)   \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-target-libgcc)

maybe-clean-stage2-target-libgcc: clean-stage2-target-libgcc
clean-stage2: clean-stage2-target-libgcc
clean-stage2-target-libgcc:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage2-libgcc/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgcc && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libgcc-bootstrap


.PHONY: all-stage3-target-libgcc maybe-all-stage3-target-libgcc
.PHONY: clean-stage3-target-libgcc maybe-clean-stage3-target-libgcc
maybe-all-stage3-target-libgcc:
maybe-clean-stage3-target-libgcc:
@if target-libgcc-bootstrap
maybe-all-stage3-target-libgcc: all-stage3-target-libgcc
all-stage3: all-stage3-target-libgcc
TARGET-stage3-target-libgcc = $(TARGET-target-libgcc)
all-stage3-target-libgcc: configure-stage3-target-libgcc
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libgcc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)   \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-target-libgcc)

maybe-clean-stage3-target-libgcc: clean-stage3-target-libgcc
clean-stage3: clean-stage3-target-libgcc
clean-stage3-target-libgcc:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage3-libgcc/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgcc && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libgcc-bootstrap


.PHONY: all-stage4-target-libgcc maybe-all-stage4-target-libgcc
.PHONY: clean-stage4-target-libgcc maybe-clean-stage4-target-libgcc
maybe-all-stage4-target-libgcc:
maybe-clean-stage4-target-libgcc:
@if target-libgcc-bootstrap
maybe-all-stage4-target-libgcc: all-stage4-target-libgcc
all-stage4: all-stage4-target-libgcc
TARGET-stage4-target-libgcc = $(TARGET-target-libgcc)
all-stage4-target-libgcc: configure-stage4-target-libgcc
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libgcc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)   \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-target-libgcc)

maybe-clean-stage4-target-libgcc: clean-stage4-target-libgcc
clean-stage4: clean-stage4-target-libgcc
clean-stage4-target-libgcc:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage4-libgcc/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgcc && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libgcc-bootstrap


.PHONY: all-stageprofile-target-libgcc maybe-all-stageprofile-target-libgcc
.PHONY: clean-stageprofile-target-libgcc maybe-clean-stageprofile-target-libgcc
maybe-all-stageprofile-target-libgcc:
maybe-clean-stageprofile-target-libgcc:
@if target-libgcc-bootstrap
maybe-all-stageprofile-target-libgcc: all-stageprofile-target-libgcc
all-stageprofile: all-stageprofile-target-libgcc
TARGET-stageprofile-target-libgcc = $(TARGET-target-libgcc)
all-stageprofile-target-libgcc: configure-stageprofile-target-libgcc
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libgcc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)   \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-target-libgcc)

maybe-clean-stageprofile-target-libgcc: clean-stageprofile-target-libgcc
clean-stageprofile: clean-stageprofile-target-libgcc
clean-stageprofile-target-libgcc:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageprofile-libgcc/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgcc && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libgcc-bootstrap


.PHONY: all-stagetrain-target-libgcc maybe-all-stagetrain-target-libgcc
.PHONY: clean-stagetrain-target-libgcc maybe-clean-stagetrain-target-libgcc
maybe-all-stagetrain-target-libgcc:
maybe-clean-stagetrain-target-libgcc:
@if target-libgcc-bootstrap
maybe-all-stagetrain-target-libgcc: all-stagetrain-target-libgcc
all-stagetrain: all-stagetrain-target-libgcc
TARGET-stagetrain-target-libgcc = $(TARGET-target-libgcc)
all-stagetrain-target-libgcc: configure-stagetrain-target-libgcc
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libgcc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)   \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-target-libgcc)

maybe-clean-stagetrain-target-libgcc: clean-stagetrain-target-libgcc
clean-stagetrain: clean-stagetrain-target-libgcc
clean-stagetrain-target-libgcc:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagetrain-libgcc/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgcc && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libgcc-bootstrap


.PHONY: all-stagefeedback-target-libgcc maybe-all-stagefeedback-target-libgcc
.PHONY: clean-stagefeedback-target-libgcc maybe-clean-stagefeedback-target-libgcc
maybe-all-stagefeedback-target-libgcc:
maybe-clean-stagefeedback-target-libgcc:
@if target-libgcc-bootstrap
maybe-all-stagefeedback-target-libgcc: all-stagefeedback-target-libgcc
all-stagefeedback: all-stagefeedback-target-libgcc
TARGET-stagefeedback-target-libgcc = $(TARGET-target-libgcc)
all-stagefeedback-target-libgcc: configure-stagefeedback-target-libgcc
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libgcc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)   \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-target-libgcc)

maybe-clean-stagefeedback-target-libgcc: clean-stagefeedback-target-libgcc
clean-stagefeedback: clean-stagefeedback-target-libgcc
clean-stagefeedback-target-libgcc:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagefeedback-libgcc/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgcc && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libgcc-bootstrap


.PHONY: all-stageautoprofile-target-libgcc maybe-all-stageautoprofile-target-libgcc
.PHONY: clean-stageautoprofile-target-libgcc maybe-clean-stageautoprofile-target-libgcc
maybe-all-stageautoprofile-target-libgcc:
maybe-clean-stageautoprofile-target-libgcc:
@if target-libgcc-bootstrap
maybe-all-stageautoprofile-target-libgcc: all-stageautoprofile-target-libgcc
all-stageautoprofile: all-stageautoprofile-target-libgcc
TARGET-stageautoprofile-target-libgcc = $(TARGET-target-libgcc)
all-stageautoprofile-target-libgcc: configure-stageautoprofile-target-libgcc
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libgcc && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)   \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-target-libgcc)

maybe-clean-stageautoprofile-target-libgcc: clean-stageautoprofile-target-libgcc
clean-stageautoprofile: clean-stageautoprofile-target-libgcc
clean-stageautoprofile-target-libgcc:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautoprofile-libgcc/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgcc && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libgcc-bootstrap


.PHONY: all-stageautofeedback-target-libgcc maybe-all-stageautofeedback-target-libgcc
.PHONY: clean-stageautofeedback-target-libgcc maybe-clean-stageautofeedback-target-libgcc
maybe-all-stageautofeedback-target-libgcc:
maybe-clean-stageautofeedback-target-libgcc:
@if target-libgcc-bootstrap
maybe-all-stageautofeedback-target-libgcc: all-stageautofeedback-target-libgcc
all-stageautofeedback: all-stageautofeedback-target-libgcc
TARGET-stageautofeedback-target-libgcc = $(TARGET-target-libgcc)
all-stageautofeedback-target-libgcc: configure-stageautofeedback-target-libgcc
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libgcc && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)   \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-target-libgcc)

maybe-clean-stageautofeedback-target-libgcc: clean-stageautofeedback-target-libgcc
clean-stageautofeedback: clean-stageautofeedback-target-libgcc
clean-stageautofeedback-target-libgcc:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautofeedback-libgcc/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgcc && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libgcc-bootstrap






.PHONY: check-target-libgcc maybe-check-target-libgcc
maybe-check-target-libgcc:
@if target-libgcc
maybe-check-target-libgcc: check-target-libgcc

# Dummy target for uncheckable module.
check-target-libgcc:

@endif target-libgcc

.PHONY: install-target-libgcc maybe-install-target-libgcc
maybe-install-target-libgcc:
@if target-libgcc
maybe-install-target-libgcc: install-target-libgcc

install-target-libgcc: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libgcc && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libgcc

.PHONY: install-strip-target-libgcc maybe-install-strip-target-libgcc
maybe-install-strip-target-libgcc:
@if target-libgcc
maybe-install-strip-target-libgcc: install-strip-target-libgcc

install-strip-target-libgcc: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libgcc && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libgcc

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libgcc info-target-libgcc
maybe-info-target-libgcc:
@if target-libgcc
maybe-info-target-libgcc: info-target-libgcc

info-target-libgcc: \
    configure-target-libgcc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libgcc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libgcc

.PHONY: maybe-dvi-target-libgcc dvi-target-libgcc
maybe-dvi-target-libgcc:
@if target-libgcc
maybe-dvi-target-libgcc: dvi-target-libgcc

dvi-target-libgcc: \
    configure-target-libgcc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libgcc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libgcc

.PHONY: maybe-pdf-target-libgcc pdf-target-libgcc
maybe-pdf-target-libgcc:
@if target-libgcc
maybe-pdf-target-libgcc: pdf-target-libgcc

pdf-target-libgcc: \
    configure-target-libgcc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libgcc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libgcc

.PHONY: maybe-html-target-libgcc html-target-libgcc
maybe-html-target-libgcc:
@if target-libgcc
maybe-html-target-libgcc: html-target-libgcc

html-target-libgcc: \
    configure-target-libgcc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libgcc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libgcc

.PHONY: maybe-TAGS-target-libgcc TAGS-target-libgcc
maybe-TAGS-target-libgcc:
@if target-libgcc
maybe-TAGS-target-libgcc: TAGS-target-libgcc

TAGS-target-libgcc: \
    configure-target-libgcc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libgcc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libgcc

.PHONY: maybe-install-info-target-libgcc install-info-target-libgcc
maybe-install-info-target-libgcc:
@if target-libgcc
maybe-install-info-target-libgcc: install-info-target-libgcc

install-info-target-libgcc: \
    configure-target-libgcc \
    info-target-libgcc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libgcc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libgcc

.PHONY: maybe-install-pdf-target-libgcc install-pdf-target-libgcc
maybe-install-pdf-target-libgcc:
@if target-libgcc
maybe-install-pdf-target-libgcc: install-pdf-target-libgcc

install-pdf-target-libgcc: \
    configure-target-libgcc \
    pdf-target-libgcc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libgcc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libgcc

.PHONY: maybe-install-html-target-libgcc install-html-target-libgcc
maybe-install-html-target-libgcc:
@if target-libgcc
maybe-install-html-target-libgcc: install-html-target-libgcc

install-html-target-libgcc: \
    configure-target-libgcc \
    html-target-libgcc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libgcc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libgcc

.PHONY: maybe-installcheck-target-libgcc installcheck-target-libgcc
maybe-installcheck-target-libgcc:
@if target-libgcc
maybe-installcheck-target-libgcc: installcheck-target-libgcc

installcheck-target-libgcc: \
    configure-target-libgcc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libgcc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libgcc

.PHONY: maybe-mostlyclean-target-libgcc mostlyclean-target-libgcc
maybe-mostlyclean-target-libgcc:
@if target-libgcc
maybe-mostlyclean-target-libgcc: mostlyclean-target-libgcc

mostlyclean-target-libgcc: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libgcc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libgcc

.PHONY: maybe-clean-target-libgcc clean-target-libgcc
maybe-clean-target-libgcc:
@if target-libgcc
maybe-clean-target-libgcc: clean-target-libgcc

clean-target-libgcc: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libgcc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libgcc

.PHONY: maybe-distclean-target-libgcc distclean-target-libgcc
maybe-distclean-target-libgcc:
@if target-libgcc
maybe-distclean-target-libgcc: distclean-target-libgcc

distclean-target-libgcc: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libgcc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libgcc

.PHONY: maybe-maintainer-clean-target-libgcc maintainer-clean-target-libgcc
maybe-maintainer-clean-target-libgcc:
@if target-libgcc
maybe-maintainer-clean-target-libgcc: maintainer-clean-target-libgcc

maintainer-clean-target-libgcc: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgcc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libgcc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgcc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libgcc





.PHONY: configure-target-libbacktrace maybe-configure-target-libbacktrace
maybe-configure-target-libbacktrace:
@if gcc-bootstrap
configure-target-libbacktrace: stage_current
@endif gcc-bootstrap
@if target-libbacktrace
maybe-configure-target-libbacktrace: configure-target-libbacktrace
configure-target-libbacktrace: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libbacktrace..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libbacktrace; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libbacktrace/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libbacktrace/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libbacktrace/multilib.tmp $(TARGET_SUBDIR)/libbacktrace/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libbacktrace/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libbacktrace/Makefile; \
	    mv $(TARGET_SUBDIR)/libbacktrace/multilib.tmp $(TARGET_SUBDIR)/libbacktrace/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libbacktrace/multilib.tmp $(TARGET_SUBDIR)/libbacktrace/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libbacktrace/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libbacktrace; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libbacktrace; \
	cd "$(TARGET_SUBDIR)/libbacktrace" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libbacktrace/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libbacktrace; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libbacktrace





.PHONY: all-target-libbacktrace maybe-all-target-libbacktrace
maybe-all-target-libbacktrace:
@if gcc-bootstrap
all-target-libbacktrace: stage_current
@endif gcc-bootstrap
@if target-libbacktrace
TARGET-target-libbacktrace=all
maybe-all-target-libbacktrace: all-target-libbacktrace
all-target-libbacktrace: configure-target-libbacktrace
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-libbacktrace))
@endif target-libbacktrace





.PHONY: check-target-libbacktrace maybe-check-target-libbacktrace
maybe-check-target-libbacktrace:
@if target-libbacktrace
maybe-check-target-libbacktrace: check-target-libbacktrace

check-target-libbacktrace:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libbacktrace && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-libbacktrace

.PHONY: install-target-libbacktrace maybe-install-target-libbacktrace
maybe-install-target-libbacktrace:
@if target-libbacktrace
maybe-install-target-libbacktrace: install-target-libbacktrace

install-target-libbacktrace: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libbacktrace && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libbacktrace

.PHONY: install-strip-target-libbacktrace maybe-install-strip-target-libbacktrace
maybe-install-strip-target-libbacktrace:
@if target-libbacktrace
maybe-install-strip-target-libbacktrace: install-strip-target-libbacktrace

install-strip-target-libbacktrace: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libbacktrace && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libbacktrace

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libbacktrace info-target-libbacktrace
maybe-info-target-libbacktrace:
@if target-libbacktrace
maybe-info-target-libbacktrace: info-target-libbacktrace

info-target-libbacktrace: \
    configure-target-libbacktrace 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libbacktrace"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libbacktrace

.PHONY: maybe-dvi-target-libbacktrace dvi-target-libbacktrace
maybe-dvi-target-libbacktrace:
@if target-libbacktrace
maybe-dvi-target-libbacktrace: dvi-target-libbacktrace

dvi-target-libbacktrace: \
    configure-target-libbacktrace 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libbacktrace"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libbacktrace

.PHONY: maybe-pdf-target-libbacktrace pdf-target-libbacktrace
maybe-pdf-target-libbacktrace:
@if target-libbacktrace
maybe-pdf-target-libbacktrace: pdf-target-libbacktrace

pdf-target-libbacktrace: \
    configure-target-libbacktrace 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libbacktrace"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libbacktrace

.PHONY: maybe-html-target-libbacktrace html-target-libbacktrace
maybe-html-target-libbacktrace:
@if target-libbacktrace
maybe-html-target-libbacktrace: html-target-libbacktrace

html-target-libbacktrace: \
    configure-target-libbacktrace 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libbacktrace"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libbacktrace

.PHONY: maybe-TAGS-target-libbacktrace TAGS-target-libbacktrace
maybe-TAGS-target-libbacktrace:
@if target-libbacktrace
maybe-TAGS-target-libbacktrace: TAGS-target-libbacktrace

TAGS-target-libbacktrace: \
    configure-target-libbacktrace 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libbacktrace"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libbacktrace

.PHONY: maybe-install-info-target-libbacktrace install-info-target-libbacktrace
maybe-install-info-target-libbacktrace:
@if target-libbacktrace
maybe-install-info-target-libbacktrace: install-info-target-libbacktrace

install-info-target-libbacktrace: \
    configure-target-libbacktrace \
    info-target-libbacktrace 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libbacktrace"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libbacktrace

.PHONY: maybe-install-pdf-target-libbacktrace install-pdf-target-libbacktrace
maybe-install-pdf-target-libbacktrace:
@if target-libbacktrace
maybe-install-pdf-target-libbacktrace: install-pdf-target-libbacktrace

install-pdf-target-libbacktrace: \
    configure-target-libbacktrace \
    pdf-target-libbacktrace 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libbacktrace"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libbacktrace

.PHONY: maybe-install-html-target-libbacktrace install-html-target-libbacktrace
maybe-install-html-target-libbacktrace:
@if target-libbacktrace
maybe-install-html-target-libbacktrace: install-html-target-libbacktrace

install-html-target-libbacktrace: \
    configure-target-libbacktrace \
    html-target-libbacktrace 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libbacktrace"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libbacktrace

.PHONY: maybe-installcheck-target-libbacktrace installcheck-target-libbacktrace
maybe-installcheck-target-libbacktrace:
@if target-libbacktrace
maybe-installcheck-target-libbacktrace: installcheck-target-libbacktrace

installcheck-target-libbacktrace: \
    configure-target-libbacktrace 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libbacktrace"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libbacktrace

.PHONY: maybe-mostlyclean-target-libbacktrace mostlyclean-target-libbacktrace
maybe-mostlyclean-target-libbacktrace:
@if target-libbacktrace
maybe-mostlyclean-target-libbacktrace: mostlyclean-target-libbacktrace

mostlyclean-target-libbacktrace: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libbacktrace"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libbacktrace

.PHONY: maybe-clean-target-libbacktrace clean-target-libbacktrace
maybe-clean-target-libbacktrace:
@if target-libbacktrace
maybe-clean-target-libbacktrace: clean-target-libbacktrace

clean-target-libbacktrace: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libbacktrace"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libbacktrace

.PHONY: maybe-distclean-target-libbacktrace distclean-target-libbacktrace
maybe-distclean-target-libbacktrace:
@if target-libbacktrace
maybe-distclean-target-libbacktrace: distclean-target-libbacktrace

distclean-target-libbacktrace: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libbacktrace"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libbacktrace

.PHONY: maybe-maintainer-clean-target-libbacktrace maintainer-clean-target-libbacktrace
maybe-maintainer-clean-target-libbacktrace:
@if target-libbacktrace
maybe-maintainer-clean-target-libbacktrace: maintainer-clean-target-libbacktrace

maintainer-clean-target-libbacktrace: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libbacktrace"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libbacktrace && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libbacktrace





.PHONY: configure-target-libquadmath maybe-configure-target-libquadmath
maybe-configure-target-libquadmath:
@if gcc-bootstrap
configure-target-libquadmath: stage_current
@endif gcc-bootstrap
@if target-libquadmath
maybe-configure-target-libquadmath: configure-target-libquadmath
configure-target-libquadmath: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libquadmath..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libquadmath; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libquadmath/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libquadmath/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libquadmath/multilib.tmp $(TARGET_SUBDIR)/libquadmath/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libquadmath/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libquadmath/Makefile; \
	    mv $(TARGET_SUBDIR)/libquadmath/multilib.tmp $(TARGET_SUBDIR)/libquadmath/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libquadmath/multilib.tmp $(TARGET_SUBDIR)/libquadmath/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libquadmath/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libquadmath; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libquadmath; \
	cd "$(TARGET_SUBDIR)/libquadmath" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libquadmath/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libquadmath; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libquadmath





.PHONY: all-target-libquadmath maybe-all-target-libquadmath
maybe-all-target-libquadmath:
@if gcc-bootstrap
all-target-libquadmath: stage_current
@endif gcc-bootstrap
@if target-libquadmath
TARGET-target-libquadmath=all
maybe-all-target-libquadmath: all-target-libquadmath
all-target-libquadmath: configure-target-libquadmath
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libquadmath && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-libquadmath))
@endif target-libquadmath





.PHONY: check-target-libquadmath maybe-check-target-libquadmath
maybe-check-target-libquadmath:
@if target-libquadmath
maybe-check-target-libquadmath: check-target-libquadmath

check-target-libquadmath:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libquadmath && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-libquadmath

.PHONY: install-target-libquadmath maybe-install-target-libquadmath
maybe-install-target-libquadmath:
@if target-libquadmath
maybe-install-target-libquadmath: install-target-libquadmath

install-target-libquadmath: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libquadmath && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libquadmath

.PHONY: install-strip-target-libquadmath maybe-install-strip-target-libquadmath
maybe-install-strip-target-libquadmath:
@if target-libquadmath
maybe-install-strip-target-libquadmath: install-strip-target-libquadmath

install-strip-target-libquadmath: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libquadmath && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libquadmath

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libquadmath info-target-libquadmath
maybe-info-target-libquadmath:
@if target-libquadmath
maybe-info-target-libquadmath: info-target-libquadmath

info-target-libquadmath: \
    configure-target-libquadmath 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libquadmath/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libquadmath"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libquadmath && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libquadmath

.PHONY: maybe-dvi-target-libquadmath dvi-target-libquadmath
maybe-dvi-target-libquadmath:
@if target-libquadmath
maybe-dvi-target-libquadmath: dvi-target-libquadmath

dvi-target-libquadmath: \
    configure-target-libquadmath 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libquadmath/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libquadmath"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libquadmath && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libquadmath

.PHONY: maybe-pdf-target-libquadmath pdf-target-libquadmath
maybe-pdf-target-libquadmath:
@if target-libquadmath
maybe-pdf-target-libquadmath: pdf-target-libquadmath

pdf-target-libquadmath: \
    configure-target-libquadmath 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libquadmath/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libquadmath"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libquadmath && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libquadmath

.PHONY: maybe-html-target-libquadmath html-target-libquadmath
maybe-html-target-libquadmath:
@if target-libquadmath
maybe-html-target-libquadmath: html-target-libquadmath

html-target-libquadmath: \
    configure-target-libquadmath 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libquadmath/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libquadmath"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libquadmath && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libquadmath

.PHONY: maybe-TAGS-target-libquadmath TAGS-target-libquadmath
maybe-TAGS-target-libquadmath:
@if target-libquadmath
maybe-TAGS-target-libquadmath: TAGS-target-libquadmath

TAGS-target-libquadmath: \
    configure-target-libquadmath 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libquadmath/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libquadmath"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libquadmath && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libquadmath

.PHONY: maybe-install-info-target-libquadmath install-info-target-libquadmath
maybe-install-info-target-libquadmath:
@if target-libquadmath
maybe-install-info-target-libquadmath: install-info-target-libquadmath

install-info-target-libquadmath: \
    configure-target-libquadmath \
    info-target-libquadmath 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libquadmath/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libquadmath"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libquadmath && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libquadmath

.PHONY: maybe-install-pdf-target-libquadmath install-pdf-target-libquadmath
maybe-install-pdf-target-libquadmath:
@if target-libquadmath
maybe-install-pdf-target-libquadmath: install-pdf-target-libquadmath

install-pdf-target-libquadmath: \
    configure-target-libquadmath \
    pdf-target-libquadmath 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libquadmath/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libquadmath"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libquadmath && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libquadmath

.PHONY: maybe-install-html-target-libquadmath install-html-target-libquadmath
maybe-install-html-target-libquadmath:
@if target-libquadmath
maybe-install-html-target-libquadmath: install-html-target-libquadmath

install-html-target-libquadmath: \
    configure-target-libquadmath \
    html-target-libquadmath 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libquadmath/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libquadmath"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libquadmath && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libquadmath

.PHONY: maybe-installcheck-target-libquadmath installcheck-target-libquadmath
maybe-installcheck-target-libquadmath:
@if target-libquadmath
maybe-installcheck-target-libquadmath: installcheck-target-libquadmath

installcheck-target-libquadmath: \
    configure-target-libquadmath 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libquadmath/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libquadmath"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libquadmath && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libquadmath

.PHONY: maybe-mostlyclean-target-libquadmath mostlyclean-target-libquadmath
maybe-mostlyclean-target-libquadmath:
@if target-libquadmath
maybe-mostlyclean-target-libquadmath: mostlyclean-target-libquadmath

mostlyclean-target-libquadmath: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libquadmath/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libquadmath"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libquadmath && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libquadmath

.PHONY: maybe-clean-target-libquadmath clean-target-libquadmath
maybe-clean-target-libquadmath:
@if target-libquadmath
maybe-clean-target-libquadmath: clean-target-libquadmath

clean-target-libquadmath: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libquadmath/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libquadmath"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libquadmath && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libquadmath

.PHONY: maybe-distclean-target-libquadmath distclean-target-libquadmath
maybe-distclean-target-libquadmath:
@if target-libquadmath
maybe-distclean-target-libquadmath: distclean-target-libquadmath

distclean-target-libquadmath: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libquadmath/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libquadmath"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libquadmath && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libquadmath

.PHONY: maybe-maintainer-clean-target-libquadmath maintainer-clean-target-libquadmath
maybe-maintainer-clean-target-libquadmath:
@if target-libquadmath
maybe-maintainer-clean-target-libquadmath: maintainer-clean-target-libquadmath

maintainer-clean-target-libquadmath: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libquadmath/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libquadmath"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libquadmath && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libquadmath





.PHONY: configure-target-libgfortran maybe-configure-target-libgfortran
maybe-configure-target-libgfortran:
@if gcc-bootstrap
configure-target-libgfortran: stage_current
@endif gcc-bootstrap
@if target-libgfortran
maybe-configure-target-libgfortran: configure-target-libgfortran
configure-target-libgfortran: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libgfortran..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgfortran; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgfortran/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgfortran/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgfortran/multilib.tmp $(TARGET_SUBDIR)/libgfortran/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgfortran/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgfortran/Makefile; \
	    mv $(TARGET_SUBDIR)/libgfortran/multilib.tmp $(TARGET_SUBDIR)/libgfortran/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgfortran/multilib.tmp $(TARGET_SUBDIR)/libgfortran/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgfortran/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgfortran; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libgfortran; \
	cd "$(TARGET_SUBDIR)/libgfortran" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgfortran/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgfortran; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libgfortran





.PHONY: all-target-libgfortran maybe-all-target-libgfortran
maybe-all-target-libgfortran:
@if gcc-bootstrap
all-target-libgfortran: stage_current
@endif gcc-bootstrap
@if target-libgfortran
TARGET-target-libgfortran=all
maybe-all-target-libgfortran: all-target-libgfortran
all-target-libgfortran: configure-target-libgfortran
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libgfortran && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-libgfortran))
@endif target-libgfortran





.PHONY: check-target-libgfortran maybe-check-target-libgfortran
maybe-check-target-libgfortran:
@if target-libgfortran
maybe-check-target-libgfortran: check-target-libgfortran

check-target-libgfortran:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libgfortran && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-libgfortran

.PHONY: install-target-libgfortran maybe-install-target-libgfortran
maybe-install-target-libgfortran:
@if target-libgfortran
maybe-install-target-libgfortran: install-target-libgfortran

install-target-libgfortran: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libgfortran && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libgfortran

.PHONY: install-strip-target-libgfortran maybe-install-strip-target-libgfortran
maybe-install-strip-target-libgfortran:
@if target-libgfortran
maybe-install-strip-target-libgfortran: install-strip-target-libgfortran

install-strip-target-libgfortran: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libgfortran && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libgfortran

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libgfortran info-target-libgfortran
maybe-info-target-libgfortran:
@if target-libgfortran
maybe-info-target-libgfortran: info-target-libgfortran

info-target-libgfortran: \
    configure-target-libgfortran 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libgfortran"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgfortran && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libgfortran

.PHONY: maybe-dvi-target-libgfortran dvi-target-libgfortran
maybe-dvi-target-libgfortran:
@if target-libgfortran
maybe-dvi-target-libgfortran: dvi-target-libgfortran

dvi-target-libgfortran: \
    configure-target-libgfortran 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libgfortran"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgfortran && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libgfortran

.PHONY: maybe-pdf-target-libgfortran pdf-target-libgfortran
maybe-pdf-target-libgfortran:
@if target-libgfortran
maybe-pdf-target-libgfortran: pdf-target-libgfortran

pdf-target-libgfortran: \
    configure-target-libgfortran 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libgfortran"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgfortran && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libgfortran

.PHONY: maybe-html-target-libgfortran html-target-libgfortran
maybe-html-target-libgfortran:
@if target-libgfortran
maybe-html-target-libgfortran: html-target-libgfortran

html-target-libgfortran: \
    configure-target-libgfortran 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libgfortran"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgfortran && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libgfortran

.PHONY: maybe-TAGS-target-libgfortran TAGS-target-libgfortran
maybe-TAGS-target-libgfortran:
@if target-libgfortran
maybe-TAGS-target-libgfortran: TAGS-target-libgfortran

TAGS-target-libgfortran: \
    configure-target-libgfortran 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libgfortran"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgfortran && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libgfortran

.PHONY: maybe-install-info-target-libgfortran install-info-target-libgfortran
maybe-install-info-target-libgfortran:
@if target-libgfortran
maybe-install-info-target-libgfortran: install-info-target-libgfortran

install-info-target-libgfortran: \
    configure-target-libgfortran \
    info-target-libgfortran 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libgfortran"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgfortran && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libgfortran

.PHONY: maybe-install-pdf-target-libgfortran install-pdf-target-libgfortran
maybe-install-pdf-target-libgfortran:
@if target-libgfortran
maybe-install-pdf-target-libgfortran: install-pdf-target-libgfortran

install-pdf-target-libgfortran: \
    configure-target-libgfortran \
    pdf-target-libgfortran 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libgfortran"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgfortran && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libgfortran

.PHONY: maybe-install-html-target-libgfortran install-html-target-libgfortran
maybe-install-html-target-libgfortran:
@if target-libgfortran
maybe-install-html-target-libgfortran: install-html-target-libgfortran

install-html-target-libgfortran: \
    configure-target-libgfortran \
    html-target-libgfortran 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libgfortran"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgfortran && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libgfortran

.PHONY: maybe-installcheck-target-libgfortran installcheck-target-libgfortran
maybe-installcheck-target-libgfortran:
@if target-libgfortran
maybe-installcheck-target-libgfortran: installcheck-target-libgfortran

installcheck-target-libgfortran: \
    configure-target-libgfortran 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libgfortran"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgfortran && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libgfortran

.PHONY: maybe-mostlyclean-target-libgfortran mostlyclean-target-libgfortran
maybe-mostlyclean-target-libgfortran:
@if target-libgfortran
maybe-mostlyclean-target-libgfortran: mostlyclean-target-libgfortran

mostlyclean-target-libgfortran: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libgfortran"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgfortran && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libgfortran

.PHONY: maybe-clean-target-libgfortran clean-target-libgfortran
maybe-clean-target-libgfortran:
@if target-libgfortran
maybe-clean-target-libgfortran: clean-target-libgfortran

clean-target-libgfortran: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libgfortran"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgfortran && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libgfortran

.PHONY: maybe-distclean-target-libgfortran distclean-target-libgfortran
maybe-distclean-target-libgfortran:
@if target-libgfortran
maybe-distclean-target-libgfortran: distclean-target-libgfortran

distclean-target-libgfortran: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libgfortran"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgfortran && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libgfortran

.PHONY: maybe-maintainer-clean-target-libgfortran maintainer-clean-target-libgfortran
maybe-maintainer-clean-target-libgfortran:
@if target-libgfortran
maybe-maintainer-clean-target-libgfortran: maintainer-clean-target-libgfortran

maintainer-clean-target-libgfortran: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libgfortran"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgfortran && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libgfortran





.PHONY: configure-target-libobjc maybe-configure-target-libobjc
maybe-configure-target-libobjc:
@if gcc-bootstrap
configure-target-libobjc: stage_current
@endif gcc-bootstrap
@if target-libobjc
maybe-configure-target-libobjc: configure-target-libobjc
configure-target-libobjc: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libobjc..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libobjc; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libobjc/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libobjc/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libobjc/multilib.tmp $(TARGET_SUBDIR)/libobjc/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libobjc/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libobjc/Makefile; \
	    mv $(TARGET_SUBDIR)/libobjc/multilib.tmp $(TARGET_SUBDIR)/libobjc/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libobjc/multilib.tmp $(TARGET_SUBDIR)/libobjc/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libobjc/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libobjc; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libobjc; \
	cd "$(TARGET_SUBDIR)/libobjc" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libobjc/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libobjc; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libobjc





.PHONY: all-target-libobjc maybe-all-target-libobjc
maybe-all-target-libobjc:
@if gcc-bootstrap
all-target-libobjc: stage_current
@endif gcc-bootstrap
@if target-libobjc
TARGET-target-libobjc=all
maybe-all-target-libobjc: all-target-libobjc
all-target-libobjc: configure-target-libobjc
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libobjc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-libobjc))
@endif target-libobjc





.PHONY: check-target-libobjc maybe-check-target-libobjc
maybe-check-target-libobjc:
@if target-libobjc
maybe-check-target-libobjc: check-target-libobjc

check-target-libobjc:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libobjc && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-libobjc

.PHONY: install-target-libobjc maybe-install-target-libobjc
maybe-install-target-libobjc:
@if target-libobjc
maybe-install-target-libobjc: install-target-libobjc

install-target-libobjc: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libobjc && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libobjc

.PHONY: install-strip-target-libobjc maybe-install-strip-target-libobjc
maybe-install-strip-target-libobjc:
@if target-libobjc
maybe-install-strip-target-libobjc: install-strip-target-libobjc

install-strip-target-libobjc: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libobjc && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libobjc

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libobjc info-target-libobjc
maybe-info-target-libobjc:
@if target-libobjc
maybe-info-target-libobjc: info-target-libobjc

info-target-libobjc: \
    configure-target-libobjc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libobjc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libobjc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libobjc

.PHONY: maybe-dvi-target-libobjc dvi-target-libobjc
maybe-dvi-target-libobjc:
@if target-libobjc
maybe-dvi-target-libobjc: dvi-target-libobjc

dvi-target-libobjc: \
    configure-target-libobjc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libobjc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libobjc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libobjc

.PHONY: maybe-pdf-target-libobjc pdf-target-libobjc
maybe-pdf-target-libobjc:
@if target-libobjc
maybe-pdf-target-libobjc: pdf-target-libobjc

pdf-target-libobjc: \
    configure-target-libobjc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libobjc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libobjc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libobjc

.PHONY: maybe-html-target-libobjc html-target-libobjc
maybe-html-target-libobjc:
@if target-libobjc
maybe-html-target-libobjc: html-target-libobjc

html-target-libobjc: \
    configure-target-libobjc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libobjc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libobjc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libobjc

.PHONY: maybe-TAGS-target-libobjc TAGS-target-libobjc
maybe-TAGS-target-libobjc:
@if target-libobjc
maybe-TAGS-target-libobjc: TAGS-target-libobjc

TAGS-target-libobjc: \
    configure-target-libobjc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libobjc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libobjc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libobjc

.PHONY: maybe-install-info-target-libobjc install-info-target-libobjc
maybe-install-info-target-libobjc:
@if target-libobjc
maybe-install-info-target-libobjc: install-info-target-libobjc

install-info-target-libobjc: \
    configure-target-libobjc \
    info-target-libobjc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libobjc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libobjc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libobjc

.PHONY: maybe-install-pdf-target-libobjc install-pdf-target-libobjc
maybe-install-pdf-target-libobjc:
@if target-libobjc
maybe-install-pdf-target-libobjc: install-pdf-target-libobjc

install-pdf-target-libobjc: \
    configure-target-libobjc \
    pdf-target-libobjc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libobjc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libobjc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libobjc

.PHONY: maybe-install-html-target-libobjc install-html-target-libobjc
maybe-install-html-target-libobjc:
@if target-libobjc
maybe-install-html-target-libobjc: install-html-target-libobjc

install-html-target-libobjc: \
    configure-target-libobjc \
    html-target-libobjc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libobjc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libobjc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libobjc

.PHONY: maybe-installcheck-target-libobjc installcheck-target-libobjc
maybe-installcheck-target-libobjc:
@if target-libobjc
maybe-installcheck-target-libobjc: installcheck-target-libobjc

installcheck-target-libobjc: \
    configure-target-libobjc 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libobjc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libobjc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libobjc

.PHONY: maybe-mostlyclean-target-libobjc mostlyclean-target-libobjc
maybe-mostlyclean-target-libobjc:
@if target-libobjc
maybe-mostlyclean-target-libobjc: mostlyclean-target-libobjc

mostlyclean-target-libobjc: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libobjc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libobjc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libobjc

.PHONY: maybe-clean-target-libobjc clean-target-libobjc
maybe-clean-target-libobjc:
@if target-libobjc
maybe-clean-target-libobjc: clean-target-libobjc

clean-target-libobjc: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libobjc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libobjc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libobjc

.PHONY: maybe-distclean-target-libobjc distclean-target-libobjc
maybe-distclean-target-libobjc:
@if target-libobjc
maybe-distclean-target-libobjc: distclean-target-libobjc

distclean-target-libobjc: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libobjc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libobjc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libobjc

.PHONY: maybe-maintainer-clean-target-libobjc maintainer-clean-target-libobjc
maybe-maintainer-clean-target-libobjc:
@if target-libobjc
maybe-maintainer-clean-target-libobjc: maintainer-clean-target-libobjc

maintainer-clean-target-libobjc: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libobjc/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libobjc"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libobjc && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libobjc





.PHONY: configure-target-libgo maybe-configure-target-libgo
maybe-configure-target-libgo:
@if gcc-bootstrap
configure-target-libgo: stage_current
@endif gcc-bootstrap
@if target-libgo
maybe-configure-target-libgo: configure-target-libgo
configure-target-libgo: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libgo..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgo; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgo/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgo/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgo/multilib.tmp $(TARGET_SUBDIR)/libgo/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgo/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgo/Makefile; \
	    mv $(TARGET_SUBDIR)/libgo/multilib.tmp $(TARGET_SUBDIR)/libgo/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgo/multilib.tmp $(TARGET_SUBDIR)/libgo/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgo/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgo; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libgo; \
	cd "$(TARGET_SUBDIR)/libgo" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgo/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgo; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libgo





.PHONY: all-target-libgo maybe-all-target-libgo
maybe-all-target-libgo:
@if gcc-bootstrap
all-target-libgo: stage_current
@endif gcc-bootstrap
@if target-libgo
TARGET-target-libgo=all
maybe-all-target-libgo: all-target-libgo
all-target-libgo: configure-target-libgo
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libgo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-libgo))
@endif target-libgo





.PHONY: check-target-libgo maybe-check-target-libgo
maybe-check-target-libgo:
@if target-libgo
maybe-check-target-libgo: check-target-libgo

check-target-libgo:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libgo && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-libgo

.PHONY: install-target-libgo maybe-install-target-libgo
maybe-install-target-libgo:
@if target-libgo
maybe-install-target-libgo: install-target-libgo

install-target-libgo: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libgo && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libgo

.PHONY: install-strip-target-libgo maybe-install-strip-target-libgo
maybe-install-strip-target-libgo:
@if target-libgo
maybe-install-strip-target-libgo: install-strip-target-libgo

install-strip-target-libgo: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libgo && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libgo

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libgo info-target-libgo
maybe-info-target-libgo:
@if target-libgo
maybe-info-target-libgo: info-target-libgo

info-target-libgo: \
    configure-target-libgo 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libgo"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libgo

.PHONY: maybe-dvi-target-libgo dvi-target-libgo
maybe-dvi-target-libgo:
@if target-libgo
maybe-dvi-target-libgo: dvi-target-libgo

dvi-target-libgo: \
    configure-target-libgo 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libgo"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libgo

.PHONY: maybe-pdf-target-libgo pdf-target-libgo
maybe-pdf-target-libgo:
@if target-libgo
maybe-pdf-target-libgo: pdf-target-libgo

pdf-target-libgo: \
    configure-target-libgo 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libgo"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libgo

.PHONY: maybe-html-target-libgo html-target-libgo
maybe-html-target-libgo:
@if target-libgo
maybe-html-target-libgo: html-target-libgo

html-target-libgo: \
    configure-target-libgo 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libgo"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libgo

.PHONY: maybe-TAGS-target-libgo TAGS-target-libgo
maybe-TAGS-target-libgo:
@if target-libgo
maybe-TAGS-target-libgo: TAGS-target-libgo

TAGS-target-libgo: \
    configure-target-libgo 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libgo"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libgo

.PHONY: maybe-install-info-target-libgo install-info-target-libgo
maybe-install-info-target-libgo:
@if target-libgo
maybe-install-info-target-libgo: install-info-target-libgo

install-info-target-libgo: \
    configure-target-libgo \
    info-target-libgo 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libgo"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libgo

.PHONY: maybe-install-pdf-target-libgo install-pdf-target-libgo
maybe-install-pdf-target-libgo:
@if target-libgo
maybe-install-pdf-target-libgo: install-pdf-target-libgo

install-pdf-target-libgo: \
    configure-target-libgo \
    pdf-target-libgo 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libgo"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libgo

.PHONY: maybe-install-html-target-libgo install-html-target-libgo
maybe-install-html-target-libgo:
@if target-libgo
maybe-install-html-target-libgo: install-html-target-libgo

install-html-target-libgo: \
    configure-target-libgo \
    html-target-libgo 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libgo"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libgo

.PHONY: maybe-installcheck-target-libgo installcheck-target-libgo
maybe-installcheck-target-libgo:
@if target-libgo
maybe-installcheck-target-libgo: installcheck-target-libgo

installcheck-target-libgo: \
    configure-target-libgo 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libgo"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libgo

.PHONY: maybe-mostlyclean-target-libgo mostlyclean-target-libgo
maybe-mostlyclean-target-libgo:
@if target-libgo
maybe-mostlyclean-target-libgo: mostlyclean-target-libgo

mostlyclean-target-libgo: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libgo"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libgo

.PHONY: maybe-clean-target-libgo clean-target-libgo
maybe-clean-target-libgo:
@if target-libgo
maybe-clean-target-libgo: clean-target-libgo

clean-target-libgo: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libgo"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libgo

.PHONY: maybe-distclean-target-libgo distclean-target-libgo
maybe-distclean-target-libgo:
@if target-libgo
maybe-distclean-target-libgo: distclean-target-libgo

distclean-target-libgo: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libgo"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libgo

.PHONY: maybe-maintainer-clean-target-libgo maintainer-clean-target-libgo
maybe-maintainer-clean-target-libgo:
@if target-libgo
maybe-maintainer-clean-target-libgo: maintainer-clean-target-libgo

maintainer-clean-target-libgo: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgo/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libgo"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgo && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libgo





.PHONY: configure-target-libhsail-rt maybe-configure-target-libhsail-rt
maybe-configure-target-libhsail-rt:
@if gcc-bootstrap
configure-target-libhsail-rt: stage_current
@endif gcc-bootstrap
@if target-libhsail-rt
maybe-configure-target-libhsail-rt: configure-target-libhsail-rt
configure-target-libhsail-rt: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libhsail-rt..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libhsail-rt; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libhsail-rt/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libhsail-rt/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libhsail-rt/multilib.tmp $(TARGET_SUBDIR)/libhsail-rt/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libhsail-rt/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libhsail-rt/Makefile; \
	    mv $(TARGET_SUBDIR)/libhsail-rt/multilib.tmp $(TARGET_SUBDIR)/libhsail-rt/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libhsail-rt/multilib.tmp $(TARGET_SUBDIR)/libhsail-rt/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libhsail-rt/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libhsail-rt; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libhsail-rt; \
	cd "$(TARGET_SUBDIR)/libhsail-rt" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libhsail-rt/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libhsail-rt; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libhsail-rt





.PHONY: all-target-libhsail-rt maybe-all-target-libhsail-rt
maybe-all-target-libhsail-rt:
@if gcc-bootstrap
all-target-libhsail-rt: stage_current
@endif gcc-bootstrap
@if target-libhsail-rt
TARGET-target-libhsail-rt=all
maybe-all-target-libhsail-rt: all-target-libhsail-rt
all-target-libhsail-rt: configure-target-libhsail-rt
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libhsail-rt && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-libhsail-rt))
@endif target-libhsail-rt





.PHONY: check-target-libhsail-rt maybe-check-target-libhsail-rt
maybe-check-target-libhsail-rt:
@if target-libhsail-rt
maybe-check-target-libhsail-rt: check-target-libhsail-rt

check-target-libhsail-rt:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libhsail-rt && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-libhsail-rt

.PHONY: install-target-libhsail-rt maybe-install-target-libhsail-rt
maybe-install-target-libhsail-rt:
@if target-libhsail-rt
maybe-install-target-libhsail-rt: install-target-libhsail-rt

install-target-libhsail-rt: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libhsail-rt && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libhsail-rt

.PHONY: install-strip-target-libhsail-rt maybe-install-strip-target-libhsail-rt
maybe-install-strip-target-libhsail-rt:
@if target-libhsail-rt
maybe-install-strip-target-libhsail-rt: install-strip-target-libhsail-rt

install-strip-target-libhsail-rt: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libhsail-rt && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libhsail-rt

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libhsail-rt info-target-libhsail-rt
maybe-info-target-libhsail-rt:
@if target-libhsail-rt
maybe-info-target-libhsail-rt: info-target-libhsail-rt

info-target-libhsail-rt: \
    configure-target-libhsail-rt 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libhsail-rt/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libhsail-rt"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libhsail-rt && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libhsail-rt

.PHONY: maybe-dvi-target-libhsail-rt dvi-target-libhsail-rt
maybe-dvi-target-libhsail-rt:
@if target-libhsail-rt
maybe-dvi-target-libhsail-rt: dvi-target-libhsail-rt

dvi-target-libhsail-rt: \
    configure-target-libhsail-rt 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libhsail-rt/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libhsail-rt"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libhsail-rt && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libhsail-rt

.PHONY: maybe-pdf-target-libhsail-rt pdf-target-libhsail-rt
maybe-pdf-target-libhsail-rt:
@if target-libhsail-rt
maybe-pdf-target-libhsail-rt: pdf-target-libhsail-rt

pdf-target-libhsail-rt: \
    configure-target-libhsail-rt 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libhsail-rt/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libhsail-rt"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libhsail-rt && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libhsail-rt

.PHONY: maybe-html-target-libhsail-rt html-target-libhsail-rt
maybe-html-target-libhsail-rt:
@if target-libhsail-rt
maybe-html-target-libhsail-rt: html-target-libhsail-rt

html-target-libhsail-rt: \
    configure-target-libhsail-rt 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libhsail-rt/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libhsail-rt"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libhsail-rt && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libhsail-rt

.PHONY: maybe-TAGS-target-libhsail-rt TAGS-target-libhsail-rt
maybe-TAGS-target-libhsail-rt:
@if target-libhsail-rt
maybe-TAGS-target-libhsail-rt: TAGS-target-libhsail-rt

TAGS-target-libhsail-rt: \
    configure-target-libhsail-rt 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libhsail-rt/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libhsail-rt"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libhsail-rt && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libhsail-rt

.PHONY: maybe-install-info-target-libhsail-rt install-info-target-libhsail-rt
maybe-install-info-target-libhsail-rt:
@if target-libhsail-rt
maybe-install-info-target-libhsail-rt: install-info-target-libhsail-rt

install-info-target-libhsail-rt: \
    configure-target-libhsail-rt \
    info-target-libhsail-rt 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libhsail-rt/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libhsail-rt"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libhsail-rt && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libhsail-rt

.PHONY: maybe-install-pdf-target-libhsail-rt install-pdf-target-libhsail-rt
maybe-install-pdf-target-libhsail-rt:
@if target-libhsail-rt
maybe-install-pdf-target-libhsail-rt: install-pdf-target-libhsail-rt

install-pdf-target-libhsail-rt: \
    configure-target-libhsail-rt \
    pdf-target-libhsail-rt 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libhsail-rt/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libhsail-rt"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libhsail-rt && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libhsail-rt

.PHONY: maybe-install-html-target-libhsail-rt install-html-target-libhsail-rt
maybe-install-html-target-libhsail-rt:
@if target-libhsail-rt
maybe-install-html-target-libhsail-rt: install-html-target-libhsail-rt

install-html-target-libhsail-rt: \
    configure-target-libhsail-rt \
    html-target-libhsail-rt 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libhsail-rt/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libhsail-rt"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libhsail-rt && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libhsail-rt

.PHONY: maybe-installcheck-target-libhsail-rt installcheck-target-libhsail-rt
maybe-installcheck-target-libhsail-rt:
@if target-libhsail-rt
maybe-installcheck-target-libhsail-rt: installcheck-target-libhsail-rt

installcheck-target-libhsail-rt: \
    configure-target-libhsail-rt 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libhsail-rt/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libhsail-rt"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libhsail-rt && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libhsail-rt

.PHONY: maybe-mostlyclean-target-libhsail-rt mostlyclean-target-libhsail-rt
maybe-mostlyclean-target-libhsail-rt:
@if target-libhsail-rt
maybe-mostlyclean-target-libhsail-rt: mostlyclean-target-libhsail-rt

mostlyclean-target-libhsail-rt: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libhsail-rt/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libhsail-rt"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libhsail-rt && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libhsail-rt

.PHONY: maybe-clean-target-libhsail-rt clean-target-libhsail-rt
maybe-clean-target-libhsail-rt:
@if target-libhsail-rt
maybe-clean-target-libhsail-rt: clean-target-libhsail-rt

clean-target-libhsail-rt: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libhsail-rt/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libhsail-rt"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libhsail-rt && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libhsail-rt

.PHONY: maybe-distclean-target-libhsail-rt distclean-target-libhsail-rt
maybe-distclean-target-libhsail-rt:
@if target-libhsail-rt
maybe-distclean-target-libhsail-rt: distclean-target-libhsail-rt

distclean-target-libhsail-rt: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libhsail-rt/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libhsail-rt"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libhsail-rt && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libhsail-rt

.PHONY: maybe-maintainer-clean-target-libhsail-rt maintainer-clean-target-libhsail-rt
maybe-maintainer-clean-target-libhsail-rt:
@if target-libhsail-rt
maybe-maintainer-clean-target-libhsail-rt: maintainer-clean-target-libhsail-rt

maintainer-clean-target-libhsail-rt: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libhsail-rt/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libhsail-rt"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libhsail-rt && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libhsail-rt





.PHONY: configure-target-libphobos maybe-configure-target-libphobos
maybe-configure-target-libphobos:
@if gcc-bootstrap
configure-target-libphobos: stage_current
@endif gcc-bootstrap
@if target-libphobos
maybe-configure-target-libphobos: configure-target-libphobos
configure-target-libphobos: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libphobos..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libphobos; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libphobos/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libphobos/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libphobos/multilib.tmp $(TARGET_SUBDIR)/libphobos/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libphobos/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libphobos/Makefile; \
	    mv $(TARGET_SUBDIR)/libphobos/multilib.tmp $(TARGET_SUBDIR)/libphobos/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libphobos/multilib.tmp $(TARGET_SUBDIR)/libphobos/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libphobos/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libphobos; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libphobos; \
	cd "$(TARGET_SUBDIR)/libphobos" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libphobos/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libphobos; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libphobos





.PHONY: all-target-libphobos maybe-all-target-libphobos
maybe-all-target-libphobos:
@if gcc-bootstrap
all-target-libphobos: stage_current
@endif gcc-bootstrap
@if target-libphobos
TARGET-target-libphobos=all
maybe-all-target-libphobos: all-target-libphobos
all-target-libphobos: configure-target-libphobos
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libphobos && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-libphobos))
@endif target-libphobos





.PHONY: check-target-libphobos maybe-check-target-libphobos
maybe-check-target-libphobos:
@if target-libphobos
maybe-check-target-libphobos: check-target-libphobos

check-target-libphobos:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libphobos && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-libphobos

.PHONY: install-target-libphobos maybe-install-target-libphobos
maybe-install-target-libphobos:
@if target-libphobos
maybe-install-target-libphobos: install-target-libphobos

install-target-libphobos: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libphobos && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libphobos

.PHONY: install-strip-target-libphobos maybe-install-strip-target-libphobos
maybe-install-strip-target-libphobos:
@if target-libphobos
maybe-install-strip-target-libphobos: install-strip-target-libphobos

install-strip-target-libphobos: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libphobos && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libphobos

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libphobos info-target-libphobos
maybe-info-target-libphobos:
@if target-libphobos
maybe-info-target-libphobos: info-target-libphobos

info-target-libphobos: \
    configure-target-libphobos 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libphobos"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libphobos && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libphobos

.PHONY: maybe-dvi-target-libphobos dvi-target-libphobos
maybe-dvi-target-libphobos:
@if target-libphobos
maybe-dvi-target-libphobos: dvi-target-libphobos

dvi-target-libphobos: \
    configure-target-libphobos 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libphobos"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libphobos && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libphobos

.PHONY: maybe-pdf-target-libphobos pdf-target-libphobos
maybe-pdf-target-libphobos:
@if target-libphobos
maybe-pdf-target-libphobos: pdf-target-libphobos

pdf-target-libphobos: \
    configure-target-libphobos 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libphobos"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libphobos && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libphobos

.PHONY: maybe-html-target-libphobos html-target-libphobos
maybe-html-target-libphobos:
@if target-libphobos
maybe-html-target-libphobos: html-target-libphobos

html-target-libphobos: \
    configure-target-libphobos 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libphobos"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libphobos && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libphobos

.PHONY: maybe-TAGS-target-libphobos TAGS-target-libphobos
maybe-TAGS-target-libphobos:
@if target-libphobos
maybe-TAGS-target-libphobos: TAGS-target-libphobos

TAGS-target-libphobos: \
    configure-target-libphobos 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libphobos"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libphobos && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libphobos

.PHONY: maybe-install-info-target-libphobos install-info-target-libphobos
maybe-install-info-target-libphobos:
@if target-libphobos
maybe-install-info-target-libphobos: install-info-target-libphobos

install-info-target-libphobos: \
    configure-target-libphobos \
    info-target-libphobos 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libphobos"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libphobos && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libphobos

.PHONY: maybe-install-pdf-target-libphobos install-pdf-target-libphobos
maybe-install-pdf-target-libphobos:
@if target-libphobos
maybe-install-pdf-target-libphobos: install-pdf-target-libphobos

install-pdf-target-libphobos: \
    configure-target-libphobos \
    pdf-target-libphobos 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libphobos"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libphobos && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libphobos

.PHONY: maybe-install-html-target-libphobos install-html-target-libphobos
maybe-install-html-target-libphobos:
@if target-libphobos
maybe-install-html-target-libphobos: install-html-target-libphobos

install-html-target-libphobos: \
    configure-target-libphobos \
    html-target-libphobos 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libphobos"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libphobos && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libphobos

.PHONY: maybe-installcheck-target-libphobos installcheck-target-libphobos
maybe-installcheck-target-libphobos:
@if target-libphobos
maybe-installcheck-target-libphobos: installcheck-target-libphobos

installcheck-target-libphobos: \
    configure-target-libphobos 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libphobos"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libphobos && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libphobos

.PHONY: maybe-mostlyclean-target-libphobos mostlyclean-target-libphobos
maybe-mostlyclean-target-libphobos:
@if target-libphobos
maybe-mostlyclean-target-libphobos: mostlyclean-target-libphobos

mostlyclean-target-libphobos: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libphobos"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libphobos && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libphobos

.PHONY: maybe-clean-target-libphobos clean-target-libphobos
maybe-clean-target-libphobos:
@if target-libphobos
maybe-clean-target-libphobos: clean-target-libphobos

clean-target-libphobos: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libphobos"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libphobos && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libphobos

.PHONY: maybe-distclean-target-libphobos distclean-target-libphobos
maybe-distclean-target-libphobos:
@if target-libphobos
maybe-distclean-target-libphobos: distclean-target-libphobos

distclean-target-libphobos: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libphobos"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libphobos && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libphobos

.PHONY: maybe-maintainer-clean-target-libphobos maintainer-clean-target-libphobos
maybe-maintainer-clean-target-libphobos:
@if target-libphobos
maybe-maintainer-clean-target-libphobos: maintainer-clean-target-libphobos

maintainer-clean-target-libphobos: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libphobos"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libphobos && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libphobos





.PHONY: configure-target-libtermcap maybe-configure-target-libtermcap
maybe-configure-target-libtermcap:
@if gcc-bootstrap
configure-target-libtermcap: stage_current
@endif gcc-bootstrap
@if target-libtermcap
maybe-configure-target-libtermcap: configure-target-libtermcap
configure-target-libtermcap: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libtermcap..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libtermcap; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libtermcap/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libtermcap/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libtermcap/multilib.tmp $(TARGET_SUBDIR)/libtermcap/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libtermcap/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libtermcap/Makefile; \
	    mv $(TARGET_SUBDIR)/libtermcap/multilib.tmp $(TARGET_SUBDIR)/libtermcap/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libtermcap/multilib.tmp $(TARGET_SUBDIR)/libtermcap/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libtermcap/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libtermcap; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libtermcap; \
	cd "$(TARGET_SUBDIR)/libtermcap" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libtermcap/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libtermcap; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libtermcap





.PHONY: all-target-libtermcap maybe-all-target-libtermcap
maybe-all-target-libtermcap:
@if gcc-bootstrap
all-target-libtermcap: stage_current
@endif gcc-bootstrap
@if target-libtermcap
TARGET-target-libtermcap=all
maybe-all-target-libtermcap: all-target-libtermcap
all-target-libtermcap: configure-target-libtermcap
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-libtermcap))
@endif target-libtermcap





.PHONY: check-target-libtermcap maybe-check-target-libtermcap
maybe-check-target-libtermcap:
@if target-libtermcap
maybe-check-target-libtermcap: check-target-libtermcap

# Dummy target for uncheckable module.
check-target-libtermcap:

@endif target-libtermcap

.PHONY: install-target-libtermcap maybe-install-target-libtermcap
maybe-install-target-libtermcap:
@if target-libtermcap
maybe-install-target-libtermcap: install-target-libtermcap

install-target-libtermcap: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libtermcap && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libtermcap

.PHONY: install-strip-target-libtermcap maybe-install-strip-target-libtermcap
maybe-install-strip-target-libtermcap:
@if target-libtermcap
maybe-install-strip-target-libtermcap: install-strip-target-libtermcap

install-strip-target-libtermcap: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libtermcap && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libtermcap

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libtermcap info-target-libtermcap
maybe-info-target-libtermcap:
@if target-libtermcap
maybe-info-target-libtermcap: info-target-libtermcap

info-target-libtermcap: \
    configure-target-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libtermcap"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libtermcap

.PHONY: maybe-dvi-target-libtermcap dvi-target-libtermcap
maybe-dvi-target-libtermcap:
@if target-libtermcap
maybe-dvi-target-libtermcap: dvi-target-libtermcap

dvi-target-libtermcap: \
    configure-target-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libtermcap"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libtermcap

.PHONY: maybe-pdf-target-libtermcap pdf-target-libtermcap
maybe-pdf-target-libtermcap:
@if target-libtermcap
maybe-pdf-target-libtermcap: pdf-target-libtermcap

pdf-target-libtermcap: \
    configure-target-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libtermcap"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libtermcap

.PHONY: maybe-html-target-libtermcap html-target-libtermcap
maybe-html-target-libtermcap:
@if target-libtermcap
maybe-html-target-libtermcap: html-target-libtermcap

html-target-libtermcap: \
    configure-target-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libtermcap"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libtermcap

.PHONY: maybe-TAGS-target-libtermcap TAGS-target-libtermcap
maybe-TAGS-target-libtermcap:
@if target-libtermcap
maybe-TAGS-target-libtermcap: TAGS-target-libtermcap

TAGS-target-libtermcap: \
    configure-target-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libtermcap"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libtermcap

.PHONY: maybe-install-info-target-libtermcap install-info-target-libtermcap
maybe-install-info-target-libtermcap:
@if target-libtermcap
maybe-install-info-target-libtermcap: install-info-target-libtermcap

install-info-target-libtermcap: \
    configure-target-libtermcap \
    info-target-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libtermcap"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libtermcap

.PHONY: maybe-install-pdf-target-libtermcap install-pdf-target-libtermcap
maybe-install-pdf-target-libtermcap:
@if target-libtermcap
maybe-install-pdf-target-libtermcap: install-pdf-target-libtermcap

install-pdf-target-libtermcap: \
    configure-target-libtermcap \
    pdf-target-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libtermcap"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libtermcap

.PHONY: maybe-install-html-target-libtermcap install-html-target-libtermcap
maybe-install-html-target-libtermcap:
@if target-libtermcap
maybe-install-html-target-libtermcap: install-html-target-libtermcap

install-html-target-libtermcap: \
    configure-target-libtermcap \
    html-target-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libtermcap"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libtermcap

.PHONY: maybe-installcheck-target-libtermcap installcheck-target-libtermcap
maybe-installcheck-target-libtermcap:
@if target-libtermcap
maybe-installcheck-target-libtermcap: installcheck-target-libtermcap

installcheck-target-libtermcap: \
    configure-target-libtermcap 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libtermcap/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libtermcap"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libtermcap && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libtermcap

.PHONY: maybe-mostlyclean-target-libtermcap mostlyclean-target-libtermcap
maybe-mostlyclean-target-libtermcap:
@if target-libtermcap
maybe-mostlyclean-target-libtermcap: mostlyclean-target-libtermcap

# libtermcap doesn't support mostlyclean.
mostlyclean-target-libtermcap:

@endif target-libtermcap

.PHONY: maybe-clean-target-libtermcap clean-target-libtermcap
maybe-clean-target-libtermcap:
@if target-libtermcap
maybe-clean-target-libtermcap: clean-target-libtermcap

# libtermcap doesn't support clean.
clean-target-libtermcap:

@endif target-libtermcap

.PHONY: maybe-distclean-target-libtermcap distclean-target-libtermcap
maybe-distclean-target-libtermcap:
@if target-libtermcap
maybe-distclean-target-libtermcap: distclean-target-libtermcap

# libtermcap doesn't support distclean.
distclean-target-libtermcap:

@endif target-libtermcap

.PHONY: maybe-maintainer-clean-target-libtermcap maintainer-clean-target-libtermcap
maybe-maintainer-clean-target-libtermcap:
@if target-libtermcap
maybe-maintainer-clean-target-libtermcap: maintainer-clean-target-libtermcap

# libtermcap doesn't support maintainer-clean.
maintainer-clean-target-libtermcap:

@endif target-libtermcap





.PHONY: configure-target-winsup maybe-configure-target-winsup
maybe-configure-target-winsup:
@if gcc-bootstrap
configure-target-winsup: stage_current
@endif gcc-bootstrap
@if target-winsup
maybe-configure-target-winsup: configure-target-winsup
configure-target-winsup: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for winsup..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/winsup; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/winsup/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/winsup/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/winsup/multilib.tmp $(TARGET_SUBDIR)/winsup/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/winsup/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/winsup/Makefile; \
	    mv $(TARGET_SUBDIR)/winsup/multilib.tmp $(TARGET_SUBDIR)/winsup/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/winsup/multilib.tmp $(TARGET_SUBDIR)/winsup/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/winsup/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/winsup; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/winsup; \
	cd "$(TARGET_SUBDIR)/winsup" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/winsup/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=winsup; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-winsup





.PHONY: all-target-winsup maybe-all-target-winsup
maybe-all-target-winsup:
@if gcc-bootstrap
all-target-winsup: stage_current
@endif gcc-bootstrap
@if target-winsup
TARGET-target-winsup=all
maybe-all-target-winsup: all-target-winsup
all-target-winsup: configure-target-winsup
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/winsup && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-winsup))
@endif target-winsup





.PHONY: check-target-winsup maybe-check-target-winsup
maybe-check-target-winsup:
@if target-winsup
maybe-check-target-winsup: check-target-winsup

check-target-winsup:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/winsup && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-winsup

.PHONY: install-target-winsup maybe-install-target-winsup
maybe-install-target-winsup:
@if target-winsup
maybe-install-target-winsup: install-target-winsup

install-target-winsup: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/winsup && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-winsup

.PHONY: install-strip-target-winsup maybe-install-strip-target-winsup
maybe-install-strip-target-winsup:
@if target-winsup
maybe-install-strip-target-winsup: install-strip-target-winsup

install-strip-target-winsup: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/winsup && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-winsup

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-winsup info-target-winsup
maybe-info-target-winsup:
@if target-winsup
maybe-info-target-winsup: info-target-winsup

info-target-winsup: \
    configure-target-winsup 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/winsup"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/winsup && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-winsup

.PHONY: maybe-dvi-target-winsup dvi-target-winsup
maybe-dvi-target-winsup:
@if target-winsup
maybe-dvi-target-winsup: dvi-target-winsup

dvi-target-winsup: \
    configure-target-winsup 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/winsup"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/winsup && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-winsup

.PHONY: maybe-pdf-target-winsup pdf-target-winsup
maybe-pdf-target-winsup:
@if target-winsup
maybe-pdf-target-winsup: pdf-target-winsup

pdf-target-winsup: \
    configure-target-winsup 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/winsup"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/winsup && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-winsup

.PHONY: maybe-html-target-winsup html-target-winsup
maybe-html-target-winsup:
@if target-winsup
maybe-html-target-winsup: html-target-winsup

html-target-winsup: \
    configure-target-winsup 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/winsup"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/winsup && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-winsup

.PHONY: maybe-TAGS-target-winsup TAGS-target-winsup
maybe-TAGS-target-winsup:
@if target-winsup
maybe-TAGS-target-winsup: TAGS-target-winsup

TAGS-target-winsup: \
    configure-target-winsup 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/winsup"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/winsup && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-winsup

.PHONY: maybe-install-info-target-winsup install-info-target-winsup
maybe-install-info-target-winsup:
@if target-winsup
maybe-install-info-target-winsup: install-info-target-winsup

install-info-target-winsup: \
    configure-target-winsup \
    info-target-winsup 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/winsup"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/winsup && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-winsup

.PHONY: maybe-install-pdf-target-winsup install-pdf-target-winsup
maybe-install-pdf-target-winsup:
@if target-winsup
maybe-install-pdf-target-winsup: install-pdf-target-winsup

install-pdf-target-winsup: \
    configure-target-winsup \
    pdf-target-winsup 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/winsup"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/winsup && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-winsup

.PHONY: maybe-install-html-target-winsup install-html-target-winsup
maybe-install-html-target-winsup:
@if target-winsup
maybe-install-html-target-winsup: install-html-target-winsup

install-html-target-winsup: \
    configure-target-winsup \
    html-target-winsup 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/winsup"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/winsup && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-winsup

.PHONY: maybe-installcheck-target-winsup installcheck-target-winsup
maybe-installcheck-target-winsup:
@if target-winsup
maybe-installcheck-target-winsup: installcheck-target-winsup

installcheck-target-winsup: \
    configure-target-winsup 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/winsup"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/winsup && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-winsup

.PHONY: maybe-mostlyclean-target-winsup mostlyclean-target-winsup
maybe-mostlyclean-target-winsup:
@if target-winsup
maybe-mostlyclean-target-winsup: mostlyclean-target-winsup

mostlyclean-target-winsup: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/winsup"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/winsup && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-winsup

.PHONY: maybe-clean-target-winsup clean-target-winsup
maybe-clean-target-winsup:
@if target-winsup
maybe-clean-target-winsup: clean-target-winsup

clean-target-winsup: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/winsup"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/winsup && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-winsup

.PHONY: maybe-distclean-target-winsup distclean-target-winsup
maybe-distclean-target-winsup:
@if target-winsup
maybe-distclean-target-winsup: distclean-target-winsup

distclean-target-winsup: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/winsup"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/winsup && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-winsup

.PHONY: maybe-maintainer-clean-target-winsup maintainer-clean-target-winsup
maybe-maintainer-clean-target-winsup:
@if target-winsup
maybe-maintainer-clean-target-winsup: maintainer-clean-target-winsup

maintainer-clean-target-winsup: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/winsup/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/winsup"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/winsup && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-winsup





.PHONY: configure-target-libgloss maybe-configure-target-libgloss
maybe-configure-target-libgloss:
@if gcc-bootstrap
configure-target-libgloss: stage_current
@endif gcc-bootstrap
@if target-libgloss
maybe-configure-target-libgloss: configure-target-libgloss
configure-target-libgloss: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libgloss..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgloss; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgloss/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgloss/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgloss/multilib.tmp $(TARGET_SUBDIR)/libgloss/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgloss/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgloss/Makefile; \
	    mv $(TARGET_SUBDIR)/libgloss/multilib.tmp $(TARGET_SUBDIR)/libgloss/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgloss/multilib.tmp $(TARGET_SUBDIR)/libgloss/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgloss/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgloss; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libgloss; \
	cd "$(TARGET_SUBDIR)/libgloss" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgloss/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgloss; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libgloss





.PHONY: all-target-libgloss maybe-all-target-libgloss
maybe-all-target-libgloss:
@if gcc-bootstrap
all-target-libgloss: stage_current
@endif gcc-bootstrap
@if target-libgloss
TARGET-target-libgloss=all
maybe-all-target-libgloss: all-target-libgloss
all-target-libgloss: configure-target-libgloss
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libgloss && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-libgloss))
@endif target-libgloss





.PHONY: check-target-libgloss maybe-check-target-libgloss
maybe-check-target-libgloss:
@if target-libgloss
maybe-check-target-libgloss: check-target-libgloss

# Dummy target for uncheckable module.
check-target-libgloss:

@endif target-libgloss

.PHONY: install-target-libgloss maybe-install-target-libgloss
maybe-install-target-libgloss:
@if target-libgloss
maybe-install-target-libgloss: install-target-libgloss

install-target-libgloss: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libgloss && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libgloss

.PHONY: install-strip-target-libgloss maybe-install-strip-target-libgloss
maybe-install-strip-target-libgloss:
@if target-libgloss
maybe-install-strip-target-libgloss: install-strip-target-libgloss

install-strip-target-libgloss: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libgloss && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libgloss

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libgloss info-target-libgloss
maybe-info-target-libgloss:
@if target-libgloss
maybe-info-target-libgloss: info-target-libgloss

info-target-libgloss: \
    configure-target-libgloss 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libgloss"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgloss && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libgloss

.PHONY: maybe-dvi-target-libgloss dvi-target-libgloss
maybe-dvi-target-libgloss:
@if target-libgloss
maybe-dvi-target-libgloss: dvi-target-libgloss

dvi-target-libgloss: \
    configure-target-libgloss 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libgloss"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgloss && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libgloss

.PHONY: maybe-pdf-target-libgloss pdf-target-libgloss
maybe-pdf-target-libgloss:
@if target-libgloss
maybe-pdf-target-libgloss: pdf-target-libgloss

pdf-target-libgloss: \
    configure-target-libgloss 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libgloss"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgloss && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libgloss

.PHONY: maybe-html-target-libgloss html-target-libgloss
maybe-html-target-libgloss:
@if target-libgloss
maybe-html-target-libgloss: html-target-libgloss

html-target-libgloss: \
    configure-target-libgloss 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libgloss"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgloss && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libgloss

.PHONY: maybe-TAGS-target-libgloss TAGS-target-libgloss
maybe-TAGS-target-libgloss:
@if target-libgloss
maybe-TAGS-target-libgloss: TAGS-target-libgloss

TAGS-target-libgloss: \
    configure-target-libgloss 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libgloss"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgloss && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libgloss

.PHONY: maybe-install-info-target-libgloss install-info-target-libgloss
maybe-install-info-target-libgloss:
@if target-libgloss
maybe-install-info-target-libgloss: install-info-target-libgloss

install-info-target-libgloss: \
    configure-target-libgloss \
    info-target-libgloss 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libgloss"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgloss && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libgloss

.PHONY: maybe-install-pdf-target-libgloss install-pdf-target-libgloss
maybe-install-pdf-target-libgloss:
@if target-libgloss
maybe-install-pdf-target-libgloss: install-pdf-target-libgloss

install-pdf-target-libgloss: \
    configure-target-libgloss \
    pdf-target-libgloss 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libgloss"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgloss && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libgloss

.PHONY: maybe-install-html-target-libgloss install-html-target-libgloss
maybe-install-html-target-libgloss:
@if target-libgloss
maybe-install-html-target-libgloss: install-html-target-libgloss

install-html-target-libgloss: \
    configure-target-libgloss \
    html-target-libgloss 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libgloss"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgloss && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libgloss

.PHONY: maybe-installcheck-target-libgloss installcheck-target-libgloss
maybe-installcheck-target-libgloss:
@if target-libgloss
maybe-installcheck-target-libgloss: installcheck-target-libgloss

installcheck-target-libgloss: \
    configure-target-libgloss 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libgloss"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgloss && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libgloss

.PHONY: maybe-mostlyclean-target-libgloss mostlyclean-target-libgloss
maybe-mostlyclean-target-libgloss:
@if target-libgloss
maybe-mostlyclean-target-libgloss: mostlyclean-target-libgloss

mostlyclean-target-libgloss: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libgloss"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgloss && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libgloss

.PHONY: maybe-clean-target-libgloss clean-target-libgloss
maybe-clean-target-libgloss:
@if target-libgloss
maybe-clean-target-libgloss: clean-target-libgloss

clean-target-libgloss: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libgloss"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgloss && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libgloss

.PHONY: maybe-distclean-target-libgloss distclean-target-libgloss
maybe-distclean-target-libgloss:
@if target-libgloss
maybe-distclean-target-libgloss: distclean-target-libgloss

distclean-target-libgloss: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libgloss"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgloss && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libgloss

.PHONY: maybe-maintainer-clean-target-libgloss maintainer-clean-target-libgloss
maybe-maintainer-clean-target-libgloss:
@if target-libgloss
maybe-maintainer-clean-target-libgloss: maintainer-clean-target-libgloss

maintainer-clean-target-libgloss: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgloss/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libgloss"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgloss && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libgloss





.PHONY: configure-target-libffi maybe-configure-target-libffi
maybe-configure-target-libffi:
@if gcc-bootstrap
configure-target-libffi: stage_current
@endif gcc-bootstrap
@if target-libffi
maybe-configure-target-libffi: configure-target-libffi
configure-target-libffi: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libffi..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libffi; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libffi/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libffi/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libffi/multilib.tmp $(TARGET_SUBDIR)/libffi/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libffi/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libffi/Makefile; \
	    mv $(TARGET_SUBDIR)/libffi/multilib.tmp $(TARGET_SUBDIR)/libffi/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libffi/multilib.tmp $(TARGET_SUBDIR)/libffi/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libffi/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libffi; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libffi; \
	cd "$(TARGET_SUBDIR)/libffi" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libffi/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libffi; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libffi





.PHONY: all-target-libffi maybe-all-target-libffi
maybe-all-target-libffi:
@if gcc-bootstrap
all-target-libffi: stage_current
@endif gcc-bootstrap
@if target-libffi
TARGET-target-libffi=all
maybe-all-target-libffi: all-target-libffi
all-target-libffi: configure-target-libffi
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libffi && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-libffi))
@endif target-libffi





.PHONY: check-target-libffi maybe-check-target-libffi
maybe-check-target-libffi:
@if target-libffi
maybe-check-target-libffi: check-target-libffi

check-target-libffi:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libffi && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-libffi

.PHONY: install-target-libffi maybe-install-target-libffi
maybe-install-target-libffi:
@if target-libffi
maybe-install-target-libffi: install-target-libffi

# Dummy target for uninstallable.
install-target-libffi:

@endif target-libffi

.PHONY: install-strip-target-libffi maybe-install-strip-target-libffi
maybe-install-strip-target-libffi:
@if target-libffi
maybe-install-strip-target-libffi: install-strip-target-libffi

# Dummy target for uninstallable.
install-strip-target-libffi:

@endif target-libffi

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libffi info-target-libffi
maybe-info-target-libffi:
@if target-libffi
maybe-info-target-libffi: info-target-libffi

info-target-libffi: \
    configure-target-libffi 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libffi"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libffi && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libffi

.PHONY: maybe-dvi-target-libffi dvi-target-libffi
maybe-dvi-target-libffi:
@if target-libffi
maybe-dvi-target-libffi: dvi-target-libffi

dvi-target-libffi: \
    configure-target-libffi 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libffi"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libffi && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libffi

.PHONY: maybe-pdf-target-libffi pdf-target-libffi
maybe-pdf-target-libffi:
@if target-libffi
maybe-pdf-target-libffi: pdf-target-libffi

pdf-target-libffi: \
    configure-target-libffi 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libffi"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libffi && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libffi

.PHONY: maybe-html-target-libffi html-target-libffi
maybe-html-target-libffi:
@if target-libffi
maybe-html-target-libffi: html-target-libffi

html-target-libffi: \
    configure-target-libffi 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libffi"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libffi && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libffi

.PHONY: maybe-TAGS-target-libffi TAGS-target-libffi
maybe-TAGS-target-libffi:
@if target-libffi
maybe-TAGS-target-libffi: TAGS-target-libffi

TAGS-target-libffi: \
    configure-target-libffi 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libffi"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libffi && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libffi

.PHONY: maybe-install-info-target-libffi install-info-target-libffi
maybe-install-info-target-libffi:
@if target-libffi
maybe-install-info-target-libffi: install-info-target-libffi

install-info-target-libffi: \
    configure-target-libffi \
    info-target-libffi 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libffi"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libffi && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libffi

.PHONY: maybe-install-pdf-target-libffi install-pdf-target-libffi
maybe-install-pdf-target-libffi:
@if target-libffi
maybe-install-pdf-target-libffi: install-pdf-target-libffi

install-pdf-target-libffi: \
    configure-target-libffi \
    pdf-target-libffi 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libffi"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libffi && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libffi

.PHONY: maybe-install-html-target-libffi install-html-target-libffi
maybe-install-html-target-libffi:
@if target-libffi
maybe-install-html-target-libffi: install-html-target-libffi

install-html-target-libffi: \
    configure-target-libffi \
    html-target-libffi 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libffi"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libffi && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libffi

.PHONY: maybe-installcheck-target-libffi installcheck-target-libffi
maybe-installcheck-target-libffi:
@if target-libffi
maybe-installcheck-target-libffi: installcheck-target-libffi

installcheck-target-libffi: \
    configure-target-libffi 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libffi"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libffi && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libffi

.PHONY: maybe-mostlyclean-target-libffi mostlyclean-target-libffi
maybe-mostlyclean-target-libffi:
@if target-libffi
maybe-mostlyclean-target-libffi: mostlyclean-target-libffi

mostlyclean-target-libffi: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libffi"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libffi && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libffi

.PHONY: maybe-clean-target-libffi clean-target-libffi
maybe-clean-target-libffi:
@if target-libffi
maybe-clean-target-libffi: clean-target-libffi

clean-target-libffi: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libffi"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libffi && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libffi

.PHONY: maybe-distclean-target-libffi distclean-target-libffi
maybe-distclean-target-libffi:
@if target-libffi
maybe-distclean-target-libffi: distclean-target-libffi

distclean-target-libffi: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libffi"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libffi && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libffi

.PHONY: maybe-maintainer-clean-target-libffi maintainer-clean-target-libffi
maybe-maintainer-clean-target-libffi:
@if target-libffi
maybe-maintainer-clean-target-libffi: maintainer-clean-target-libffi

maintainer-clean-target-libffi: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libffi/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libffi"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libffi && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libffi





.PHONY: configure-target-zlib maybe-configure-target-zlib
maybe-configure-target-zlib:
@if gcc-bootstrap
configure-target-zlib: stage_current
@endif gcc-bootstrap
@if target-zlib
maybe-configure-target-zlib: configure-target-zlib
configure-target-zlib: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for zlib..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/zlib; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/zlib/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/zlib/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/zlib/multilib.tmp $(TARGET_SUBDIR)/zlib/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/zlib/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/zlib/Makefile; \
	    mv $(TARGET_SUBDIR)/zlib/multilib.tmp $(TARGET_SUBDIR)/zlib/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/zlib/multilib.tmp $(TARGET_SUBDIR)/zlib/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/zlib/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/zlib; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/zlib; \
	cd "$(TARGET_SUBDIR)/zlib" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/zlib/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=zlib; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-zlib





.PHONY: all-target-zlib maybe-all-target-zlib
maybe-all-target-zlib:
@if gcc-bootstrap
all-target-zlib: stage_current
@endif gcc-bootstrap
@if target-zlib
TARGET-target-zlib=all
maybe-all-target-zlib: all-target-zlib
all-target-zlib: configure-target-zlib
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-zlib))
@endif target-zlib





.PHONY: check-target-zlib maybe-check-target-zlib
maybe-check-target-zlib:
@if target-zlib
maybe-check-target-zlib: check-target-zlib

check-target-zlib:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/zlib && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-zlib

.PHONY: install-target-zlib maybe-install-target-zlib
maybe-install-target-zlib:
@if target-zlib
maybe-install-target-zlib: install-target-zlib

install-target-zlib: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/zlib && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-zlib

.PHONY: install-strip-target-zlib maybe-install-strip-target-zlib
maybe-install-strip-target-zlib:
@if target-zlib
maybe-install-strip-target-zlib: install-strip-target-zlib

install-strip-target-zlib: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/zlib && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-zlib

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-zlib info-target-zlib
maybe-info-target-zlib:
@if target-zlib
maybe-info-target-zlib: info-target-zlib

info-target-zlib: \
    configure-target-zlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/zlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-zlib

.PHONY: maybe-dvi-target-zlib dvi-target-zlib
maybe-dvi-target-zlib:
@if target-zlib
maybe-dvi-target-zlib: dvi-target-zlib

dvi-target-zlib: \
    configure-target-zlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/zlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-zlib

.PHONY: maybe-pdf-target-zlib pdf-target-zlib
maybe-pdf-target-zlib:
@if target-zlib
maybe-pdf-target-zlib: pdf-target-zlib

pdf-target-zlib: \
    configure-target-zlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/zlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-zlib

.PHONY: maybe-html-target-zlib html-target-zlib
maybe-html-target-zlib:
@if target-zlib
maybe-html-target-zlib: html-target-zlib

html-target-zlib: \
    configure-target-zlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/zlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-zlib

.PHONY: maybe-TAGS-target-zlib TAGS-target-zlib
maybe-TAGS-target-zlib:
@if target-zlib
maybe-TAGS-target-zlib: TAGS-target-zlib

TAGS-target-zlib: \
    configure-target-zlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/zlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-zlib

.PHONY: maybe-install-info-target-zlib install-info-target-zlib
maybe-install-info-target-zlib:
@if target-zlib
maybe-install-info-target-zlib: install-info-target-zlib

install-info-target-zlib: \
    configure-target-zlib \
    info-target-zlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/zlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-zlib

.PHONY: maybe-install-pdf-target-zlib install-pdf-target-zlib
maybe-install-pdf-target-zlib:
@if target-zlib
maybe-install-pdf-target-zlib: install-pdf-target-zlib

install-pdf-target-zlib: \
    configure-target-zlib \
    pdf-target-zlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/zlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-zlib

.PHONY: maybe-install-html-target-zlib install-html-target-zlib
maybe-install-html-target-zlib:
@if target-zlib
maybe-install-html-target-zlib: install-html-target-zlib

install-html-target-zlib: \
    configure-target-zlib \
    html-target-zlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/zlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-zlib

.PHONY: maybe-installcheck-target-zlib installcheck-target-zlib
maybe-installcheck-target-zlib:
@if target-zlib
maybe-installcheck-target-zlib: installcheck-target-zlib

installcheck-target-zlib: \
    configure-target-zlib 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/zlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-zlib

.PHONY: maybe-mostlyclean-target-zlib mostlyclean-target-zlib
maybe-mostlyclean-target-zlib:
@if target-zlib
maybe-mostlyclean-target-zlib: mostlyclean-target-zlib

mostlyclean-target-zlib: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/zlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-zlib

.PHONY: maybe-clean-target-zlib clean-target-zlib
maybe-clean-target-zlib:
@if target-zlib
maybe-clean-target-zlib: clean-target-zlib

clean-target-zlib: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/zlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-zlib

.PHONY: maybe-distclean-target-zlib distclean-target-zlib
maybe-distclean-target-zlib:
@if target-zlib
maybe-distclean-target-zlib: distclean-target-zlib

distclean-target-zlib: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/zlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-zlib

.PHONY: maybe-maintainer-clean-target-zlib maintainer-clean-target-zlib
maybe-maintainer-clean-target-zlib:
@if target-zlib
maybe-maintainer-clean-target-zlib: maintainer-clean-target-zlib

maintainer-clean-target-zlib: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/zlib"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/zlib && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-zlib





.PHONY: configure-target-rda maybe-configure-target-rda
maybe-configure-target-rda:
@if gcc-bootstrap
configure-target-rda: stage_current
@endif gcc-bootstrap
@if target-rda
maybe-configure-target-rda: configure-target-rda
configure-target-rda: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for rda..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/rda; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/rda/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/rda/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/rda/multilib.tmp $(TARGET_SUBDIR)/rda/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/rda/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/rda/Makefile; \
	    mv $(TARGET_SUBDIR)/rda/multilib.tmp $(TARGET_SUBDIR)/rda/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/rda/multilib.tmp $(TARGET_SUBDIR)/rda/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/rda/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/rda; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/rda; \
	cd "$(TARGET_SUBDIR)/rda" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/rda/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=rda; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-rda





.PHONY: all-target-rda maybe-all-target-rda
maybe-all-target-rda:
@if gcc-bootstrap
all-target-rda: stage_current
@endif gcc-bootstrap
@if target-rda
TARGET-target-rda=all
maybe-all-target-rda: all-target-rda
all-target-rda: configure-target-rda
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/rda && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-rda))
@endif target-rda





.PHONY: check-target-rda maybe-check-target-rda
maybe-check-target-rda:
@if target-rda
maybe-check-target-rda: check-target-rda

check-target-rda:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/rda && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-rda

.PHONY: install-target-rda maybe-install-target-rda
maybe-install-target-rda:
@if target-rda
maybe-install-target-rda: install-target-rda

install-target-rda: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/rda && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-rda

.PHONY: install-strip-target-rda maybe-install-strip-target-rda
maybe-install-strip-target-rda:
@if target-rda
maybe-install-strip-target-rda: install-strip-target-rda

install-strip-target-rda: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/rda && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-rda

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-rda info-target-rda
maybe-info-target-rda:
@if target-rda
maybe-info-target-rda: info-target-rda

info-target-rda: \
    configure-target-rda 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/rda"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/rda && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-rda

.PHONY: maybe-dvi-target-rda dvi-target-rda
maybe-dvi-target-rda:
@if target-rda
maybe-dvi-target-rda: dvi-target-rda

dvi-target-rda: \
    configure-target-rda 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/rda"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/rda && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-rda

.PHONY: maybe-pdf-target-rda pdf-target-rda
maybe-pdf-target-rda:
@if target-rda
maybe-pdf-target-rda: pdf-target-rda

pdf-target-rda: \
    configure-target-rda 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/rda"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/rda && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-rda

.PHONY: maybe-html-target-rda html-target-rda
maybe-html-target-rda:
@if target-rda
maybe-html-target-rda: html-target-rda

html-target-rda: \
    configure-target-rda 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/rda"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/rda && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-rda

.PHONY: maybe-TAGS-target-rda TAGS-target-rda
maybe-TAGS-target-rda:
@if target-rda
maybe-TAGS-target-rda: TAGS-target-rda

TAGS-target-rda: \
    configure-target-rda 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/rda"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/rda && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-rda

.PHONY: maybe-install-info-target-rda install-info-target-rda
maybe-install-info-target-rda:
@if target-rda
maybe-install-info-target-rda: install-info-target-rda

install-info-target-rda: \
    configure-target-rda \
    info-target-rda 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/rda"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/rda && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-rda

.PHONY: maybe-install-pdf-target-rda install-pdf-target-rda
maybe-install-pdf-target-rda:
@if target-rda
maybe-install-pdf-target-rda: install-pdf-target-rda

install-pdf-target-rda: \
    configure-target-rda \
    pdf-target-rda 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/rda"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/rda && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-rda

.PHONY: maybe-install-html-target-rda install-html-target-rda
maybe-install-html-target-rda:
@if target-rda
maybe-install-html-target-rda: install-html-target-rda

install-html-target-rda: \
    configure-target-rda \
    html-target-rda 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/rda"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/rda && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-rda

.PHONY: maybe-installcheck-target-rda installcheck-target-rda
maybe-installcheck-target-rda:
@if target-rda
maybe-installcheck-target-rda: installcheck-target-rda

installcheck-target-rda: \
    configure-target-rda 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/rda"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/rda && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-rda

.PHONY: maybe-mostlyclean-target-rda mostlyclean-target-rda
maybe-mostlyclean-target-rda:
@if target-rda
maybe-mostlyclean-target-rda: mostlyclean-target-rda

mostlyclean-target-rda: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/rda"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/rda && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-rda

.PHONY: maybe-clean-target-rda clean-target-rda
maybe-clean-target-rda:
@if target-rda
maybe-clean-target-rda: clean-target-rda

clean-target-rda: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/rda"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/rda && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-rda

.PHONY: maybe-distclean-target-rda distclean-target-rda
maybe-distclean-target-rda:
@if target-rda
maybe-distclean-target-rda: distclean-target-rda

distclean-target-rda: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/rda"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/rda && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-rda

.PHONY: maybe-maintainer-clean-target-rda maintainer-clean-target-rda
maybe-maintainer-clean-target-rda:
@if target-rda
maybe-maintainer-clean-target-rda: maintainer-clean-target-rda

maintainer-clean-target-rda: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/rda/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/rda"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/rda && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-rda





.PHONY: configure-target-libada maybe-configure-target-libada
maybe-configure-target-libada:
@if gcc-bootstrap
configure-target-libada: stage_current
@endif gcc-bootstrap
@if target-libada
maybe-configure-target-libada: configure-target-libada
configure-target-libada: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libada..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libada; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libada/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libada/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libada/multilib.tmp $(TARGET_SUBDIR)/libada/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libada/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libada/Makefile; \
	    mv $(TARGET_SUBDIR)/libada/multilib.tmp $(TARGET_SUBDIR)/libada/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libada/multilib.tmp $(TARGET_SUBDIR)/libada/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libada/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libada; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libada; \
	cd "$(TARGET_SUBDIR)/libada" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libada/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libada; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libada





.PHONY: all-target-libada maybe-all-target-libada
maybe-all-target-libada:
@if gcc-bootstrap
all-target-libada: stage_current
@endif gcc-bootstrap
@if target-libada
TARGET-target-libada=all
maybe-all-target-libada: all-target-libada
all-target-libada: configure-target-libada
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libada && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-libada))
@endif target-libada





.PHONY: check-target-libada maybe-check-target-libada
maybe-check-target-libada:
@if target-libada
maybe-check-target-libada: check-target-libada

check-target-libada:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libada && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-libada

.PHONY: install-target-libada maybe-install-target-libada
maybe-install-target-libada:
@if target-libada
maybe-install-target-libada: install-target-libada

install-target-libada: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libada && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libada

.PHONY: install-strip-target-libada maybe-install-strip-target-libada
maybe-install-strip-target-libada:
@if target-libada
maybe-install-strip-target-libada: install-strip-target-libada

install-strip-target-libada: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libada && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libada

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libada info-target-libada
maybe-info-target-libada:
@if target-libada
maybe-info-target-libada: info-target-libada

info-target-libada: \
    configure-target-libada 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libada"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libada && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libada

.PHONY: maybe-dvi-target-libada dvi-target-libada
maybe-dvi-target-libada:
@if target-libada
maybe-dvi-target-libada: dvi-target-libada

dvi-target-libada: \
    configure-target-libada 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libada"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libada && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libada

.PHONY: maybe-pdf-target-libada pdf-target-libada
maybe-pdf-target-libada:
@if target-libada
maybe-pdf-target-libada: pdf-target-libada

pdf-target-libada: \
    configure-target-libada 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libada"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libada && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libada

.PHONY: maybe-html-target-libada html-target-libada
maybe-html-target-libada:
@if target-libada
maybe-html-target-libada: html-target-libada

html-target-libada: \
    configure-target-libada 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libada"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libada && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libada

.PHONY: maybe-TAGS-target-libada TAGS-target-libada
maybe-TAGS-target-libada:
@if target-libada
maybe-TAGS-target-libada: TAGS-target-libada

TAGS-target-libada: \
    configure-target-libada 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libada"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libada && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libada

.PHONY: maybe-install-info-target-libada install-info-target-libada
maybe-install-info-target-libada:
@if target-libada
maybe-install-info-target-libada: install-info-target-libada

install-info-target-libada: \
    configure-target-libada \
    info-target-libada 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libada"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libada && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libada

.PHONY: maybe-install-pdf-target-libada install-pdf-target-libada
maybe-install-pdf-target-libada:
@if target-libada
maybe-install-pdf-target-libada: install-pdf-target-libada

install-pdf-target-libada: \
    configure-target-libada \
    pdf-target-libada 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libada"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libada && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libada

.PHONY: maybe-install-html-target-libada install-html-target-libada
maybe-install-html-target-libada:
@if target-libada
maybe-install-html-target-libada: install-html-target-libada

install-html-target-libada: \
    configure-target-libada \
    html-target-libada 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libada"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libada && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libada

.PHONY: maybe-installcheck-target-libada installcheck-target-libada
maybe-installcheck-target-libada:
@if target-libada
maybe-installcheck-target-libada: installcheck-target-libada

installcheck-target-libada: \
    configure-target-libada 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libada"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libada && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libada

.PHONY: maybe-mostlyclean-target-libada mostlyclean-target-libada
maybe-mostlyclean-target-libada:
@if target-libada
maybe-mostlyclean-target-libada: mostlyclean-target-libada

mostlyclean-target-libada: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libada"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libada && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libada

.PHONY: maybe-clean-target-libada clean-target-libada
maybe-clean-target-libada:
@if target-libada
maybe-clean-target-libada: clean-target-libada

clean-target-libada: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libada"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libada && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libada

.PHONY: maybe-distclean-target-libada distclean-target-libada
maybe-distclean-target-libada:
@if target-libada
maybe-distclean-target-libada: distclean-target-libada

distclean-target-libada: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libada"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libada && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libada

.PHONY: maybe-maintainer-clean-target-libada maintainer-clean-target-libada
maybe-maintainer-clean-target-libada:
@if target-libada
maybe-maintainer-clean-target-libada: maintainer-clean-target-libada

maintainer-clean-target-libada: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libada"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libada && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libada





.PHONY: configure-target-libgomp maybe-configure-target-libgomp
maybe-configure-target-libgomp:
@if gcc-bootstrap
configure-target-libgomp: stage_current
@endif gcc-bootstrap
@if target-libgomp
maybe-configure-target-libgomp: configure-target-libgomp
configure-target-libgomp: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libgomp..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgomp/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgomp/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgomp/Makefile; \
	    mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgomp/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libgomp; \
	cd "$(TARGET_SUBDIR)/libgomp" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgomp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgomp; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libgomp



.PHONY: configure-stage1-target-libgomp maybe-configure-stage1-target-libgomp
maybe-configure-stage1-target-libgomp:
@if target-libgomp-bootstrap
maybe-configure-stage1-target-libgomp: configure-stage1-target-libgomp
configure-stage1-target-libgomp:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	echo "Checking multilib configuration for libgomp..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgomp/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgomp/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgomp/Makefile; \
	    mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgomp/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 1 in $(TARGET_SUBDIR)/libgomp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp; \
	cd $(TARGET_SUBDIR)/libgomp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgomp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgomp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif target-libgomp-bootstrap

.PHONY: configure-stage2-target-libgomp maybe-configure-stage2-target-libgomp
maybe-configure-stage2-target-libgomp:
@if target-libgomp-bootstrap
maybe-configure-stage2-target-libgomp: configure-stage2-target-libgomp
configure-stage2-target-libgomp:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	echo "Checking multilib configuration for libgomp..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgomp/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgomp/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgomp/Makefile; \
	    mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgomp/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 2 in $(TARGET_SUBDIR)/libgomp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp; \
	cd $(TARGET_SUBDIR)/libgomp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgomp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgomp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE2_CONFIGURE_FLAGS)
@endif target-libgomp-bootstrap

.PHONY: configure-stage3-target-libgomp maybe-configure-stage3-target-libgomp
maybe-configure-stage3-target-libgomp:
@if target-libgomp-bootstrap
maybe-configure-stage3-target-libgomp: configure-stage3-target-libgomp
configure-stage3-target-libgomp:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	echo "Checking multilib configuration for libgomp..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgomp/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgomp/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgomp/Makefile; \
	    mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgomp/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 3 in $(TARGET_SUBDIR)/libgomp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp; \
	cd $(TARGET_SUBDIR)/libgomp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgomp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgomp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE3_CONFIGURE_FLAGS)
@endif target-libgomp-bootstrap

.PHONY: configure-stage4-target-libgomp maybe-configure-stage4-target-libgomp
maybe-configure-stage4-target-libgomp:
@if target-libgomp-bootstrap
maybe-configure-stage4-target-libgomp: configure-stage4-target-libgomp
configure-stage4-target-libgomp:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	echo "Checking multilib configuration for libgomp..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgomp/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgomp/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgomp/Makefile; \
	    mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgomp/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage 4 in $(TARGET_SUBDIR)/libgomp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp; \
	cd $(TARGET_SUBDIR)/libgomp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgomp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgomp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGE4_CONFIGURE_FLAGS)
@endif target-libgomp-bootstrap

.PHONY: configure-stageprofile-target-libgomp maybe-configure-stageprofile-target-libgomp
maybe-configure-stageprofile-target-libgomp:
@if target-libgomp-bootstrap
maybe-configure-stageprofile-target-libgomp: configure-stageprofile-target-libgomp
configure-stageprofile-target-libgomp:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	echo "Checking multilib configuration for libgomp..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgomp/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgomp/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgomp/Makefile; \
	    mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgomp/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage profile in $(TARGET_SUBDIR)/libgomp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp; \
	cd $(TARGET_SUBDIR)/libgomp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgomp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgomp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEprofile_CONFIGURE_FLAGS)
@endif target-libgomp-bootstrap

.PHONY: configure-stagetrain-target-libgomp maybe-configure-stagetrain-target-libgomp
maybe-configure-stagetrain-target-libgomp:
@if target-libgomp-bootstrap
maybe-configure-stagetrain-target-libgomp: configure-stagetrain-target-libgomp
configure-stagetrain-target-libgomp:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	echo "Checking multilib configuration for libgomp..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgomp/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgomp/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgomp/Makefile; \
	    mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgomp/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage train in $(TARGET_SUBDIR)/libgomp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp; \
	cd $(TARGET_SUBDIR)/libgomp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgomp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgomp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEtrain_CONFIGURE_FLAGS)
@endif target-libgomp-bootstrap

.PHONY: configure-stagefeedback-target-libgomp maybe-configure-stagefeedback-target-libgomp
maybe-configure-stagefeedback-target-libgomp:
@if target-libgomp-bootstrap
maybe-configure-stagefeedback-target-libgomp: configure-stagefeedback-target-libgomp
configure-stagefeedback-target-libgomp:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	echo "Checking multilib configuration for libgomp..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgomp/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgomp/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgomp/Makefile; \
	    mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgomp/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage feedback in $(TARGET_SUBDIR)/libgomp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp; \
	cd $(TARGET_SUBDIR)/libgomp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgomp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgomp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEfeedback_CONFIGURE_FLAGS)
@endif target-libgomp-bootstrap

.PHONY: configure-stageautoprofile-target-libgomp maybe-configure-stageautoprofile-target-libgomp
maybe-configure-stageautoprofile-target-libgomp:
@if target-libgomp-bootstrap
maybe-configure-stageautoprofile-target-libgomp: configure-stageautoprofile-target-libgomp
configure-stageautoprofile-target-libgomp:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	echo "Checking multilib configuration for libgomp..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgomp/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgomp/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgomp/Makefile; \
	    mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgomp/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage autoprofile in $(TARGET_SUBDIR)/libgomp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp; \
	cd $(TARGET_SUBDIR)/libgomp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgomp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgomp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautoprofile_CONFIGURE_FLAGS)
@endif target-libgomp-bootstrap

.PHONY: configure-stageautofeedback-target-libgomp maybe-configure-stageautofeedback-target-libgomp
maybe-configure-stageautofeedback-target-libgomp:
@if target-libgomp-bootstrap
maybe-configure-stageautofeedback-target-libgomp: configure-stageautofeedback-target-libgomp
configure-stageautofeedback-target-libgomp:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	echo "Checking multilib configuration for libgomp..."; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgomp/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgomp/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgomp/Makefile; \
	    mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgomp/multilib.tmp $(TARGET_SUBDIR)/libgomp/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgomp/Makefile || exit 0; \
	$(NORMAL_TARGET_EXPORTS) \
	 \
	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
	CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
	LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"; export LIBCFLAGS;  \
	echo Configuring stage autofeedback in $(TARGET_SUBDIR)/libgomp; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgomp; \
	cd $(TARGET_SUBDIR)/libgomp || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgomp/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgomp; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias} \
	  --with-build-libsubdir=$(HOST_SUBDIR) \
	  $(STAGEautofeedback_CONFIGURE_FLAGS)
@endif target-libgomp-bootstrap





.PHONY: all-target-libgomp maybe-all-target-libgomp
maybe-all-target-libgomp:
@if gcc-bootstrap
all-target-libgomp: stage_current
@endif gcc-bootstrap
@if target-libgomp
TARGET-target-libgomp=all
maybe-all-target-libgomp: all-target-libgomp
all-target-libgomp: configure-target-libgomp
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libgomp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-libgomp))
@endif target-libgomp



.PHONY: all-stage1-target-libgomp maybe-all-stage1-target-libgomp
.PHONY: clean-stage1-target-libgomp maybe-clean-stage1-target-libgomp
maybe-all-stage1-target-libgomp:
maybe-clean-stage1-target-libgomp:
@if target-libgomp-bootstrap
maybe-all-stage1-target-libgomp: all-stage1-target-libgomp
all-stage1: all-stage1-target-libgomp
TARGET-stage1-target-libgomp = $(TARGET-target-libgomp)
all-stage1-target-libgomp: configure-stage1-target-libgomp
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS)  \
	cd $(TARGET_SUBDIR)/libgomp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)  \
		  \
		TFLAGS="$(STAGE1_TFLAGS)"  \
		$(TARGET-stage1-target-libgomp)

maybe-clean-stage1-target-libgomp: clean-stage1-target-libgomp
clean-stage1: clean-stage1-target-libgomp
clean-stage1-target-libgomp:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage1-libgomp/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgomp && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)  \
	  clean
@endif target-libgomp-bootstrap


.PHONY: all-stage2-target-libgomp maybe-all-stage2-target-libgomp
.PHONY: clean-stage2-target-libgomp maybe-clean-stage2-target-libgomp
maybe-all-stage2-target-libgomp:
maybe-clean-stage2-target-libgomp:
@if target-libgomp-bootstrap
maybe-all-stage2-target-libgomp: all-stage2-target-libgomp
all-stage2: all-stage2-target-libgomp
TARGET-stage2-target-libgomp = $(TARGET-target-libgomp)
all-stage2-target-libgomp: configure-stage2-target-libgomp
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libgomp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)   \
		TFLAGS="$(STAGE2_TFLAGS)"  \
		$(TARGET-stage2-target-libgomp)

maybe-clean-stage2-target-libgomp: clean-stage2-target-libgomp
clean-stage2: clean-stage2-target-libgomp
clean-stage2-target-libgomp:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage2-libgomp/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgomp && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libgomp-bootstrap


.PHONY: all-stage3-target-libgomp maybe-all-stage3-target-libgomp
.PHONY: clean-stage3-target-libgomp maybe-clean-stage3-target-libgomp
maybe-all-stage3-target-libgomp:
maybe-clean-stage3-target-libgomp:
@if target-libgomp-bootstrap
maybe-all-stage3-target-libgomp: all-stage3-target-libgomp
all-stage3: all-stage3-target-libgomp
TARGET-stage3-target-libgomp = $(TARGET-target-libgomp)
all-stage3-target-libgomp: configure-stage3-target-libgomp
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libgomp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)   \
		TFLAGS="$(STAGE3_TFLAGS)"  \
		$(TARGET-stage3-target-libgomp)

maybe-clean-stage3-target-libgomp: clean-stage3-target-libgomp
clean-stage3: clean-stage3-target-libgomp
clean-stage3-target-libgomp:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage3-libgomp/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgomp && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libgomp-bootstrap


.PHONY: all-stage4-target-libgomp maybe-all-stage4-target-libgomp
.PHONY: clean-stage4-target-libgomp maybe-clean-stage4-target-libgomp
maybe-all-stage4-target-libgomp:
maybe-clean-stage4-target-libgomp:
@if target-libgomp-bootstrap
maybe-all-stage4-target-libgomp: all-stage4-target-libgomp
all-stage4: all-stage4-target-libgomp
TARGET-stage4-target-libgomp = $(TARGET-target-libgomp)
all-stage4-target-libgomp: configure-stage4-target-libgomp
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libgomp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)   \
		TFLAGS="$(STAGE4_TFLAGS)"  \
		$(TARGET-stage4-target-libgomp)

maybe-clean-stage4-target-libgomp: clean-stage4-target-libgomp
clean-stage4: clean-stage4-target-libgomp
clean-stage4-target-libgomp:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage4-libgomp/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgomp && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libgomp-bootstrap


.PHONY: all-stageprofile-target-libgomp maybe-all-stageprofile-target-libgomp
.PHONY: clean-stageprofile-target-libgomp maybe-clean-stageprofile-target-libgomp
maybe-all-stageprofile-target-libgomp:
maybe-clean-stageprofile-target-libgomp:
@if target-libgomp-bootstrap
maybe-all-stageprofile-target-libgomp: all-stageprofile-target-libgomp
all-stageprofile: all-stageprofile-target-libgomp
TARGET-stageprofile-target-libgomp = $(TARGET-target-libgomp)
all-stageprofile-target-libgomp: configure-stageprofile-target-libgomp
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libgomp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)   \
		TFLAGS="$(STAGEprofile_TFLAGS)"  \
		$(TARGET-stageprofile-target-libgomp)

maybe-clean-stageprofile-target-libgomp: clean-stageprofile-target-libgomp
clean-stageprofile: clean-stageprofile-target-libgomp
clean-stageprofile-target-libgomp:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageprofile-libgomp/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgomp && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libgomp-bootstrap


.PHONY: all-stagetrain-target-libgomp maybe-all-stagetrain-target-libgomp
.PHONY: clean-stagetrain-target-libgomp maybe-clean-stagetrain-target-libgomp
maybe-all-stagetrain-target-libgomp:
maybe-clean-stagetrain-target-libgomp:
@if target-libgomp-bootstrap
maybe-all-stagetrain-target-libgomp: all-stagetrain-target-libgomp
all-stagetrain: all-stagetrain-target-libgomp
TARGET-stagetrain-target-libgomp = $(TARGET-target-libgomp)
all-stagetrain-target-libgomp: configure-stagetrain-target-libgomp
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libgomp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)   \
		TFLAGS="$(STAGEtrain_TFLAGS)"  \
		$(TARGET-stagetrain-target-libgomp)

maybe-clean-stagetrain-target-libgomp: clean-stagetrain-target-libgomp
clean-stagetrain: clean-stagetrain-target-libgomp
clean-stagetrain-target-libgomp:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagetrain-libgomp/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgomp && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libgomp-bootstrap


.PHONY: all-stagefeedback-target-libgomp maybe-all-stagefeedback-target-libgomp
.PHONY: clean-stagefeedback-target-libgomp maybe-clean-stagefeedback-target-libgomp
maybe-all-stagefeedback-target-libgomp:
maybe-clean-stagefeedback-target-libgomp:
@if target-libgomp-bootstrap
maybe-all-stagefeedback-target-libgomp: all-stagefeedback-target-libgomp
all-stagefeedback: all-stagefeedback-target-libgomp
TARGET-stagefeedback-target-libgomp = $(TARGET-target-libgomp)
all-stagefeedback-target-libgomp: configure-stagefeedback-target-libgomp
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libgomp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)   \
		TFLAGS="$(STAGEfeedback_TFLAGS)"  \
		$(TARGET-stagefeedback-target-libgomp)

maybe-clean-stagefeedback-target-libgomp: clean-stagefeedback-target-libgomp
clean-stagefeedback: clean-stagefeedback-target-libgomp
clean-stagefeedback-target-libgomp:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagefeedback-libgomp/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgomp && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libgomp-bootstrap


.PHONY: all-stageautoprofile-target-libgomp maybe-all-stageautoprofile-target-libgomp
.PHONY: clean-stageautoprofile-target-libgomp maybe-clean-stageautoprofile-target-libgomp
maybe-all-stageautoprofile-target-libgomp:
maybe-clean-stageautoprofile-target-libgomp:
@if target-libgomp-bootstrap
maybe-all-stageautoprofile-target-libgomp: all-stageautoprofile-target-libgomp
all-stageautoprofile: all-stageautoprofile-target-libgomp
TARGET-stageautoprofile-target-libgomp = $(TARGET-target-libgomp)
all-stageautoprofile-target-libgomp: configure-stageautoprofile-target-libgomp
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libgomp && \
	$$s/gcc/config/i386/$(AUTO_PROFILE) \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)   \
		TFLAGS="$(STAGEautoprofile_TFLAGS)"  \
		$(TARGET-stageautoprofile-target-libgomp)

maybe-clean-stageautoprofile-target-libgomp: clean-stageautoprofile-target-libgomp
clean-stageautoprofile: clean-stageautoprofile-target-libgomp
clean-stageautoprofile-target-libgomp:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautoprofile-libgomp/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgomp && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libgomp-bootstrap


.PHONY: all-stageautofeedback-target-libgomp maybe-all-stageautofeedback-target-libgomp
.PHONY: clean-stageautofeedback-target-libgomp maybe-clean-stageautofeedback-target-libgomp
maybe-all-stageautofeedback-target-libgomp:
maybe-clean-stageautofeedback-target-libgomp:
@if target-libgomp-bootstrap
maybe-all-stageautofeedback-target-libgomp: all-stageautofeedback-target-libgomp
all-stageautofeedback: all-stageautofeedback-target-libgomp
TARGET-stageautofeedback-target-libgomp = $(TARGET-target-libgomp)
all-stageautofeedback-target-libgomp: configure-stageautofeedback-target-libgomp
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(NORMAL_TARGET_EXPORTS) \
	  \
	cd $(TARGET_SUBDIR)/libgomp && \
	 \
	$(MAKE) $(BASE_FLAGS_TO_PASS) \
		CFLAGS="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)" \
		CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" \
		CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" \
		LIBCFLAGS_FOR_TARGET="$(LIBCFLAGS_FOR_TARGET)" \
		$(EXTRA_TARGET_FLAGS)   \
		TFLAGS="$(STAGEautofeedback_TFLAGS)" PERF_DATA=perf.data \
		$(TARGET-stageautofeedback-target-libgomp)

maybe-clean-stageautofeedback-target-libgomp: clean-stageautofeedback-target-libgomp
clean-stageautofeedback: clean-stageautofeedback-target-libgomp
clean-stageautofeedback-target-libgomp:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautofeedback-libgomp/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libgomp && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libgomp-bootstrap






.PHONY: check-target-libgomp maybe-check-target-libgomp
maybe-check-target-libgomp:
@if target-libgomp
maybe-check-target-libgomp: check-target-libgomp

check-target-libgomp:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libgomp && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-libgomp

.PHONY: install-target-libgomp maybe-install-target-libgomp
maybe-install-target-libgomp:
@if target-libgomp
maybe-install-target-libgomp: install-target-libgomp

install-target-libgomp: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libgomp && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libgomp

.PHONY: install-strip-target-libgomp maybe-install-strip-target-libgomp
maybe-install-strip-target-libgomp:
@if target-libgomp
maybe-install-strip-target-libgomp: install-strip-target-libgomp

install-strip-target-libgomp: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libgomp && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libgomp

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libgomp info-target-libgomp
maybe-info-target-libgomp:
@if target-libgomp
maybe-info-target-libgomp: info-target-libgomp

info-target-libgomp: \
    configure-target-libgomp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libgomp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgomp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libgomp

.PHONY: maybe-dvi-target-libgomp dvi-target-libgomp
maybe-dvi-target-libgomp:
@if target-libgomp
maybe-dvi-target-libgomp: dvi-target-libgomp

dvi-target-libgomp: \
    configure-target-libgomp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libgomp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgomp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libgomp

.PHONY: maybe-pdf-target-libgomp pdf-target-libgomp
maybe-pdf-target-libgomp:
@if target-libgomp
maybe-pdf-target-libgomp: pdf-target-libgomp

pdf-target-libgomp: \
    configure-target-libgomp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libgomp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgomp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libgomp

.PHONY: maybe-html-target-libgomp html-target-libgomp
maybe-html-target-libgomp:
@if target-libgomp
maybe-html-target-libgomp: html-target-libgomp

html-target-libgomp: \
    configure-target-libgomp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libgomp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgomp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libgomp

.PHONY: maybe-TAGS-target-libgomp TAGS-target-libgomp
maybe-TAGS-target-libgomp:
@if target-libgomp
maybe-TAGS-target-libgomp: TAGS-target-libgomp

TAGS-target-libgomp: \
    configure-target-libgomp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libgomp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgomp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libgomp

.PHONY: maybe-install-info-target-libgomp install-info-target-libgomp
maybe-install-info-target-libgomp:
@if target-libgomp
maybe-install-info-target-libgomp: install-info-target-libgomp

install-info-target-libgomp: \
    configure-target-libgomp \
    info-target-libgomp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libgomp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgomp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libgomp

.PHONY: maybe-install-pdf-target-libgomp install-pdf-target-libgomp
maybe-install-pdf-target-libgomp:
@if target-libgomp
maybe-install-pdf-target-libgomp: install-pdf-target-libgomp

install-pdf-target-libgomp: \
    configure-target-libgomp \
    pdf-target-libgomp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libgomp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgomp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libgomp

.PHONY: maybe-install-html-target-libgomp install-html-target-libgomp
maybe-install-html-target-libgomp:
@if target-libgomp
maybe-install-html-target-libgomp: install-html-target-libgomp

install-html-target-libgomp: \
    configure-target-libgomp \
    html-target-libgomp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libgomp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgomp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libgomp

.PHONY: maybe-installcheck-target-libgomp installcheck-target-libgomp
maybe-installcheck-target-libgomp:
@if target-libgomp
maybe-installcheck-target-libgomp: installcheck-target-libgomp

installcheck-target-libgomp: \
    configure-target-libgomp 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libgomp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgomp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libgomp

.PHONY: maybe-mostlyclean-target-libgomp mostlyclean-target-libgomp
maybe-mostlyclean-target-libgomp:
@if target-libgomp
maybe-mostlyclean-target-libgomp: mostlyclean-target-libgomp

mostlyclean-target-libgomp: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libgomp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgomp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libgomp

.PHONY: maybe-clean-target-libgomp clean-target-libgomp
maybe-clean-target-libgomp:
@if target-libgomp
maybe-clean-target-libgomp: clean-target-libgomp

clean-target-libgomp: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libgomp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgomp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libgomp

.PHONY: maybe-distclean-target-libgomp distclean-target-libgomp
maybe-distclean-target-libgomp:
@if target-libgomp
maybe-distclean-target-libgomp: distclean-target-libgomp

distclean-target-libgomp: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libgomp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgomp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libgomp

.PHONY: maybe-maintainer-clean-target-libgomp maintainer-clean-target-libgomp
maybe-maintainer-clean-target-libgomp:
@if target-libgomp
maybe-maintainer-clean-target-libgomp: maintainer-clean-target-libgomp

maintainer-clean-target-libgomp: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgomp/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libgomp"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgomp && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libgomp





.PHONY: configure-target-libitm maybe-configure-target-libitm
maybe-configure-target-libitm:
@if gcc-bootstrap
configure-target-libitm: stage_current
@endif gcc-bootstrap
@if target-libitm
maybe-configure-target-libitm: configure-target-libitm
configure-target-libitm: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libitm..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libitm; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libitm/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libitm/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libitm/multilib.tmp $(TARGET_SUBDIR)/libitm/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libitm/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libitm/Makefile; \
	    mv $(TARGET_SUBDIR)/libitm/multilib.tmp $(TARGET_SUBDIR)/libitm/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libitm/multilib.tmp $(TARGET_SUBDIR)/libitm/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libitm/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libitm; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libitm; \
	cd "$(TARGET_SUBDIR)/libitm" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libitm/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libitm; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libitm





.PHONY: all-target-libitm maybe-all-target-libitm
maybe-all-target-libitm:
@if gcc-bootstrap
all-target-libitm: stage_current
@endif gcc-bootstrap
@if target-libitm
TARGET-target-libitm=all
maybe-all-target-libitm: all-target-libitm
all-target-libitm: configure-target-libitm
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libitm && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-libitm))
@endif target-libitm





.PHONY: check-target-libitm maybe-check-target-libitm
maybe-check-target-libitm:
@if target-libitm
maybe-check-target-libitm: check-target-libitm

check-target-libitm:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libitm && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-libitm

.PHONY: install-target-libitm maybe-install-target-libitm
maybe-install-target-libitm:
@if target-libitm
maybe-install-target-libitm: install-target-libitm

install-target-libitm: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libitm && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libitm

.PHONY: install-strip-target-libitm maybe-install-strip-target-libitm
maybe-install-strip-target-libitm:
@if target-libitm
maybe-install-strip-target-libitm: install-strip-target-libitm

install-strip-target-libitm: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libitm && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libitm

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libitm info-target-libitm
maybe-info-target-libitm:
@if target-libitm
maybe-info-target-libitm: info-target-libitm

info-target-libitm: \
    configure-target-libitm 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libitm/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libitm"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libitm && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libitm

.PHONY: maybe-dvi-target-libitm dvi-target-libitm
maybe-dvi-target-libitm:
@if target-libitm
maybe-dvi-target-libitm: dvi-target-libitm

dvi-target-libitm: \
    configure-target-libitm 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libitm/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libitm"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libitm && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libitm

.PHONY: maybe-pdf-target-libitm pdf-target-libitm
maybe-pdf-target-libitm:
@if target-libitm
maybe-pdf-target-libitm: pdf-target-libitm

pdf-target-libitm: \
    configure-target-libitm 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libitm/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libitm"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libitm && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libitm

.PHONY: maybe-html-target-libitm html-target-libitm
maybe-html-target-libitm:
@if target-libitm
maybe-html-target-libitm: html-target-libitm

html-target-libitm: \
    configure-target-libitm 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libitm/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libitm"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libitm && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libitm

.PHONY: maybe-TAGS-target-libitm TAGS-target-libitm
maybe-TAGS-target-libitm:
@if target-libitm
maybe-TAGS-target-libitm: TAGS-target-libitm

TAGS-target-libitm: \
    configure-target-libitm 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libitm/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libitm"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libitm && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libitm

.PHONY: maybe-install-info-target-libitm install-info-target-libitm
maybe-install-info-target-libitm:
@if target-libitm
maybe-install-info-target-libitm: install-info-target-libitm

install-info-target-libitm: \
    configure-target-libitm \
    info-target-libitm 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libitm/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libitm"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libitm && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libitm

.PHONY: maybe-install-pdf-target-libitm install-pdf-target-libitm
maybe-install-pdf-target-libitm:
@if target-libitm
maybe-install-pdf-target-libitm: install-pdf-target-libitm

install-pdf-target-libitm: \
    configure-target-libitm \
    pdf-target-libitm 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libitm/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libitm"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libitm && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libitm

.PHONY: maybe-install-html-target-libitm install-html-target-libitm
maybe-install-html-target-libitm:
@if target-libitm
maybe-install-html-target-libitm: install-html-target-libitm

install-html-target-libitm: \
    configure-target-libitm \
    html-target-libitm 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libitm/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libitm"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libitm && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libitm

.PHONY: maybe-installcheck-target-libitm installcheck-target-libitm
maybe-installcheck-target-libitm:
@if target-libitm
maybe-installcheck-target-libitm: installcheck-target-libitm

installcheck-target-libitm: \
    configure-target-libitm 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libitm/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libitm"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libitm && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libitm

.PHONY: maybe-mostlyclean-target-libitm mostlyclean-target-libitm
maybe-mostlyclean-target-libitm:
@if target-libitm
maybe-mostlyclean-target-libitm: mostlyclean-target-libitm

mostlyclean-target-libitm: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libitm/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libitm"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libitm && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libitm

.PHONY: maybe-clean-target-libitm clean-target-libitm
maybe-clean-target-libitm:
@if target-libitm
maybe-clean-target-libitm: clean-target-libitm

clean-target-libitm: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libitm/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libitm"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libitm && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libitm

.PHONY: maybe-distclean-target-libitm distclean-target-libitm
maybe-distclean-target-libitm:
@if target-libitm
maybe-distclean-target-libitm: distclean-target-libitm

distclean-target-libitm: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libitm/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libitm"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libitm && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libitm

.PHONY: maybe-maintainer-clean-target-libitm maintainer-clean-target-libitm
maybe-maintainer-clean-target-libitm:
@if target-libitm
maybe-maintainer-clean-target-libitm: maintainer-clean-target-libitm

maintainer-clean-target-libitm: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libitm/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libitm"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libitm && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libitm





.PHONY: configure-target-libatomic maybe-configure-target-libatomic
maybe-configure-target-libatomic:
@if gcc-bootstrap
configure-target-libatomic: stage_current
@endif gcc-bootstrap
@if target-libatomic
maybe-configure-target-libatomic: configure-target-libatomic
configure-target-libatomic: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libatomic..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libatomic; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libatomic/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libatomic/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libatomic/multilib.tmp $(TARGET_SUBDIR)/libatomic/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libatomic/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libatomic/Makefile; \
	    mv $(TARGET_SUBDIR)/libatomic/multilib.tmp $(TARGET_SUBDIR)/libatomic/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libatomic/multilib.tmp $(TARGET_SUBDIR)/libatomic/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libatomic/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libatomic; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libatomic; \
	cd "$(TARGET_SUBDIR)/libatomic" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libatomic/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libatomic; \
	rm -f no-such-file || : ; \
	CONFIG_SITE=no-such-file $(SHELL) \
	  $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
	  --target=${target_alias}  \
	  || exit 1
@endif target-libatomic





.PHONY: all-target-libatomic maybe-all-target-libatomic
maybe-all-target-libatomic:
@if gcc-bootstrap
all-target-libatomic: stage_current
@endif gcc-bootstrap
@if target-libatomic
TARGET-target-libatomic=all
maybe-all-target-libatomic: all-target-libatomic
all-target-libatomic: configure-target-libatomic
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libatomic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-libatomic))
@endif target-libatomic





.PHONY: check-target-libatomic maybe-check-target-libatomic
maybe-check-target-libatomic:
@if target-libatomic
maybe-check-target-libatomic: check-target-libatomic

check-target-libatomic:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libatomic && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-libatomic

.PHONY: install-target-libatomic maybe-install-target-libatomic
maybe-install-target-libatomic:
@if target-libatomic
maybe-install-target-libatomic: install-target-libatomic

install-target-libatomic: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libatomic && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libatomic

.PHONY: install-strip-target-libatomic maybe-install-strip-target-libatomic
maybe-install-strip-target-libatomic:
@if target-libatomic
maybe-install-strip-target-libatomic: install-strip-target-libatomic

install-strip-target-libatomic: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libatomic && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libatomic

# Other targets (info, dvi, pdf, etc.)

.PHONY: maybe-info-target-libatomic info-target-libatomic
maybe-info-target-libatomic:
@if target-libatomic
maybe-info-target-libatomic: info-target-libatomic

info-target-libatomic: \
    configure-target-libatomic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libatomic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libatomic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           info) \
	  || exit 1

@endif target-libatomic

.PHONY: maybe-dvi-target-libatomic dvi-target-libatomic
maybe-dvi-target-libatomic:
@if target-libatomic
maybe-dvi-target-libatomic: dvi-target-libatomic

dvi-target-libatomic: \
    configure-target-libatomic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libatomic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libatomic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           dvi) \
	  || exit 1

@endif target-libatomic

.PHONY: maybe-pdf-target-libatomic pdf-target-libatomic
maybe-pdf-target-libatomic:
@if target-libatomic
maybe-pdf-target-libatomic: pdf-target-libatomic

pdf-target-libatomic: \
    configure-target-libatomic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libatomic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libatomic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           pdf) \
	  || exit 1

@endif target-libatomic

.PHONY: maybe-html-target-libatomic html-target-libatomic
maybe-html-target-libatomic:
@if target-libatomic
maybe-html-target-libatomic: html-target-libatomic

html-target-libatomic: \
    configure-target-libatomic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libatomic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libatomic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           html) \
	  || exit 1

@endif target-libatomic

.PHONY: maybe-TAGS-target-libatomic TAGS-target-libatomic
maybe-TAGS-target-libatomic:
@if target-libatomic
maybe-TAGS-target-libatomic: TAGS-target-libatomic

TAGS-target-libatomic: \
    configure-target-libatomic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libatomic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libatomic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           TAGS) \
	  || exit 1

@endif target-libatomic

.PHONY: maybe-install-info-target-libatomic install-info-target-libatomic
maybe-install-info-target-libatomic:
@if target-libatomic
maybe-install-info-target-libatomic: install-info-target-libatomic

install-info-target-libatomic: \
    configure-target-libatomic \
    info-target-libatomic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-info in $(TARGET_SUBDIR)/libatomic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libatomic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-info) \
	  || exit 1

@endif target-libatomic

.PHONY: maybe-install-pdf-target-libatomic install-pdf-target-libatomic
maybe-install-pdf-target-libatomic:
@if target-libatomic
maybe-install-pdf-target-libatomic: install-pdf-target-libatomic

install-pdf-target-libatomic: \
    configure-target-libatomic \
    pdf-target-libatomic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-pdf in $(TARGET_SUBDIR)/libatomic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libatomic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-pdf) \
	  || exit 1

@endif target-libatomic

.PHONY: maybe-install-html-target-libatomic install-html-target-libatomic
maybe-install-html-target-libatomic:
@if target-libatomic
maybe-install-html-target-libatomic: install-html-target-libatomic

install-html-target-libatomic: \
    configure-target-libatomic \
    html-target-libatomic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-html in $(TARGET_SUBDIR)/libatomic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libatomic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           install-html) \
	  || exit 1

@endif target-libatomic

.PHONY: maybe-installcheck-target-libatomic installcheck-target-libatomic
maybe-installcheck-target-libatomic:
@if target-libatomic
maybe-installcheck-target-libatomic: installcheck-target-libatomic

installcheck-target-libatomic: \
    configure-target-libatomic 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libatomic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libatomic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           installcheck) \
	  || exit 1

@endif target-libatomic

.PHONY: maybe-mostlyclean-target-libatomic mostlyclean-target-libatomic
maybe-mostlyclean-target-libatomic:
@if target-libatomic
maybe-mostlyclean-target-libatomic: mostlyclean-target-libatomic

mostlyclean-target-libatomic: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libatomic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libatomic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           mostlyclean) \
	  || exit 1

@endif target-libatomic

.PHONY: maybe-clean-target-libatomic clean-target-libatomic
maybe-clean-target-libatomic:
@if target-libatomic
maybe-clean-target-libatomic: clean-target-libatomic

clean-target-libatomic: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libatomic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libatomic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           clean) \
	  || exit 1

@endif target-libatomic

.PHONY: maybe-distclean-target-libatomic distclean-target-libatomic
maybe-distclean-target-libatomic:
@if target-libatomic
maybe-distclean-target-libatomic: distclean-target-libatomic

distclean-target-libatomic: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libatomic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libatomic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           distclean) \
	  || exit 1

@endif target-libatomic

.PHONY: maybe-maintainer-clean-target-libatomic maintainer-clean-target-libatomic
maybe-maintainer-clean-target-libatomic:
@if target-libatomic
maybe-maintainer-clean-target-libatomic: maintainer-clean-target-libatomic

maintainer-clean-target-libatomic: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libatomic"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libatomic && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
	          "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
	          "RANLIB=$${RANLIB}" \
	          "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
	           maintainer-clean) \
	  || exit 1

@endif target-libatomic



@if target-libgomp
.PHONY: check-target-libgomp-c++
check-target-libgomp-c++:
	$(MAKE) RUNTESTFLAGS="$(RUNTESTFLAGS) c++.exp" check-target-libgomp

.PHONY: check-target-libgomp-fortran
check-target-libgomp-fortran:
	$(MAKE) RUNTESTFLAGS="$(RUNTESTFLAGS) fortran.exp" check-target-libgomp

@endif target-libgomp

@if target-libitm
.PHONY: check-target-libitm-c++
check-target-libitm-c++:
	$(MAKE) RUNTESTFLAGS="$(RUNTESTFLAGS) c++.exp" check-target-libitm

@endif target-libitm

# ----------
# GCC module
# ----------

@if gcc-no-bootstrap
.PHONY: cross
cross: all-build all-gas all-ld
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	echo "Building the C and C++ compiler"; \
	cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++"
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Building runtime libraries"; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) LANGUAGES="c c++" all
@endif gcc-no-bootstrap

@if gcc

.PHONY: check-gcc-c check-c
check-gcc-c:
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-gcc);
check-c: check-gcc-c

.PHONY: check-gcc-c++ check-c++
check-gcc-c++:
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++);
check-c++: check-gcc-c++ check-target-libstdc++-v3 check-target-libitm-c++ check-target-libgomp-c++

.PHONY: check-gcc-fortran check-fortran
check-gcc-fortran:
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-fortran);
check-fortran: check-gcc-fortran check-target-libquadmath check-target-libgfortran check-target-libgomp-fortran

.PHONY: check-gcc-ada check-ada
check-gcc-ada:
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-ada);
check-ada: check-gcc-ada check-target-libada

.PHONY: check-gcc-objc check-objc
check-gcc-objc:
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-objc);
check-objc: check-gcc-objc check-target-libobjc

.PHONY: check-gcc-obj-c++ check-obj-c++
check-gcc-obj-c++:
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-obj-c++);
check-obj-c++: check-gcc-obj-c++

.PHONY: check-gcc-go check-go
check-gcc-go:
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-go);
check-go: check-gcc-go check-target-libgo check-gotools

.PHONY: check-gcc-brig check-brig
check-gcc-brig:
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-brig);
check-brig: check-gcc-brig check-target-libhsail-rt

.PHONY: check-gcc-d check-d
check-gcc-d:
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-d);
check-d: check-gcc-d check-target-libphobos


# The gcc part of install-no-fixedincludes, which relies on an intimate
# knowledge of how a number of gcc internal targets (inter)operate.  Delegate.
.PHONY: gcc-install-no-fixedincludes
gcc-install-no-fixedincludes:
	@if [ -f ./gcc/Makefile ]; then \
	  r=`${PWD_COMMAND}`; export r; \
	  s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	  $(HOST_EXPORTS) \
	  (cd ./gcc \
	   && $(MAKE) $(GCC_FLAGS_TO_PASS) install-no-fixedincludes); \
	else true; fi
@endif gcc

# ---------------------
# GCC bootstrap support
# ---------------------

# We track the current stage (the one in 'gcc') in the stage_current file.
# stage_last instead tracks the stage that was built last.  These targets
# are dummy when toplevel bootstrap is not active.

# While making host and target tools, symlinks to the final stage must be
# there, so $(unstage) should be run at various points.  To avoid excessive
# recursive invocations of make, we "inline" them using a variable.  These
# must be referenced as ": $(MAKE) ; $(unstage)" rather than "$(unstage)"
# to avoid warnings from the GNU Make job server.

unstage = :
stage = :
current_stage = ""

@if gcc-bootstrap
unstage = if [ -f stage_last ]; then [ -f stage_current ] || $(MAKE) `cat stage_last`-start || exit 1; else :; fi
stage = if [ -f stage_current ]; then $(MAKE) `cat stage_current`-end || exit 1; else :; fi
current_stage = "`cat stage_current 2> /dev/null`"
@endif gcc-bootstrap

.PHONY: unstage stage
unstage:
	@: $(MAKE); $(unstage)
stage:
	@: $(MAKE); $(stage)

# Disable commands for lean bootstrap.
LEAN = false

# We name the build directories for the various stages "stage1-gcc",
# "stage2-gcc","stage3-gcc", etc.

# Since the 'compare' process will fail (on debugging information) if any
# directory names are different, we need to link the gcc directory for
# the previous stage to a constant name ('prev-gcc'), and to make the name of
# the build directories constant as well. For the latter, we use naked names
# like 'gcc', because the scripts in that directory assume it.  We use
# mv on platforms where symlinks to directories do not work or are not
# reliable.

# 'touch' doesn't work right on some platforms.
STAMP = echo timestamp > 

# We only want to compare .o files, so set this!
objext = .o


.PHONY: stage1-start stage1-end

stage1-start::
	@: $(MAKE); $(stage); \
	echo stage1 > stage_current; \
	echo stage1 > stage_last; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)
@if bfd
	@cd $(HOST_SUBDIR); [ -d stage1-bfd ] || \
	  mkdir stage1-bfd; \
	mv stage1-bfd bfd
@endif bfd
@if opcodes
	@cd $(HOST_SUBDIR); [ -d stage1-opcodes ] || \
	  mkdir stage1-opcodes; \
	mv stage1-opcodes opcodes
@endif opcodes
@if binutils
	@cd $(HOST_SUBDIR); [ -d stage1-binutils ] || \
	  mkdir stage1-binutils; \
	mv stage1-binutils binutils
@endif binutils
@if fixincludes
	@cd $(HOST_SUBDIR); [ -d stage1-fixincludes ] || \
	  mkdir stage1-fixincludes; \
	mv stage1-fixincludes fixincludes
@endif fixincludes
@if gas
	@cd $(HOST_SUBDIR); [ -d stage1-gas ] || \
	  mkdir stage1-gas; \
	mv stage1-gas gas
@endif gas
@if gcc
	@cd $(HOST_SUBDIR); [ -d stage1-gcc ] || \
	  mkdir stage1-gcc; \
	mv stage1-gcc gcc
@endif gcc
@if gmp
	@cd $(HOST_SUBDIR); [ -d stage1-gmp ] || \
	  mkdir stage1-gmp; \
	mv stage1-gmp gmp
@endif gmp
@if mpfr
	@cd $(HOST_SUBDIR); [ -d stage1-mpfr ] || \
	  mkdir stage1-mpfr; \
	mv stage1-mpfr mpfr
@endif mpfr
@if mpc
	@cd $(HOST_SUBDIR); [ -d stage1-mpc ] || \
	  mkdir stage1-mpc; \
	mv stage1-mpc mpc
@endif mpc
@if isl
	@cd $(HOST_SUBDIR); [ -d stage1-isl ] || \
	  mkdir stage1-isl; \
	mv stage1-isl isl
@endif isl
@if libelf
	@cd $(HOST_SUBDIR); [ -d stage1-libelf ] || \
	  mkdir stage1-libelf; \
	mv stage1-libelf libelf
@endif libelf
@if gold
	@cd $(HOST_SUBDIR); [ -d stage1-gold ] || \
	  mkdir stage1-gold; \
	mv stage1-gold gold
@endif gold
@if intl
	@cd $(HOST_SUBDIR); [ -d stage1-intl ] || \
	  mkdir stage1-intl; \
	mv stage1-intl intl
@endif intl
@if ld
	@cd $(HOST_SUBDIR); [ -d stage1-ld ] || \
	  mkdir stage1-ld; \
	mv stage1-ld ld
@endif ld
@if libbacktrace
	@cd $(HOST_SUBDIR); [ -d stage1-libbacktrace ] || \
	  mkdir stage1-libbacktrace; \
	mv stage1-libbacktrace libbacktrace
@endif libbacktrace
@if libcpp
	@cd $(HOST_SUBDIR); [ -d stage1-libcpp ] || \
	  mkdir stage1-libcpp; \
	mv stage1-libcpp libcpp
@endif libcpp
@if libdecnumber
	@cd $(HOST_SUBDIR); [ -d stage1-libdecnumber ] || \
	  mkdir stage1-libdecnumber; \
	mv stage1-libdecnumber libdecnumber
@endif libdecnumber
@if libiberty
	@cd $(HOST_SUBDIR); [ -d stage1-libiberty ] || \
	  mkdir stage1-libiberty; \
	mv stage1-libiberty libiberty
@endif libiberty
@if libiberty-linker-plugin
	@cd $(HOST_SUBDIR); [ -d stage1-libiberty-linker-plugin ] || \
	  mkdir stage1-libiberty-linker-plugin; \
	mv stage1-libiberty-linker-plugin libiberty-linker-plugin
@endif libiberty-linker-plugin
@if libiconv
	@cd $(HOST_SUBDIR); [ -d stage1-libiconv ] || \
	  mkdir stage1-libiconv; \
	mv stage1-libiconv libiconv
@endif libiconv
@if zlib
	@cd $(HOST_SUBDIR); [ -d stage1-zlib ] || \
	  mkdir stage1-zlib; \
	mv stage1-zlib zlib
@endif zlib
@if lto-plugin
	@cd $(HOST_SUBDIR); [ -d stage1-lto-plugin ] || \
	  mkdir stage1-lto-plugin; \
	mv stage1-lto-plugin lto-plugin
@endif lto-plugin
	@[ -d stage1-$(TARGET_SUBDIR) ] || \
	  mkdir stage1-$(TARGET_SUBDIR); \
	mv stage1-$(TARGET_SUBDIR) $(TARGET_SUBDIR)

stage1-end:: 
@if bfd
	@if test -d $(HOST_SUBDIR)/bfd; then \
	  cd $(HOST_SUBDIR); mv bfd stage1-bfd; \
	fi
@endif bfd
@if opcodes
	@if test -d $(HOST_SUBDIR)/opcodes; then \
	  cd $(HOST_SUBDIR); mv opcodes stage1-opcodes; \
	fi
@endif opcodes
@if binutils
	@if test -d $(HOST_SUBDIR)/binutils; then \
	  cd $(HOST_SUBDIR); mv binutils stage1-binutils; \
	fi
@endif binutils
@if fixincludes
	@if test -d $(HOST_SUBDIR)/fixincludes; then \
	  cd $(HOST_SUBDIR); mv fixincludes stage1-fixincludes; \
	fi
@endif fixincludes
@if gas
	@if test -d $(HOST_SUBDIR)/gas; then \
	  cd $(HOST_SUBDIR); mv gas stage1-gas; \
	fi
@endif gas
@if gcc
	@if test -d $(HOST_SUBDIR)/gcc; then \
	  cd $(HOST_SUBDIR); mv gcc stage1-gcc; \
	fi
@endif gcc
@if gmp
	@if test -d $(HOST_SUBDIR)/gmp; then \
	  cd $(HOST_SUBDIR); mv gmp stage1-gmp; \
	fi
@endif gmp
@if mpfr
	@if test -d $(HOST_SUBDIR)/mpfr; then \
	  cd $(HOST_SUBDIR); mv mpfr stage1-mpfr; \
	fi
@endif mpfr
@if mpc
	@if test -d $(HOST_SUBDIR)/mpc; then \
	  cd $(HOST_SUBDIR); mv mpc stage1-mpc; \
	fi
@endif mpc
@if isl
	@if test -d $(HOST_SUBDIR)/isl; then \
	  cd $(HOST_SUBDIR); mv isl stage1-isl; \
	fi
@endif isl
@if libelf
	@if test -d $(HOST_SUBDIR)/libelf; then \
	  cd $(HOST_SUBDIR); mv libelf stage1-libelf; \
	fi
@endif libelf
@if gold
	@if test -d $(HOST_SUBDIR)/gold; then \
	  cd $(HOST_SUBDIR); mv gold stage1-gold; \
	fi
@endif gold
@if intl
	@if test -d $(HOST_SUBDIR)/intl; then \
	  cd $(HOST_SUBDIR); mv intl stage1-intl; \
	fi
@endif intl
@if ld
	@if test -d $(HOST_SUBDIR)/ld; then \
	  cd $(HOST_SUBDIR); mv ld stage1-ld; \
	fi
@endif ld
@if libbacktrace
	@if test -d $(HOST_SUBDIR)/libbacktrace; then \
	  cd $(HOST_SUBDIR); mv libbacktrace stage1-libbacktrace; \
	fi
@endif libbacktrace
@if libcpp
	@if test -d $(HOST_SUBDIR)/libcpp; then \
	  cd $(HOST_SUBDIR); mv libcpp stage1-libcpp; \
	fi
@endif libcpp
@if libdecnumber
	@if test -d $(HOST_SUBDIR)/libdecnumber; then \
	  cd $(HOST_SUBDIR); mv libdecnumber stage1-libdecnumber; \
	fi
@endif libdecnumber
@if libiberty
	@if test -d $(HOST_SUBDIR)/libiberty; then \
	  cd $(HOST_SUBDIR); mv libiberty stage1-libiberty; \
	fi
@endif libiberty
@if libiberty-linker-plugin
	@if test -d $(HOST_SUBDIR)/libiberty-linker-plugin; then \
	  cd $(HOST_SUBDIR); mv libiberty-linker-plugin stage1-libiberty-linker-plugin; \
	fi
@endif libiberty-linker-plugin
@if libiconv
	@if test -d $(HOST_SUBDIR)/libiconv; then \
	  cd $(HOST_SUBDIR); mv libiconv stage1-libiconv; \
	fi
@endif libiconv
@if zlib
	@if test -d $(HOST_SUBDIR)/zlib; then \
	  cd $(HOST_SUBDIR); mv zlib stage1-zlib; \
	fi
@endif zlib
@if lto-plugin
	@if test -d $(HOST_SUBDIR)/lto-plugin; then \
	  cd $(HOST_SUBDIR); mv lto-plugin stage1-lto-plugin; \
	fi
@endif lto-plugin
	@if test -d $(TARGET_SUBDIR); then \
	  mv $(TARGET_SUBDIR) stage1-$(TARGET_SUBDIR); \
	fi
	rm -f stage_current

# Bubble a bug fix through all the stages up to stage 1.  They are
# remade, but not reconfigured.  The next stage (if any) will not be
# reconfigured either.
.PHONY: stage1-bubble
stage1-bubble:: 
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	if test -f stage1-lean ; then \
	  echo Skipping rebuild of stage1; \
	else \
	  $(MAKE) stage1-start; \
	  $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stage1; \
	fi

.PHONY: all-stage1 clean-stage1
do-clean: clean-stage1

# FIXME: Will not need to be conditional when toplevel bootstrap is the
# only possibility, but now it conflicts with no-bootstrap rules
@if gcc-bootstrap




# Rules to wipe a stage and all the following ones, also used for cleanstrap

.PHONY: distclean-stage1
distclean-stage1::
	@: $(MAKE); $(stage)
	@test "`cat stage_last`" != stage1 || rm -f stage_last
	rm -rf stage1-* 


@endif gcc-bootstrap


.PHONY: stage2-start stage2-end

stage2-start::
	@: $(MAKE); $(stage); \
	echo stage2 > stage_current; \
	echo stage2 > stage_last; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)
@if bfd
	@cd $(HOST_SUBDIR); [ -d stage2-bfd ] || \
	  mkdir stage2-bfd; \
	mv stage2-bfd bfd; \
	mv stage1-bfd prev-bfd || test -f stage1-lean 
@endif bfd
@if opcodes
	@cd $(HOST_SUBDIR); [ -d stage2-opcodes ] || \
	  mkdir stage2-opcodes; \
	mv stage2-opcodes opcodes; \
	mv stage1-opcodes prev-opcodes || test -f stage1-lean 
@endif opcodes
@if binutils
	@cd $(HOST_SUBDIR); [ -d stage2-binutils ] || \
	  mkdir stage2-binutils; \
	mv stage2-binutils binutils; \
	mv stage1-binutils prev-binutils || test -f stage1-lean 
@endif binutils
@if fixincludes
	@cd $(HOST_SUBDIR); [ -d stage2-fixincludes ] || \
	  mkdir stage2-fixincludes; \
	mv stage2-fixincludes fixincludes; \
	mv stage1-fixincludes prev-fixincludes || test -f stage1-lean 
@endif fixincludes
@if gas
	@cd $(HOST_SUBDIR); [ -d stage2-gas ] || \
	  mkdir stage2-gas; \
	mv stage2-gas gas; \
	mv stage1-gas prev-gas || test -f stage1-lean 
@endif gas
@if gcc
	@cd $(HOST_SUBDIR); [ -d stage2-gcc ] || \
	  mkdir stage2-gcc; \
	mv stage2-gcc gcc; \
	mv stage1-gcc prev-gcc || test -f stage1-lean 
@endif gcc
@if gmp
	@cd $(HOST_SUBDIR); [ -d stage2-gmp ] || \
	  mkdir stage2-gmp; \
	mv stage2-gmp gmp; \
	mv stage1-gmp prev-gmp || test -f stage1-lean 
@endif gmp
@if mpfr
	@cd $(HOST_SUBDIR); [ -d stage2-mpfr ] || \
	  mkdir stage2-mpfr; \
	mv stage2-mpfr mpfr; \
	mv stage1-mpfr prev-mpfr || test -f stage1-lean 
@endif mpfr
@if mpc
	@cd $(HOST_SUBDIR); [ -d stage2-mpc ] || \
	  mkdir stage2-mpc; \
	mv stage2-mpc mpc; \
	mv stage1-mpc prev-mpc || test -f stage1-lean 
@endif mpc
@if isl
	@cd $(HOST_SUBDIR); [ -d stage2-isl ] || \
	  mkdir stage2-isl; \
	mv stage2-isl isl; \
	mv stage1-isl prev-isl || test -f stage1-lean 
@endif isl
@if libelf
	@cd $(HOST_SUBDIR); [ -d stage2-libelf ] || \
	  mkdir stage2-libelf; \
	mv stage2-libelf libelf; \
	mv stage1-libelf prev-libelf || test -f stage1-lean 
@endif libelf
@if gold
	@cd $(HOST_SUBDIR); [ -d stage2-gold ] || \
	  mkdir stage2-gold; \
	mv stage2-gold gold; \
	mv stage1-gold prev-gold || test -f stage1-lean 
@endif gold
@if intl
	@cd $(HOST_SUBDIR); [ -d stage2-intl ] || \
	  mkdir stage2-intl; \
	mv stage2-intl intl; \
	mv stage1-intl prev-intl || test -f stage1-lean 
@endif intl
@if ld
	@cd $(HOST_SUBDIR); [ -d stage2-ld ] || \
	  mkdir stage2-ld; \
	mv stage2-ld ld; \
	mv stage1-ld prev-ld || test -f stage1-lean 
@endif ld
@if libbacktrace
	@cd $(HOST_SUBDIR); [ -d stage2-libbacktrace ] || \
	  mkdir stage2-libbacktrace; \
	mv stage2-libbacktrace libbacktrace; \
	mv stage1-libbacktrace prev-libbacktrace || test -f stage1-lean 
@endif libbacktrace
@if libcpp
	@cd $(HOST_SUBDIR); [ -d stage2-libcpp ] || \
	  mkdir stage2-libcpp; \
	mv stage2-libcpp libcpp; \
	mv stage1-libcpp prev-libcpp || test -f stage1-lean 
@endif libcpp
@if libdecnumber
	@cd $(HOST_SUBDIR); [ -d stage2-libdecnumber ] || \
	  mkdir stage2-libdecnumber; \
	mv stage2-libdecnumber libdecnumber; \
	mv stage1-libdecnumber prev-libdecnumber || test -f stage1-lean 
@endif libdecnumber
@if libiberty
	@cd $(HOST_SUBDIR); [ -d stage2-libiberty ] || \
	  mkdir stage2-libiberty; \
	mv stage2-libiberty libiberty; \
	mv stage1-libiberty prev-libiberty || test -f stage1-lean 
@endif libiberty
@if libiberty-linker-plugin
	@cd $(HOST_SUBDIR); [ -d stage2-libiberty-linker-plugin ] || \
	  mkdir stage2-libiberty-linker-plugin; \
	mv stage2-libiberty-linker-plugin libiberty-linker-plugin; \
	mv stage1-libiberty-linker-plugin prev-libiberty-linker-plugin || test -f stage1-lean 
@endif libiberty-linker-plugin
@if libiconv
	@cd $(HOST_SUBDIR); [ -d stage2-libiconv ] || \
	  mkdir stage2-libiconv; \
	mv stage2-libiconv libiconv; \
	mv stage1-libiconv prev-libiconv || test -f stage1-lean 
@endif libiconv
@if zlib
	@cd $(HOST_SUBDIR); [ -d stage2-zlib ] || \
	  mkdir stage2-zlib; \
	mv stage2-zlib zlib; \
	mv stage1-zlib prev-zlib || test -f stage1-lean 
@endif zlib
@if lto-plugin
	@cd $(HOST_SUBDIR); [ -d stage2-lto-plugin ] || \
	  mkdir stage2-lto-plugin; \
	mv stage2-lto-plugin lto-plugin; \
	mv stage1-lto-plugin prev-lto-plugin || test -f stage1-lean 
@endif lto-plugin
	@[ -d stage2-$(TARGET_SUBDIR) ] || \
	  mkdir stage2-$(TARGET_SUBDIR); \
	mv stage2-$(TARGET_SUBDIR) $(TARGET_SUBDIR); \
	mv stage1-$(TARGET_SUBDIR) prev-$(TARGET_SUBDIR) || test -f stage1-lean 

stage2-end:: 
@if bfd
	@if test -d $(HOST_SUBDIR)/bfd; then \
	  cd $(HOST_SUBDIR); mv bfd stage2-bfd; \
	  mv prev-bfd stage1-bfd; : ; \
	fi
@endif bfd
@if opcodes
	@if test -d $(HOST_SUBDIR)/opcodes; then \
	  cd $(HOST_SUBDIR); mv opcodes stage2-opcodes; \
	  mv prev-opcodes stage1-opcodes; : ; \
	fi
@endif opcodes
@if binutils
	@if test -d $(HOST_SUBDIR)/binutils; then \
	  cd $(HOST_SUBDIR); mv binutils stage2-binutils; \
	  mv prev-binutils stage1-binutils; : ; \
	fi
@endif binutils
@if fixincludes
	@if test -d $(HOST_SUBDIR)/fixincludes; then \
	  cd $(HOST_SUBDIR); mv fixincludes stage2-fixincludes; \
	  mv prev-fixincludes stage1-fixincludes; : ; \
	fi
@endif fixincludes
@if gas
	@if test -d $(HOST_SUBDIR)/gas; then \
	  cd $(HOST_SUBDIR); mv gas stage2-gas; \
	  mv prev-gas stage1-gas; : ; \
	fi
@endif gas
@if gcc
	@if test -d $(HOST_SUBDIR)/gcc; then \
	  cd $(HOST_SUBDIR); mv gcc stage2-gcc; \
	  mv prev-gcc stage1-gcc; : ; \
	fi
@endif gcc
@if gmp
	@if test -d $(HOST_SUBDIR)/gmp; then \
	  cd $(HOST_SUBDIR); mv gmp stage2-gmp; \
	  mv prev-gmp stage1-gmp; : ; \
	fi
@endif gmp
@if mpfr
	@if test -d $(HOST_SUBDIR)/mpfr; then \
	  cd $(HOST_SUBDIR); mv mpfr stage2-mpfr; \
	  mv prev-mpfr stage1-mpfr; : ; \
	fi
@endif mpfr
@if mpc
	@if test -d $(HOST_SUBDIR)/mpc; then \
	  cd $(HOST_SUBDIR); mv mpc stage2-mpc; \
	  mv prev-mpc stage1-mpc; : ; \
	fi
@endif mpc
@if isl
	@if test -d $(HOST_SUBDIR)/isl; then \
	  cd $(HOST_SUBDIR); mv isl stage2-isl; \
	  mv prev-isl stage1-isl; : ; \
	fi
@endif isl
@if libelf
	@if test -d $(HOST_SUBDIR)/libelf; then \
	  cd $(HOST_SUBDIR); mv libelf stage2-libelf; \
	  mv prev-libelf stage1-libelf; : ; \
	fi
@endif libelf
@if gold
	@if test -d $(HOST_SUBDIR)/gold; then \
	  cd $(HOST_SUBDIR); mv gold stage2-gold; \
	  mv prev-gold stage1-gold; : ; \
	fi
@endif gold
@if intl
	@if test -d $(HOST_SUBDIR)/intl; then \
	  cd $(HOST_SUBDIR); mv intl stage2-intl; \
	  mv prev-intl stage1-intl; : ; \
	fi
@endif intl
@if ld
	@if test -d $(HOST_SUBDIR)/ld; then \
	  cd $(HOST_SUBDIR); mv ld stage2-ld; \
	  mv prev-ld stage1-ld; : ; \
	fi
@endif ld
@if libbacktrace
	@if test -d $(HOST_SUBDIR)/libbacktrace; then \
	  cd $(HOST_SUBDIR); mv libbacktrace stage2-libbacktrace; \
	  mv prev-libbacktrace stage1-libbacktrace; : ; \
	fi
@endif libbacktrace
@if libcpp
	@if test -d $(HOST_SUBDIR)/libcpp; then \
	  cd $(HOST_SUBDIR); mv libcpp stage2-libcpp; \
	  mv prev-libcpp stage1-libcpp; : ; \
	fi
@endif libcpp
@if libdecnumber
	@if test -d $(HOST_SUBDIR)/libdecnumber; then \
	  cd $(HOST_SUBDIR); mv libdecnumber stage2-libdecnumber; \
	  mv prev-libdecnumber stage1-libdecnumber; : ; \
	fi
@endif libdecnumber
@if libiberty
	@if test -d $(HOST_SUBDIR)/libiberty; then \
	  cd $(HOST_SUBDIR); mv libiberty stage2-libiberty; \
	  mv prev-libiberty stage1-libiberty; : ; \
	fi
@endif libiberty
@if libiberty-linker-plugin
	@if test -d $(HOST_SUBDIR)/libiberty-linker-plugin; then \
	  cd $(HOST_SUBDIR); mv libiberty-linker-plugin stage2-libiberty-linker-plugin; \
	  mv prev-libiberty-linker-plugin stage1-libiberty-linker-plugin; : ; \
	fi
@endif libiberty-linker-plugin
@if libiconv
	@if test -d $(HOST_SUBDIR)/libiconv; then \
	  cd $(HOST_SUBDIR); mv libiconv stage2-libiconv; \
	  mv prev-libiconv stage1-libiconv; : ; \
	fi
@endif libiconv
@if zlib
	@if test -d $(HOST_SUBDIR)/zlib; then \
	  cd $(HOST_SUBDIR); mv zlib stage2-zlib; \
	  mv prev-zlib stage1-zlib; : ; \
	fi
@endif zlib
@if lto-plugin
	@if test -d $(HOST_SUBDIR)/lto-plugin; then \
	  cd $(HOST_SUBDIR); mv lto-plugin stage2-lto-plugin; \
	  mv prev-lto-plugin stage1-lto-plugin; : ; \
	fi
@endif lto-plugin
	@if test -d $(TARGET_SUBDIR); then \
	  mv $(TARGET_SUBDIR) stage2-$(TARGET_SUBDIR); \
	  mv prev-$(TARGET_SUBDIR) stage1-$(TARGET_SUBDIR); : ; \
	fi
	rm -f stage_current

# Bubble a bug fix through all the stages up to stage 2.  They are
# remade, but not reconfigured.  The next stage (if any) will not be
# reconfigured either.
.PHONY: stage2-bubble
stage2-bubble:: stage1-bubble
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	if test -f stage2-lean || test -f stage1-lean ; then \
	  echo Skipping rebuild of stage2; \
	else \
	  $(MAKE) stage2-start; \
	  $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stage2; \
	fi

.PHONY: all-stage2 clean-stage2
do-clean: clean-stage2

# FIXME: Will not need to be conditional when toplevel bootstrap is the
# only possibility, but now it conflicts with no-bootstrap rules
@if gcc-bootstrap



.PHONY: bootstrap2 bootstrap2-lean
bootstrap2:
	echo stage2 > stage_final
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) stage2-bubble
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(MAKE) $(TARGET_FLAGS_TO_PASS) all-host all-target

bootstrap2-lean:
	echo stage2 > stage_final
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) LEAN=: stage2-bubble
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	$(MAKE) $(TARGET_FLAGS_TO_PASS) all-host all-target


# Rules to wipe a stage and all the following ones, also used for cleanstrap
distclean-stage1:: distclean-stage2 
.PHONY: distclean-stage2
distclean-stage2::
	@: $(MAKE); $(stage)
	@test "`cat stage_last`" != stage2 || rm -f stage_last
	rm -rf stage2-* 


@endif gcc-bootstrap


.PHONY: stage3-start stage3-end

stage3-start::
	@: $(MAKE); $(stage); \
	echo stage3 > stage_current; \
	echo stage3 > stage_last; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)
@if bfd
	@cd $(HOST_SUBDIR); [ -d stage3-bfd ] || \
	  mkdir stage3-bfd; \
	mv stage3-bfd bfd; \
	mv stage2-bfd prev-bfd || test -f stage2-lean 
@endif bfd
@if opcodes
	@cd $(HOST_SUBDIR); [ -d stage3-opcodes ] || \
	  mkdir stage3-opcodes; \
	mv stage3-opcodes opcodes; \
	mv stage2-opcodes prev-opcodes || test -f stage2-lean 
@endif opcodes
@if binutils
	@cd $(HOST_SUBDIR); [ -d stage3-binutils ] || \
	  mkdir stage3-binutils; \
	mv stage3-binutils binutils; \
	mv stage2-binutils prev-binutils || test -f stage2-lean 
@endif binutils
@if fixincludes
	@cd $(HOST_SUBDIR); [ -d stage3-fixincludes ] || \
	  mkdir stage3-fixincludes; \
	mv stage3-fixincludes fixincludes; \
	mv stage2-fixincludes prev-fixincludes || test -f stage2-lean 
@endif fixincludes
@if gas
	@cd $(HOST_SUBDIR); [ -d stage3-gas ] || \
	  mkdir stage3-gas; \
	mv stage3-gas gas; \
	mv stage2-gas prev-gas || test -f stage2-lean 
@endif gas
@if gcc
	@cd $(HOST_SUBDIR); [ -d stage3-gcc ] || \
	  mkdir stage3-gcc; \
	mv stage3-gcc gcc; \
	mv stage2-gcc prev-gcc || test -f stage2-lean 
@endif gcc
@if gmp
	@cd $(HOST_SUBDIR); [ -d stage3-gmp ] || \
	  mkdir stage3-gmp; \
	mv stage3-gmp gmp; \
	mv stage2-gmp prev-gmp || test -f stage2-lean 
@endif gmp
@if mpfr
	@cd $(HOST_SUBDIR); [ -d stage3-mpfr ] || \
	  mkdir stage3-mpfr; \
	mv stage3-mpfr mpfr; \
	mv stage2-mpfr prev-mpfr || test -f stage2-lean 
@endif mpfr
@if mpc
	@cd $(HOST_SUBDIR); [ -d stage3-mpc ] || \
	  mkdir stage3-mpc; \
	mv stage3-mpc mpc; \
	mv stage2-mpc prev-mpc || test -f stage2-lean 
@endif mpc
@if isl
	@cd $(HOST_SUBDIR); [ -d stage3-isl ] || \
	  mkdir stage3-isl; \
	mv stage3-isl isl; \
	mv stage2-isl prev-isl || test -f stage2-lean 
@endif isl
@if libelf
	@cd $(HOST_SUBDIR); [ -d stage3-libelf ] || \
	  mkdir stage3-libelf; \
	mv stage3-libelf libelf; \
	mv stage2-libelf prev-libelf || test -f stage2-lean 
@endif libelf
@if gold
	@cd $(HOST_SUBDIR); [ -d stage3-gold ] || \
	  mkdir stage3-gold; \
	mv stage3-gold gold; \
	mv stage2-gold prev-gold || test -f stage2-lean 
@endif gold
@if intl
	@cd $(HOST_SUBDIR); [ -d stage3-intl ] || \
	  mkdir stage3-intl; \
	mv stage3-intl intl; \
	mv stage2-intl prev-intl || test -f stage2-lean 
@endif intl
@if ld
	@cd $(HOST_SUBDIR); [ -d stage3-ld ] || \
	  mkdir stage3-ld; \
	mv stage3-ld ld; \
	mv stage2-ld prev-ld || test -f stage2-lean 
@endif ld
@if libbacktrace
	@cd $(HOST_SUBDIR); [ -d stage3-libbacktrace ] || \
	  mkdir stage3-libbacktrace; \
	mv stage3-libbacktrace libbacktrace; \
	mv stage2-libbacktrace prev-libbacktrace || test -f stage2-lean 
@endif libbacktrace
@if libcpp
	@cd $(HOST_SUBDIR); [ -d stage3-libcpp ] || \
	  mkdir stage3-libcpp; \
	mv stage3-libcpp libcpp; \
	mv stage2-libcpp prev-libcpp || test -f stage2-lean 
@endif libcpp
@if libdecnumber
	@cd $(HOST_SUBDIR); [ -d stage3-libdecnumber ] || \
	  mkdir stage3-libdecnumber; \
	mv stage3-libdecnumber libdecnumber; \
	mv stage2-libdecnumber prev-libdecnumber || test -f stage2-lean 
@endif libdecnumber
@if libiberty
	@cd $(HOST_SUBDIR); [ -d stage3-libiberty ] || \
	  mkdir stage3-libiberty; \
	mv stage3-libiberty libiberty; \
	mv stage2-libiberty prev-libiberty || test -f stage2-lean 
@endif libiberty
@if libiberty-linker-plugin
	@cd $(HOST_SUBDIR); [ -d stage3-libiberty-linker-plugin ] || \
	  mkdir stage3-libiberty-linker-plugin; \
	mv stage3-libiberty-linker-plugin libiberty-linker-plugin; \
	mv stage2-libiberty-linker-plugin prev-libiberty-linker-plugin || test -f stage2-lean 
@endif libiberty-linker-plugin
@if libiconv
	@cd $(HOST_SUBDIR); [ -d stage3-libiconv ] || \
	  mkdir stage3-libiconv; \
	mv stage3-libiconv libiconv; \
	mv stage2-libiconv prev-libiconv || test -f stage2-lean 
@endif libiconv
@if zlib
	@cd $(HOST_SUBDIR); [ -d stage3-zlib ] || \
	  mkdir stage3-zlib; \
	mv stage3-zlib zlib; \
	mv stage2-zlib prev-zlib || test -f stage2-lean 
@endif zlib
@if lto-plugin
	@cd $(HOST_SUBDIR); [ -d stage3-lto-plugin ] || \
	  mkdir stage3-lto-plugin; \
	mv stage3-lto-plugin lto-plugin; \
	mv stage2-lto-plugin prev-lto-plugin || test -f stage2-lean 
@endif lto-plugin
	@[ -d stage3-$(TARGET_SUBDIR) ] || \
	  mkdir stage3-$(TARGET_SUBDIR); \
	mv stage3-$(TARGET_SUBDIR) $(TARGET_SUBDIR); \
	mv stage2-$(TARGET_SUBDIR) prev-$(TARGET_SUBDIR) || test -f stage2-lean 

stage3-end:: 
@if bfd
	@if test -d $(HOST_SUBDIR)/bfd; then \
	  cd $(HOST_SUBDIR); mv bfd stage3-bfd; \
	  mv prev-bfd stage2-bfd; : ; \
	fi
@endif bfd
@if opcodes
	@if test -d $(HOST_SUBDIR)/opcodes; then \
	  cd $(HOST_SUBDIR); mv opcodes stage3-opcodes; \
	  mv prev-opcodes stage2-opcodes; : ; \
	fi
@endif opcodes
@if binutils
	@if test -d $(HOST_SUBDIR)/binutils; then \
	  cd $(HOST_SUBDIR); mv binutils stage3-binutils; \
	  mv prev-binutils stage2-binutils; : ; \
	fi
@endif binutils
@if fixincludes
	@if test -d $(HOST_SUBDIR)/fixincludes; then \
	  cd $(HOST_SUBDIR); mv fixincludes stage3-fixincludes; \
	  mv prev-fixincludes stage2-fixincludes; : ; \
	fi
@endif fixincludes
@if gas
	@if test -d $(HOST_SUBDIR)/gas; then \
	  cd $(HOST_SUBDIR); mv gas stage3-gas; \
	  mv prev-gas stage2-gas; : ; \
	fi
@endif gas
@if gcc
	@if test -d $(HOST_SUBDIR)/gcc; then \
	  cd $(HOST_SUBDIR); mv gcc stage3-gcc; \
	  mv prev-gcc stage2-gcc; : ; \
	fi
@endif gcc
@if gmp
	@if test -d $(HOST_SUBDIR)/gmp; then \
	  cd $(HOST_SUBDIR); mv gmp stage3-gmp; \
	  mv prev-gmp stage2-gmp; : ; \
	fi
@endif gmp
@if mpfr
	@if test -d $(HOST_SUBDIR)/mpfr; then \
	  cd $(HOST_SUBDIR); mv mpfr stage3-mpfr; \
	  mv prev-mpfr stage2-mpfr; : ; \
	fi
@endif mpfr
@if mpc
	@if test -d $(HOST_SUBDIR)/mpc; then \
	  cd $(HOST_SUBDIR); mv mpc stage3-mpc; \
	  mv prev-mpc stage2-mpc; : ; \
	fi
@endif mpc
@if isl
	@if test -d $(HOST_SUBDIR)/isl; then \
	  cd $(HOST_SUBDIR); mv isl stage3-isl; \
	  mv prev-isl stage2-isl; : ; \
	fi
@endif isl
@if libelf
	@if test -d $(HOST_SUBDIR)/libelf; then \
	  cd $(HOST_SUBDIR); mv libelf stage3-libelf; \
	  mv prev-libelf stage2-libelf; : ; \
	fi
@endif libelf
@if gold
	@if test -d $(HOST_SUBDIR)/gold; then \
	  cd $(HOST_SUBDIR); mv gold stage3-gold; \
	  mv prev-gold stage2-gold; : ; \
	fi
@endif gold
@if intl
	@if test -d $(HOST_SUBDIR)/intl; then \
	  cd $(HOST_SUBDIR); mv intl stage3-intl; \
	  mv prev-intl stage2-intl; : ; \
	fi
@endif intl
@if ld
	@if test -d $(HOST_SUBDIR)/ld; then \
	  cd $(HOST_SUBDIR); mv ld stage3-ld; \
	  mv prev-ld stage2-ld; : ; \
	fi
@endif ld
@if libbacktrace
	@if test -d $(HOST_SUBDIR)/libbacktrace; then \
	  cd $(HOST_SUBDIR); mv libbacktrace stage3-libbacktrace; \
	  mv prev-libbacktrace stage2-libbacktrace; : ; \
	fi
@endif libbacktrace
@if libcpp
	@if test -d $(HOST_SUBDIR)/libcpp; then \
	  cd $(HOST_SUBDIR); mv libcpp stage3-libcpp; \
	  mv prev-libcpp stage2-libcpp; : ; \
	fi
@endif libcpp
@if libdecnumber
	@if test -d $(HOST_SUBDIR)/libdecnumber; then \
	  cd $(HOST_SUBDIR); mv libdecnumber stage3-libdecnumber; \
	  mv prev-libdecnumber stage2-libdecnumber; : ; \
	fi
@endif libdecnumber
@if libiberty
	@if test -d $(HOST_SUBDIR)/libiberty; then \
	  cd $(HOST_SUBDIR); mv libiberty stage3-libiberty; \
	  mv prev-libiberty stage2-libiberty; : ; \
	fi
@endif libiberty
@if libiberty-linker-plugin
	@if test -d $(HOST_SUBDIR)/libiberty-linker-plugin; then \
	  cd $(HOST_SUBDIR); mv libiberty-linker-plugin stage3-libiberty-linker-plugin; \
	  mv prev-libiberty-linker-plugin stage2-libiberty-linker-plugin; : ; \
	fi
@endif libiberty-linker-plugin
@if libiconv
	@if test -d $(HOST_SUBDIR)/libiconv; then \
	  cd $(HOST_SUBDIR); mv libiconv stage3-libiconv; \
	  mv prev-libiconv stage2-libiconv; : ; \
	fi
@endif libiconv
@if zlib
	@if test -d $(HOST_SUBDIR)/zlib; then \
	  cd $(HOST_SUBDIR); mv zlib stage3-zlib; \
	  mv prev-zlib stage2-zlib; : ; \
	fi
@endif zlib
@if lto-plugin
	@if test -d $(HOST_SUBDIR)/lto-plugin; then \
	  cd $(HOST_SUBDIR); mv lto-plugin stage3-lto-plugin; \
	  mv prev-lto-plugin stage2-lto-plugin; : ; \
	fi
@endif lto-plugin
	@if test -d $(TARGET_SUBDIR); then \
	  mv $(TARGET_SUBDIR) stage3-$(TARGET_SUBDIR); \
	  mv prev-$(TARGET_SUBDIR) stage2-$(TARGET_SUBDIR); : ; \
	fi
	rm -f stage_current

# Bubble a bug fix through all the stages up to stage 3.  They are
# remade, but not reconfigured.  The next stage (if any) will not be
# reconfigured either.
.PHONY: stage3-bubble
stage3-bubble:: stage2-bubble
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	if test -f stage3-lean || test -f stage2-lean ; then \
	  echo Skipping rebuild of stage3; \
	else \
	  $(MAKE) stage3-start; \
	  if $(LEAN); then \
	    rm -rf stage1-*; \
	    $(STAMP) stage1-lean; \
	  fi; \
	  $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stage3; \
	fi
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) compare

.PHONY: all-stage3 clean-stage3
do-clean: clean-stage3

# FIXME: Will not need to be conditional when toplevel bootstrap is the
# only possibility, but now it conflicts with no-bootstrap rules
@if gcc-bootstrap

compare:
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	if test -f stage2-lean; then \
	  echo Cannot compare object files as stage 2 was deleted.; \
	  exit 0; \
	fi; \
	: $(MAKE); $(stage); \
	rm -f .bad_compare; \
	echo Comparing stages 2 and 3; \
        sed=`echo stage3 | sed 's,^stage,,;s,.,.,g'`; \
	files=`find stage3-* -name "*$(objext)" -print | \
		 sed -n s,^stage$$sed-,,p`; \
	for file in $${files}; do \
	  f1=$$r/stage2-$$file; f2=$$r/stage3-$$file; \
	  if test ! -f $$f1; then continue; fi; \
	  $(do-compare) > /dev/null 2>&1; \
	  if test $$? -eq 1; then \
	    case $$file in \
	      @compare_exclusions@) \
	        echo warning: $$file differs ;; \
	      *) \
	        echo $$file differs >> .bad_compare ;; \
	    esac; \
	  fi; \
	done; \
	if [ -f .bad_compare ]; then \
	  echo "Bootstrap comparison failure!"; \
	  cat .bad_compare; \
	  exit 1; \
	else \
	  echo Comparison successful.; \
	fi; \
	$(STAMP) compare
	if $(LEAN); then \
	  rm -rf stage2-*; \
	  $(STAMP) stage2-lean; \
	fi



.PHONY: bootstrap bootstrap-lean
bootstrap:
	echo stage3 > stage_final
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) stage3-bubble
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(MAKE) $(TARGET_FLAGS_TO_PASS) all-host all-target

bootstrap-lean:
	echo stage3 > stage_final
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) LEAN=: stage3-bubble
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(MAKE) $(TARGET_FLAGS_TO_PASS) all-host all-target


# Rules to wipe a stage and all the following ones, also used for cleanstrap
distclean-stage2:: distclean-stage3 
.PHONY: distclean-stage3
distclean-stage3::
	@: $(MAKE); $(stage)
	@test "`cat stage_last`" != stage3 || rm -f stage_last
	rm -rf stage3-* compare 


.PHONY: cleanstrap
cleanstrap: do-distclean local-clean
	echo stage3 > stage_final
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) stage3-bubble
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	$(MAKE) $(TARGET_FLAGS_TO_PASS) all-host all-target

@endif gcc-bootstrap


.PHONY: stage4-start stage4-end

stage4-start::
	@: $(MAKE); $(stage); \
	echo stage4 > stage_current; \
	echo stage4 > stage_last; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)
@if bfd
	@cd $(HOST_SUBDIR); [ -d stage4-bfd ] || \
	  mkdir stage4-bfd; \
	mv stage4-bfd bfd; \
	mv stage3-bfd prev-bfd || test -f stage3-lean 
@endif bfd
@if opcodes
	@cd $(HOST_SUBDIR); [ -d stage4-opcodes ] || \
	  mkdir stage4-opcodes; \
	mv stage4-opcodes opcodes; \
	mv stage3-opcodes prev-opcodes || test -f stage3-lean 
@endif opcodes
@if binutils
	@cd $(HOST_SUBDIR); [ -d stage4-binutils ] || \
	  mkdir stage4-binutils; \
	mv stage4-binutils binutils; \
	mv stage3-binutils prev-binutils || test -f stage3-lean 
@endif binutils
@if fixincludes
	@cd $(HOST_SUBDIR); [ -d stage4-fixincludes ] || \
	  mkdir stage4-fixincludes; \
	mv stage4-fixincludes fixincludes; \
	mv stage3-fixincludes prev-fixincludes || test -f stage3-lean 
@endif fixincludes
@if gas
	@cd $(HOST_SUBDIR); [ -d stage4-gas ] || \
	  mkdir stage4-gas; \
	mv stage4-gas gas; \
	mv stage3-gas prev-gas || test -f stage3-lean 
@endif gas
@if gcc
	@cd $(HOST_SUBDIR); [ -d stage4-gcc ] || \
	  mkdir stage4-gcc; \
	mv stage4-gcc gcc; \
	mv stage3-gcc prev-gcc || test -f stage3-lean 
@endif gcc
@if gmp
	@cd $(HOST_SUBDIR); [ -d stage4-gmp ] || \
	  mkdir stage4-gmp; \
	mv stage4-gmp gmp; \
	mv stage3-gmp prev-gmp || test -f stage3-lean 
@endif gmp
@if mpfr
	@cd $(HOST_SUBDIR); [ -d stage4-mpfr ] || \
	  mkdir stage4-mpfr; \
	mv stage4-mpfr mpfr; \
	mv stage3-mpfr prev-mpfr || test -f stage3-lean 
@endif mpfr
@if mpc
	@cd $(HOST_SUBDIR); [ -d stage4-mpc ] || \
	  mkdir stage4-mpc; \
	mv stage4-mpc mpc; \
	mv stage3-mpc prev-mpc || test -f stage3-lean 
@endif mpc
@if isl
	@cd $(HOST_SUBDIR); [ -d stage4-isl ] || \
	  mkdir stage4-isl; \
	mv stage4-isl isl; \
	mv stage3-isl prev-isl || test -f stage3-lean 
@endif isl
@if libelf
	@cd $(HOST_SUBDIR); [ -d stage4-libelf ] || \
	  mkdir stage4-libelf; \
	mv stage4-libelf libelf; \
	mv stage3-libelf prev-libelf || test -f stage3-lean 
@endif libelf
@if gold
	@cd $(HOST_SUBDIR); [ -d stage4-gold ] || \
	  mkdir stage4-gold; \
	mv stage4-gold gold; \
	mv stage3-gold prev-gold || test -f stage3-lean 
@endif gold
@if intl
	@cd $(HOST_SUBDIR); [ -d stage4-intl ] || \
	  mkdir stage4-intl; \
	mv stage4-intl intl; \
	mv stage3-intl prev-intl || test -f stage3-lean 
@endif intl
@if ld
	@cd $(HOST_SUBDIR); [ -d stage4-ld ] || \
	  mkdir stage4-ld; \
	mv stage4-ld ld; \
	mv stage3-ld prev-ld || test -f stage3-lean 
@endif ld
@if libbacktrace
	@cd $(HOST_SUBDIR); [ -d stage4-libbacktrace ] || \
	  mkdir stage4-libbacktrace; \
	mv stage4-libbacktrace libbacktrace; \
	mv stage3-libbacktrace prev-libbacktrace || test -f stage3-lean 
@endif libbacktrace
@if libcpp
	@cd $(HOST_SUBDIR); [ -d stage4-libcpp ] || \
	  mkdir stage4-libcpp; \
	mv stage4-libcpp libcpp; \
	mv stage3-libcpp prev-libcpp || test -f stage3-lean 
@endif libcpp
@if libdecnumber
	@cd $(HOST_SUBDIR); [ -d stage4-libdecnumber ] || \
	  mkdir stage4-libdecnumber; \
	mv stage4-libdecnumber libdecnumber; \
	mv stage3-libdecnumber prev-libdecnumber || test -f stage3-lean 
@endif libdecnumber
@if libiberty
	@cd $(HOST_SUBDIR); [ -d stage4-libiberty ] || \
	  mkdir stage4-libiberty; \
	mv stage4-libiberty libiberty; \
	mv stage3-libiberty prev-libiberty || test -f stage3-lean 
@endif libiberty
@if libiberty-linker-plugin
	@cd $(HOST_SUBDIR); [ -d stage4-libiberty-linker-plugin ] || \
	  mkdir stage4-libiberty-linker-plugin; \
	mv stage4-libiberty-linker-plugin libiberty-linker-plugin; \
	mv stage3-libiberty-linker-plugin prev-libiberty-linker-plugin || test -f stage3-lean 
@endif libiberty-linker-plugin
@if libiconv
	@cd $(HOST_SUBDIR); [ -d stage4-libiconv ] || \
	  mkdir stage4-libiconv; \
	mv stage4-libiconv libiconv; \
	mv stage3-libiconv prev-libiconv || test -f stage3-lean 
@endif libiconv
@if zlib
	@cd $(HOST_SUBDIR); [ -d stage4-zlib ] || \
	  mkdir stage4-zlib; \
	mv stage4-zlib zlib; \
	mv stage3-zlib prev-zlib || test -f stage3-lean 
@endif zlib
@if lto-plugin
	@cd $(HOST_SUBDIR); [ -d stage4-lto-plugin ] || \
	  mkdir stage4-lto-plugin; \
	mv stage4-lto-plugin lto-plugin; \
	mv stage3-lto-plugin prev-lto-plugin || test -f stage3-lean 
@endif lto-plugin
	@[ -d stage4-$(TARGET_SUBDIR) ] || \
	  mkdir stage4-$(TARGET_SUBDIR); \
	mv stage4-$(TARGET_SUBDIR) $(TARGET_SUBDIR); \
	mv stage3-$(TARGET_SUBDIR) prev-$(TARGET_SUBDIR) || test -f stage3-lean 

stage4-end:: 
@if bfd
	@if test -d $(HOST_SUBDIR)/bfd; then \
	  cd $(HOST_SUBDIR); mv bfd stage4-bfd; \
	  mv prev-bfd stage3-bfd; : ; \
	fi
@endif bfd
@if opcodes
	@if test -d $(HOST_SUBDIR)/opcodes; then \
	  cd $(HOST_SUBDIR); mv opcodes stage4-opcodes; \
	  mv prev-opcodes stage3-opcodes; : ; \
	fi
@endif opcodes
@if binutils
	@if test -d $(HOST_SUBDIR)/binutils; then \
	  cd $(HOST_SUBDIR); mv binutils stage4-binutils; \
	  mv prev-binutils stage3-binutils; : ; \
	fi
@endif binutils
@if fixincludes
	@if test -d $(HOST_SUBDIR)/fixincludes; then \
	  cd $(HOST_SUBDIR); mv fixincludes stage4-fixincludes; \
	  mv prev-fixincludes stage3-fixincludes; : ; \
	fi
@endif fixincludes
@if gas
	@if test -d $(HOST_SUBDIR)/gas; then \
	  cd $(HOST_SUBDIR); mv gas stage4-gas; \
	  mv prev-gas stage3-gas; : ; \
	fi
@endif gas
@if gcc
	@if test -d $(HOST_SUBDIR)/gcc; then \
	  cd $(HOST_SUBDIR); mv gcc stage4-gcc; \
	  mv prev-gcc stage3-gcc; : ; \
	fi
@endif gcc
@if gmp
	@if test -d $(HOST_SUBDIR)/gmp; then \
	  cd $(HOST_SUBDIR); mv gmp stage4-gmp; \
	  mv prev-gmp stage3-gmp; : ; \
	fi
@endif gmp
@if mpfr
	@if test -d $(HOST_SUBDIR)/mpfr; then \
	  cd $(HOST_SUBDIR); mv mpfr stage4-mpfr; \
	  mv prev-mpfr stage3-mpfr; : ; \
	fi
@endif mpfr
@if mpc
	@if test -d $(HOST_SUBDIR)/mpc; then \
	  cd $(HOST_SUBDIR); mv mpc stage4-mpc; \
	  mv prev-mpc stage3-mpc; : ; \
	fi
@endif mpc
@if isl
	@if test -d $(HOST_SUBDIR)/isl; then \
	  cd $(HOST_SUBDIR); mv isl stage4-isl; \
	  mv prev-isl stage3-isl; : ; \
	fi
@endif isl
@if libelf
	@if test -d $(HOST_SUBDIR)/libelf; then \
	  cd $(HOST_SUBDIR); mv libelf stage4-libelf; \
	  mv prev-libelf stage3-libelf; : ; \
	fi
@endif libelf
@if gold
	@if test -d $(HOST_SUBDIR)/gold; then \
	  cd $(HOST_SUBDIR); mv gold stage4-gold; \
	  mv prev-gold stage3-gold; : ; \
	fi
@endif gold
@if intl
	@if test -d $(HOST_SUBDIR)/intl; then \
	  cd $(HOST_SUBDIR); mv intl stage4-intl; \
	  mv prev-intl stage3-intl; : ; \
	fi
@endif intl
@if ld
	@if test -d $(HOST_SUBDIR)/ld; then \
	  cd $(HOST_SUBDIR); mv ld stage4-ld; \
	  mv prev-ld stage3-ld; : ; \
	fi
@endif ld
@if libbacktrace
	@if test -d $(HOST_SUBDIR)/libbacktrace; then \
	  cd $(HOST_SUBDIR); mv libbacktrace stage4-libbacktrace; \
	  mv prev-libbacktrace stage3-libbacktrace; : ; \
	fi
@endif libbacktrace
@if libcpp
	@if test -d $(HOST_SUBDIR)/libcpp; then \
	  cd $(HOST_SUBDIR); mv libcpp stage4-libcpp; \
	  mv prev-libcpp stage3-libcpp; : ; \
	fi
@endif libcpp
@if libdecnumber
	@if test -d $(HOST_SUBDIR)/libdecnumber; then \
	  cd $(HOST_SUBDIR); mv libdecnumber stage4-libdecnumber; \
	  mv prev-libdecnumber stage3-libdecnumber; : ; \
	fi
@endif libdecnumber
@if libiberty
	@if test -d $(HOST_SUBDIR)/libiberty; then \
	  cd $(HOST_SUBDIR); mv libiberty stage4-libiberty; \
	  mv prev-libiberty stage3-libiberty; : ; \
	fi
@endif libiberty
@if libiberty-linker-plugin
	@if test -d $(HOST_SUBDIR)/libiberty-linker-plugin; then \
	  cd $(HOST_SUBDIR); mv libiberty-linker-plugin stage4-libiberty-linker-plugin; \
	  mv prev-libiberty-linker-plugin stage3-libiberty-linker-plugin; : ; \
	fi
@endif libiberty-linker-plugin
@if libiconv
	@if test -d $(HOST_SUBDIR)/libiconv; then \
	  cd $(HOST_SUBDIR); mv libiconv stage4-libiconv; \
	  mv prev-libiconv stage3-libiconv; : ; \
	fi
@endif libiconv
@if zlib
	@if test -d $(HOST_SUBDIR)/zlib; then \
	  cd $(HOST_SUBDIR); mv zlib stage4-zlib; \
	  mv prev-zlib stage3-zlib; : ; \
	fi
@endif zlib
@if lto-plugin
	@if test -d $(HOST_SUBDIR)/lto-plugin; then \
	  cd $(HOST_SUBDIR); mv lto-plugin stage4-lto-plugin; \
	  mv prev-lto-plugin stage3-lto-plugin; : ; \
	fi
@endif lto-plugin
	@if test -d $(TARGET_SUBDIR); then \
	  mv $(TARGET_SUBDIR) stage4-$(TARGET_SUBDIR); \
	  mv prev-$(TARGET_SUBDIR) stage3-$(TARGET_SUBDIR); : ; \
	fi
	rm -f stage_current

# Bubble a bug fix through all the stages up to stage 4.  They are
# remade, but not reconfigured.  The next stage (if any) will not be
# reconfigured either.
.PHONY: stage4-bubble
stage4-bubble:: stage3-bubble
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	if test -f stage4-lean || test -f stage3-lean ; then \
	  echo Skipping rebuild of stage4; \
	else \
	  $(MAKE) stage4-start; \
	  if $(LEAN); then \
	    rm -rf stage2-*; \
	    $(STAMP) stage2-lean; \
	  fi; \
	  $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stage4; \
	fi
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) compare3

.PHONY: all-stage4 clean-stage4
do-clean: clean-stage4

# FIXME: Will not need to be conditional when toplevel bootstrap is the
# only possibility, but now it conflicts with no-bootstrap rules
@if gcc-bootstrap

compare3:
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	if test -f stage3-lean; then \
	  echo Cannot compare object files as stage 3 was deleted.; \
	  exit 0; \
	fi; \
	: $(MAKE); $(stage); \
	rm -f .bad_compare; \
	echo Comparing stages 3 and 4; \
        sed=`echo stage4 | sed 's,^stage,,;s,.,.,g'`; \
	files=`find stage4-* -name "*$(objext)" -print | \
		 sed -n s,^stage$$sed-,,p`; \
	for file in $${files}; do \
	  f1=$$r/stage3-$$file; f2=$$r/stage4-$$file; \
	  if test ! -f $$f1; then continue; fi; \
	  $(do-compare3) > /dev/null 2>&1; \
	  if test $$? -eq 1; then \
	    case $$file in \
	      @compare_exclusions@) \
	        echo warning: $$file differs ;; \
	      *) \
	        echo $$file differs >> .bad_compare ;; \
	    esac; \
	  fi; \
	done; \
	if [ -f .bad_compare ]; then \
	  echo "Bootstrap comparison failure!"; \
	  cat .bad_compare; \
	  exit 1; \
	else \
	  echo Comparison successful.; \
	fi; \
	$(STAMP) compare3
	if $(LEAN); then \
	  rm -rf stage3-*; \
	  $(STAMP) stage3-lean; \
	fi



.PHONY: bootstrap4 bootstrap4-lean
bootstrap4:
	echo stage4 > stage_final
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) stage4-bubble
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(MAKE) $(TARGET_FLAGS_TO_PASS) all-host all-target

bootstrap4-lean:
	echo stage4 > stage_final
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) LEAN=: stage4-bubble
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	$(MAKE) $(TARGET_FLAGS_TO_PASS) all-host all-target


# Rules to wipe a stage and all the following ones, also used for cleanstrap
distclean-stage3:: distclean-stage4 
.PHONY: distclean-stage4
distclean-stage4::
	@: $(MAKE); $(stage)
	@test "`cat stage_last`" != stage4 || rm -f stage_last
	rm -rf stage4-* compare3 


@endif gcc-bootstrap


.PHONY: stageprofile-start stageprofile-end

stageprofile-start::
	@: $(MAKE); $(stage); \
	echo stageprofile > stage_current; \
	echo stageprofile > stage_last; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)
@if bfd
	@cd $(HOST_SUBDIR); [ -d stageprofile-bfd ] || \
	  mkdir stageprofile-bfd; \
	mv stageprofile-bfd bfd; \
	mv stage1-bfd prev-bfd || test -f stage1-lean 
@endif bfd
@if opcodes
	@cd $(HOST_SUBDIR); [ -d stageprofile-opcodes ] || \
	  mkdir stageprofile-opcodes; \
	mv stageprofile-opcodes opcodes; \
	mv stage1-opcodes prev-opcodes || test -f stage1-lean 
@endif opcodes
@if binutils
	@cd $(HOST_SUBDIR); [ -d stageprofile-binutils ] || \
	  mkdir stageprofile-binutils; \
	mv stageprofile-binutils binutils; \
	mv stage1-binutils prev-binutils || test -f stage1-lean 
@endif binutils
@if fixincludes
	@cd $(HOST_SUBDIR); [ -d stageprofile-fixincludes ] || \
	  mkdir stageprofile-fixincludes; \
	mv stageprofile-fixincludes fixincludes; \
	mv stage1-fixincludes prev-fixincludes || test -f stage1-lean 
@endif fixincludes
@if gas
	@cd $(HOST_SUBDIR); [ -d stageprofile-gas ] || \
	  mkdir stageprofile-gas; \
	mv stageprofile-gas gas; \
	mv stage1-gas prev-gas || test -f stage1-lean 
@endif gas
@if gcc
	@cd $(HOST_SUBDIR); [ -d stageprofile-gcc ] || \
	  mkdir stageprofile-gcc; \
	mv stageprofile-gcc gcc; \
	mv stage1-gcc prev-gcc || test -f stage1-lean 
@endif gcc
@if gmp
	@cd $(HOST_SUBDIR); [ -d stageprofile-gmp ] || \
	  mkdir stageprofile-gmp; \
	mv stageprofile-gmp gmp; \
	mv stage1-gmp prev-gmp || test -f stage1-lean 
@endif gmp
@if mpfr
	@cd $(HOST_SUBDIR); [ -d stageprofile-mpfr ] || \
	  mkdir stageprofile-mpfr; \
	mv stageprofile-mpfr mpfr; \
	mv stage1-mpfr prev-mpfr || test -f stage1-lean 
@endif mpfr
@if mpc
	@cd $(HOST_SUBDIR); [ -d stageprofile-mpc ] || \
	  mkdir stageprofile-mpc; \
	mv stageprofile-mpc mpc; \
	mv stage1-mpc prev-mpc || test -f stage1-lean 
@endif mpc
@if isl
	@cd $(HOST_SUBDIR); [ -d stageprofile-isl ] || \
	  mkdir stageprofile-isl; \
	mv stageprofile-isl isl; \
	mv stage1-isl prev-isl || test -f stage1-lean 
@endif isl
@if libelf
	@cd $(HOST_SUBDIR); [ -d stageprofile-libelf ] || \
	  mkdir stageprofile-libelf; \
	mv stageprofile-libelf libelf; \
	mv stage1-libelf prev-libelf || test -f stage1-lean 
@endif libelf
@if gold
	@cd $(HOST_SUBDIR); [ -d stageprofile-gold ] || \
	  mkdir stageprofile-gold; \
	mv stageprofile-gold gold; \
	mv stage1-gold prev-gold || test -f stage1-lean 
@endif gold
@if intl
	@cd $(HOST_SUBDIR); [ -d stageprofile-intl ] || \
	  mkdir stageprofile-intl; \
	mv stageprofile-intl intl; \
	mv stage1-intl prev-intl || test -f stage1-lean 
@endif intl
@if ld
	@cd $(HOST_SUBDIR); [ -d stageprofile-ld ] || \
	  mkdir stageprofile-ld; \
	mv stageprofile-ld ld; \
	mv stage1-ld prev-ld || test -f stage1-lean 
@endif ld
@if libbacktrace
	@cd $(HOST_SUBDIR); [ -d stageprofile-libbacktrace ] || \
	  mkdir stageprofile-libbacktrace; \
	mv stageprofile-libbacktrace libbacktrace; \
	mv stage1-libbacktrace prev-libbacktrace || test -f stage1-lean 
@endif libbacktrace
@if libcpp
	@cd $(HOST_SUBDIR); [ -d stageprofile-libcpp ] || \
	  mkdir stageprofile-libcpp; \
	mv stageprofile-libcpp libcpp; \
	mv stage1-libcpp prev-libcpp || test -f stage1-lean 
@endif libcpp
@if libdecnumber
	@cd $(HOST_SUBDIR); [ -d stageprofile-libdecnumber ] || \
	  mkdir stageprofile-libdecnumber; \
	mv stageprofile-libdecnumber libdecnumber; \
	mv stage1-libdecnumber prev-libdecnumber || test -f stage1-lean 
@endif libdecnumber
@if libiberty
	@cd $(HOST_SUBDIR); [ -d stageprofile-libiberty ] || \
	  mkdir stageprofile-libiberty; \
	mv stageprofile-libiberty libiberty; \
	mv stage1-libiberty prev-libiberty || test -f stage1-lean 
@endif libiberty
@if libiberty-linker-plugin
	@cd $(HOST_SUBDIR); [ -d stageprofile-libiberty-linker-plugin ] || \
	  mkdir stageprofile-libiberty-linker-plugin; \
	mv stageprofile-libiberty-linker-plugin libiberty-linker-plugin; \
	mv stage1-libiberty-linker-plugin prev-libiberty-linker-plugin || test -f stage1-lean 
@endif libiberty-linker-plugin
@if libiconv
	@cd $(HOST_SUBDIR); [ -d stageprofile-libiconv ] || \
	  mkdir stageprofile-libiconv; \
	mv stageprofile-libiconv libiconv; \
	mv stage1-libiconv prev-libiconv || test -f stage1-lean 
@endif libiconv
@if zlib
	@cd $(HOST_SUBDIR); [ -d stageprofile-zlib ] || \
	  mkdir stageprofile-zlib; \
	mv stageprofile-zlib zlib; \
	mv stage1-zlib prev-zlib || test -f stage1-lean 
@endif zlib
@if lto-plugin
	@cd $(HOST_SUBDIR); [ -d stageprofile-lto-plugin ] || \
	  mkdir stageprofile-lto-plugin; \
	mv stageprofile-lto-plugin lto-plugin; \
	mv stage1-lto-plugin prev-lto-plugin || test -f stage1-lean 
@endif lto-plugin
	@[ -d stageprofile-$(TARGET_SUBDIR) ] || \
	  mkdir stageprofile-$(TARGET_SUBDIR); \
	mv stageprofile-$(TARGET_SUBDIR) $(TARGET_SUBDIR); \
	mv stage1-$(TARGET_SUBDIR) prev-$(TARGET_SUBDIR) || test -f stage1-lean 

stageprofile-end:: 
@if bfd
	@if test -d $(HOST_SUBDIR)/bfd; then \
	  cd $(HOST_SUBDIR); mv bfd stageprofile-bfd; \
	  mv prev-bfd stage1-bfd; : ; \
	fi
@endif bfd
@if opcodes
	@if test -d $(HOST_SUBDIR)/opcodes; then \
	  cd $(HOST_SUBDIR); mv opcodes stageprofile-opcodes; \
	  mv prev-opcodes stage1-opcodes; : ; \
	fi
@endif opcodes
@if binutils
	@if test -d $(HOST_SUBDIR)/binutils; then \
	  cd $(HOST_SUBDIR); mv binutils stageprofile-binutils; \
	  mv prev-binutils stage1-binutils; : ; \
	fi
@endif binutils
@if fixincludes
	@if test -d $(HOST_SUBDIR)/fixincludes; then \
	  cd $(HOST_SUBDIR); mv fixincludes stageprofile-fixincludes; \
	  mv prev-fixincludes stage1-fixincludes; : ; \
	fi
@endif fixincludes
@if gas
	@if test -d $(HOST_SUBDIR)/gas; then \
	  cd $(HOST_SUBDIR); mv gas stageprofile-gas; \
	  mv prev-gas stage1-gas; : ; \
	fi
@endif gas
@if gcc
	@if test -d $(HOST_SUBDIR)/gcc; then \
	  cd $(HOST_SUBDIR); mv gcc stageprofile-gcc; \
	  mv prev-gcc stage1-gcc; : ; \
	fi
@endif gcc
@if gmp
	@if test -d $(HOST_SUBDIR)/gmp; then \
	  cd $(HOST_SUBDIR); mv gmp stageprofile-gmp; \
	  mv prev-gmp stage1-gmp; : ; \
	fi
@endif gmp
@if mpfr
	@if test -d $(HOST_SUBDIR)/mpfr; then \
	  cd $(HOST_SUBDIR); mv mpfr stageprofile-mpfr; \
	  mv prev-mpfr stage1-mpfr; : ; \
	fi
@endif mpfr
@if mpc
	@if test -d $(HOST_SUBDIR)/mpc; then \
	  cd $(HOST_SUBDIR); mv mpc stageprofile-mpc; \
	  mv prev-mpc stage1-mpc; : ; \
	fi
@endif mpc
@if isl
	@if test -d $(HOST_SUBDIR)/isl; then \
	  cd $(HOST_SUBDIR); mv isl stageprofile-isl; \
	  mv prev-isl stage1-isl; : ; \
	fi
@endif isl
@if libelf
	@if test -d $(HOST_SUBDIR)/libelf; then \
	  cd $(HOST_SUBDIR); mv libelf stageprofile-libelf; \
	  mv prev-libelf stage1-libelf; : ; \
	fi
@endif libelf
@if gold
	@if test -d $(HOST_SUBDIR)/gold; then \
	  cd $(HOST_SUBDIR); mv gold stageprofile-gold; \
	  mv prev-gold stage1-gold; : ; \
	fi
@endif gold
@if intl
	@if test -d $(HOST_SUBDIR)/intl; then \
	  cd $(HOST_SUBDIR); mv intl stageprofile-intl; \
	  mv prev-intl stage1-intl; : ; \
	fi
@endif intl
@if ld
	@if test -d $(HOST_SUBDIR)/ld; then \
	  cd $(HOST_SUBDIR); mv ld stageprofile-ld; \
	  mv prev-ld stage1-ld; : ; \
	fi
@endif ld
@if libbacktrace
	@if test -d $(HOST_SUBDIR)/libbacktrace; then \
	  cd $(HOST_SUBDIR); mv libbacktrace stageprofile-libbacktrace; \
	  mv prev-libbacktrace stage1-libbacktrace; : ; \
	fi
@endif libbacktrace
@if libcpp
	@if test -d $(HOST_SUBDIR)/libcpp; then \
	  cd $(HOST_SUBDIR); mv libcpp stageprofile-libcpp; \
	  mv prev-libcpp stage1-libcpp; : ; \
	fi
@endif libcpp
@if libdecnumber
	@if test -d $(HOST_SUBDIR)/libdecnumber; then \
	  cd $(HOST_SUBDIR); mv libdecnumber stageprofile-libdecnumber; \
	  mv prev-libdecnumber stage1-libdecnumber; : ; \
	fi
@endif libdecnumber
@if libiberty
	@if test -d $(HOST_SUBDIR)/libiberty; then \
	  cd $(HOST_SUBDIR); mv libiberty stageprofile-libiberty; \
	  mv prev-libiberty stage1-libiberty; : ; \
	fi
@endif libiberty
@if libiberty-linker-plugin
	@if test -d $(HOST_SUBDIR)/libiberty-linker-plugin; then \
	  cd $(HOST_SUBDIR); mv libiberty-linker-plugin stageprofile-libiberty-linker-plugin; \
	  mv prev-libiberty-linker-plugin stage1-libiberty-linker-plugin; : ; \
	fi
@endif libiberty-linker-plugin
@if libiconv
	@if test -d $(HOST_SUBDIR)/libiconv; then \
	  cd $(HOST_SUBDIR); mv libiconv stageprofile-libiconv; \
	  mv prev-libiconv stage1-libiconv; : ; \
	fi
@endif libiconv
@if zlib
	@if test -d $(HOST_SUBDIR)/zlib; then \
	  cd $(HOST_SUBDIR); mv zlib stageprofile-zlib; \
	  mv prev-zlib stage1-zlib; : ; \
	fi
@endif zlib
@if lto-plugin
	@if test -d $(HOST_SUBDIR)/lto-plugin; then \
	  cd $(HOST_SUBDIR); mv lto-plugin stageprofile-lto-plugin; \
	  mv prev-lto-plugin stage1-lto-plugin; : ; \
	fi
@endif lto-plugin
	@if test -d $(TARGET_SUBDIR); then \
	  mv $(TARGET_SUBDIR) stageprofile-$(TARGET_SUBDIR); \
	  mv prev-$(TARGET_SUBDIR) stage1-$(TARGET_SUBDIR); : ; \
	fi
	rm -f stage_current

# Bubble a bug fix through all the stages up to stage profile.  They are
# remade, but not reconfigured.  The next stage (if any) will not be
# reconfigured either.
.PHONY: stageprofile-bubble
stageprofile-bubble:: stage1-bubble
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	if test -f stageprofile-lean || test -f stage1-lean ; then \
	  echo Skipping rebuild of stageprofile; \
	else \
	  $(MAKE) stageprofile-start; \
	  $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stageprofile; \
	fi

.PHONY: all-stageprofile clean-stageprofile
do-clean: clean-stageprofile

# FIXME: Will not need to be conditional when toplevel bootstrap is the
# only possibility, but now it conflicts with no-bootstrap rules
@if gcc-bootstrap




# Rules to wipe a stage and all the following ones, also used for cleanstrap
distclean-stage1:: distclean-stageprofile 
.PHONY: distclean-stageprofile
distclean-stageprofile::
	@: $(MAKE); $(stage)
	@test "`cat stage_last`" != stageprofile || rm -f stage_last
	rm -rf stageprofile-* 


@endif gcc-bootstrap


.PHONY: stagetrain-start stagetrain-end

stagetrain-start::
	@: $(MAKE); $(stage); \
	echo stagetrain > stage_current; \
	echo stagetrain > stage_last; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)
@if bfd
	@cd $(HOST_SUBDIR); [ -d stagetrain-bfd ] || \
	  mkdir stagetrain-bfd; \
	mv stagetrain-bfd bfd; \
	mv stageprofile-bfd prev-bfd || test -f stageprofile-lean 
@endif bfd
@if opcodes
	@cd $(HOST_SUBDIR); [ -d stagetrain-opcodes ] || \
	  mkdir stagetrain-opcodes; \
	mv stagetrain-opcodes opcodes; \
	mv stageprofile-opcodes prev-opcodes || test -f stageprofile-lean 
@endif opcodes
@if binutils
	@cd $(HOST_SUBDIR); [ -d stagetrain-binutils ] || \
	  mkdir stagetrain-binutils; \
	mv stagetrain-binutils binutils; \
	mv stageprofile-binutils prev-binutils || test -f stageprofile-lean 
@endif binutils
@if fixincludes
	@cd $(HOST_SUBDIR); [ -d stagetrain-fixincludes ] || \
	  mkdir stagetrain-fixincludes; \
	mv stagetrain-fixincludes fixincludes; \
	mv stageprofile-fixincludes prev-fixincludes || test -f stageprofile-lean 
@endif fixincludes
@if gas
	@cd $(HOST_SUBDIR); [ -d stagetrain-gas ] || \
	  mkdir stagetrain-gas; \
	mv stagetrain-gas gas; \
	mv stageprofile-gas prev-gas || test -f stageprofile-lean 
@endif gas
@if gcc
	@cd $(HOST_SUBDIR); [ -d stagetrain-gcc ] || \
	  mkdir stagetrain-gcc; \
	mv stagetrain-gcc gcc; \
	mv stageprofile-gcc prev-gcc || test -f stageprofile-lean 
@endif gcc
@if gmp
	@cd $(HOST_SUBDIR); [ -d stagetrain-gmp ] || \
	  mkdir stagetrain-gmp; \
	mv stagetrain-gmp gmp; \
	mv stageprofile-gmp prev-gmp || test -f stageprofile-lean 
@endif gmp
@if mpfr
	@cd $(HOST_SUBDIR); [ -d stagetrain-mpfr ] || \
	  mkdir stagetrain-mpfr; \
	mv stagetrain-mpfr mpfr; \
	mv stageprofile-mpfr prev-mpfr || test -f stageprofile-lean 
@endif mpfr
@if mpc
	@cd $(HOST_SUBDIR); [ -d stagetrain-mpc ] || \
	  mkdir stagetrain-mpc; \
	mv stagetrain-mpc mpc; \
	mv stageprofile-mpc prev-mpc || test -f stageprofile-lean 
@endif mpc
@if isl
	@cd $(HOST_SUBDIR); [ -d stagetrain-isl ] || \
	  mkdir stagetrain-isl; \
	mv stagetrain-isl isl; \
	mv stageprofile-isl prev-isl || test -f stageprofile-lean 
@endif isl
@if libelf
	@cd $(HOST_SUBDIR); [ -d stagetrain-libelf ] || \
	  mkdir stagetrain-libelf; \
	mv stagetrain-libelf libelf; \
	mv stageprofile-libelf prev-libelf || test -f stageprofile-lean 
@endif libelf
@if gold
	@cd $(HOST_SUBDIR); [ -d stagetrain-gold ] || \
	  mkdir stagetrain-gold; \
	mv stagetrain-gold gold; \
	mv stageprofile-gold prev-gold || test -f stageprofile-lean 
@endif gold
@if intl
	@cd $(HOST_SUBDIR); [ -d stagetrain-intl ] || \
	  mkdir stagetrain-intl; \
	mv stagetrain-intl intl; \
	mv stageprofile-intl prev-intl || test -f stageprofile-lean 
@endif intl
@if ld
	@cd $(HOST_SUBDIR); [ -d stagetrain-ld ] || \
	  mkdir stagetrain-ld; \
	mv stagetrain-ld ld; \
	mv stageprofile-ld prev-ld || test -f stageprofile-lean 
@endif ld
@if libbacktrace
	@cd $(HOST_SUBDIR); [ -d stagetrain-libbacktrace ] || \
	  mkdir stagetrain-libbacktrace; \
	mv stagetrain-libbacktrace libbacktrace; \
	mv stageprofile-libbacktrace prev-libbacktrace || test -f stageprofile-lean 
@endif libbacktrace
@if libcpp
	@cd $(HOST_SUBDIR); [ -d stagetrain-libcpp ] || \
	  mkdir stagetrain-libcpp; \
	mv stagetrain-libcpp libcpp; \
	mv stageprofile-libcpp prev-libcpp || test -f stageprofile-lean 
@endif libcpp
@if libdecnumber
	@cd $(HOST_SUBDIR); [ -d stagetrain-libdecnumber ] || \
	  mkdir stagetrain-libdecnumber; \
	mv stagetrain-libdecnumber libdecnumber; \
	mv stageprofile-libdecnumber prev-libdecnumber || test -f stageprofile-lean 
@endif libdecnumber
@if libiberty
	@cd $(HOST_SUBDIR); [ -d stagetrain-libiberty ] || \
	  mkdir stagetrain-libiberty; \
	mv stagetrain-libiberty libiberty; \
	mv stageprofile-libiberty prev-libiberty || test -f stageprofile-lean 
@endif libiberty
@if libiberty-linker-plugin
	@cd $(HOST_SUBDIR); [ -d stagetrain-libiberty-linker-plugin ] || \
	  mkdir stagetrain-libiberty-linker-plugin; \
	mv stagetrain-libiberty-linker-plugin libiberty-linker-plugin; \
	mv stageprofile-libiberty-linker-plugin prev-libiberty-linker-plugin || test -f stageprofile-lean 
@endif libiberty-linker-plugin
@if libiconv
	@cd $(HOST_SUBDIR); [ -d stagetrain-libiconv ] || \
	  mkdir stagetrain-libiconv; \
	mv stagetrain-libiconv libiconv; \
	mv stageprofile-libiconv prev-libiconv || test -f stageprofile-lean 
@endif libiconv
@if zlib
	@cd $(HOST_SUBDIR); [ -d stagetrain-zlib ] || \
	  mkdir stagetrain-zlib; \
	mv stagetrain-zlib zlib; \
	mv stageprofile-zlib prev-zlib || test -f stageprofile-lean 
@endif zlib
@if lto-plugin
	@cd $(HOST_SUBDIR); [ -d stagetrain-lto-plugin ] || \
	  mkdir stagetrain-lto-plugin; \
	mv stagetrain-lto-plugin lto-plugin; \
	mv stageprofile-lto-plugin prev-lto-plugin || test -f stageprofile-lean 
@endif lto-plugin
	@[ -d stagetrain-$(TARGET_SUBDIR) ] || \
	  mkdir stagetrain-$(TARGET_SUBDIR); \
	mv stagetrain-$(TARGET_SUBDIR) $(TARGET_SUBDIR); \
	mv stageprofile-$(TARGET_SUBDIR) prev-$(TARGET_SUBDIR) || test -f stageprofile-lean 

stagetrain-end:: 
@if bfd
	@if test -d $(HOST_SUBDIR)/bfd; then \
	  cd $(HOST_SUBDIR); mv bfd stagetrain-bfd; \
	  mv prev-bfd stageprofile-bfd; : ; \
	fi
@endif bfd
@if opcodes
	@if test -d $(HOST_SUBDIR)/opcodes; then \
	  cd $(HOST_SUBDIR); mv opcodes stagetrain-opcodes; \
	  mv prev-opcodes stageprofile-opcodes; : ; \
	fi
@endif opcodes
@if binutils
	@if test -d $(HOST_SUBDIR)/binutils; then \
	  cd $(HOST_SUBDIR); mv binutils stagetrain-binutils; \
	  mv prev-binutils stageprofile-binutils; : ; \
	fi
@endif binutils
@if fixincludes
	@if test -d $(HOST_SUBDIR)/fixincludes; then \
	  cd $(HOST_SUBDIR); mv fixincludes stagetrain-fixincludes; \
	  mv prev-fixincludes stageprofile-fixincludes; : ; \
	fi
@endif fixincludes
@if gas
	@if test -d $(HOST_SUBDIR)/gas; then \
	  cd $(HOST_SUBDIR); mv gas stagetrain-gas; \
	  mv prev-gas stageprofile-gas; : ; \
	fi
@endif gas
@if gcc
	@if test -d $(HOST_SUBDIR)/gcc; then \
	  cd $(HOST_SUBDIR); mv gcc stagetrain-gcc; \
	  mv prev-gcc stageprofile-gcc; : ; \
	fi
@endif gcc
@if gmp
	@if test -d $(HOST_SUBDIR)/gmp; then \
	  cd $(HOST_SUBDIR); mv gmp stagetrain-gmp; \
	  mv prev-gmp stageprofile-gmp; : ; \
	fi
@endif gmp
@if mpfr
	@if test -d $(HOST_SUBDIR)/mpfr; then \
	  cd $(HOST_SUBDIR); mv mpfr stagetrain-mpfr; \
	  mv prev-mpfr stageprofile-mpfr; : ; \
	fi
@endif mpfr
@if mpc
	@if test -d $(HOST_SUBDIR)/mpc; then \
	  cd $(HOST_SUBDIR); mv mpc stagetrain-mpc; \
	  mv prev-mpc stageprofile-mpc; : ; \
	fi
@endif mpc
@if isl
	@if test -d $(HOST_SUBDIR)/isl; then \
	  cd $(HOST_SUBDIR); mv isl stagetrain-isl; \
	  mv prev-isl stageprofile-isl; : ; \
	fi
@endif isl
@if libelf
	@if test -d $(HOST_SUBDIR)/libelf; then \
	  cd $(HOST_SUBDIR); mv libelf stagetrain-libelf; \
	  mv prev-libelf stageprofile-libelf; : ; \
	fi
@endif libelf
@if gold
	@if test -d $(HOST_SUBDIR)/gold; then \
	  cd $(HOST_SUBDIR); mv gold stagetrain-gold; \
	  mv prev-gold stageprofile-gold; : ; \
	fi
@endif gold
@if intl
	@if test -d $(HOST_SUBDIR)/intl; then \
	  cd $(HOST_SUBDIR); mv intl stagetrain-intl; \
	  mv prev-intl stageprofile-intl; : ; \
	fi
@endif intl
@if ld
	@if test -d $(HOST_SUBDIR)/ld; then \
	  cd $(HOST_SUBDIR); mv ld stagetrain-ld; \
	  mv prev-ld stageprofile-ld; : ; \
	fi
@endif ld
@if libbacktrace
	@if test -d $(HOST_SUBDIR)/libbacktrace; then \
	  cd $(HOST_SUBDIR); mv libbacktrace stagetrain-libbacktrace; \
	  mv prev-libbacktrace stageprofile-libbacktrace; : ; \
	fi
@endif libbacktrace
@if libcpp
	@if test -d $(HOST_SUBDIR)/libcpp; then \
	  cd $(HOST_SUBDIR); mv libcpp stagetrain-libcpp; \
	  mv prev-libcpp stageprofile-libcpp; : ; \
	fi
@endif libcpp
@if libdecnumber
	@if test -d $(HOST_SUBDIR)/libdecnumber; then \
	  cd $(HOST_SUBDIR); mv libdecnumber stagetrain-libdecnumber; \
	  mv prev-libdecnumber stageprofile-libdecnumber; : ; \
	fi
@endif libdecnumber
@if libiberty
	@if test -d $(HOST_SUBDIR)/libiberty; then \
	  cd $(HOST_SUBDIR); mv libiberty stagetrain-libiberty; \
	  mv prev-libiberty stageprofile-libiberty; : ; \
	fi
@endif libiberty
@if libiberty-linker-plugin
	@if test -d $(HOST_SUBDIR)/libiberty-linker-plugin; then \
	  cd $(HOST_SUBDIR); mv libiberty-linker-plugin stagetrain-libiberty-linker-plugin; \
	  mv prev-libiberty-linker-plugin stageprofile-libiberty-linker-plugin; : ; \
	fi
@endif libiberty-linker-plugin
@if libiconv
	@if test -d $(HOST_SUBDIR)/libiconv; then \
	  cd $(HOST_SUBDIR); mv libiconv stagetrain-libiconv; \
	  mv prev-libiconv stageprofile-libiconv; : ; \
	fi
@endif libiconv
@if zlib
	@if test -d $(HOST_SUBDIR)/zlib; then \
	  cd $(HOST_SUBDIR); mv zlib stagetrain-zlib; \
	  mv prev-zlib stageprofile-zlib; : ; \
	fi
@endif zlib
@if lto-plugin
	@if test -d $(HOST_SUBDIR)/lto-plugin; then \
	  cd $(HOST_SUBDIR); mv lto-plugin stagetrain-lto-plugin; \
	  mv prev-lto-plugin stageprofile-lto-plugin; : ; \
	fi
@endif lto-plugin
	@if test -d $(TARGET_SUBDIR); then \
	  mv $(TARGET_SUBDIR) stagetrain-$(TARGET_SUBDIR); \
	  mv prev-$(TARGET_SUBDIR) stageprofile-$(TARGET_SUBDIR); : ; \
	fi
	rm -f stage_current

# Bubble a bug fix through all the stages up to stage train.  They are
# remade, but not reconfigured.  The next stage (if any) will not be
# reconfigured either.
.PHONY: stagetrain-bubble
stagetrain-bubble:: stageprofile-bubble
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	if test -f stagetrain-lean || test -f stageprofile-lean ; then \
	  echo Skipping rebuild of stagetrain; \
	else \
	  $(MAKE) stagetrain-start; \
	  $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stagetrain; \
	fi

.PHONY: all-stagetrain clean-stagetrain
do-clean: clean-stagetrain

# FIXME: Will not need to be conditional when toplevel bootstrap is the
# only possibility, but now it conflicts with no-bootstrap rules
@if gcc-bootstrap




# Rules to wipe a stage and all the following ones, also used for cleanstrap
distclean-stageprofile:: distclean-stagetrain 
.PHONY: distclean-stagetrain
distclean-stagetrain::
	@: $(MAKE); $(stage)
	@test "`cat stage_last`" != stagetrain || rm -f stage_last
	rm -rf stagetrain-* 


@endif gcc-bootstrap


.PHONY: stagefeedback-start stagefeedback-end

stagefeedback-start::
	@: $(MAKE); $(stage); \
	echo stagefeedback > stage_current; \
	echo stagefeedback > stage_last; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)
@if bfd
	@cd $(HOST_SUBDIR); [ -d stagefeedback-bfd ] || \
	  mkdir stagefeedback-bfd; \
	mv stagefeedback-bfd bfd; \
	mv stagetrain-bfd prev-bfd || test -f stagetrain-lean 
@endif bfd
@if opcodes
	@cd $(HOST_SUBDIR); [ -d stagefeedback-opcodes ] || \
	  mkdir stagefeedback-opcodes; \
	mv stagefeedback-opcodes opcodes; \
	mv stagetrain-opcodes prev-opcodes || test -f stagetrain-lean 
@endif opcodes
@if binutils
	@cd $(HOST_SUBDIR); [ -d stagefeedback-binutils ] || \
	  mkdir stagefeedback-binutils; \
	mv stagefeedback-binutils binutils; \
	mv stagetrain-binutils prev-binutils || test -f stagetrain-lean 
@endif binutils
@if fixincludes
	@cd $(HOST_SUBDIR); [ -d stagefeedback-fixincludes ] || \
	  mkdir stagefeedback-fixincludes; \
	mv stagefeedback-fixincludes fixincludes; \
	mv stagetrain-fixincludes prev-fixincludes || test -f stagetrain-lean 
@endif fixincludes
@if gas
	@cd $(HOST_SUBDIR); [ -d stagefeedback-gas ] || \
	  mkdir stagefeedback-gas; \
	mv stagefeedback-gas gas; \
	mv stagetrain-gas prev-gas || test -f stagetrain-lean 
@endif gas
@if gcc
	@cd $(HOST_SUBDIR); [ -d stagefeedback-gcc ] || \
	  mkdir stagefeedback-gcc; \
	mv stagefeedback-gcc gcc; \
	mv stagetrain-gcc prev-gcc || test -f stagetrain-lean 
@endif gcc
@if gmp
	@cd $(HOST_SUBDIR); [ -d stagefeedback-gmp ] || \
	  mkdir stagefeedback-gmp; \
	mv stagefeedback-gmp gmp; \
	mv stagetrain-gmp prev-gmp || test -f stagetrain-lean 
@endif gmp
@if mpfr
	@cd $(HOST_SUBDIR); [ -d stagefeedback-mpfr ] || \
	  mkdir stagefeedback-mpfr; \
	mv stagefeedback-mpfr mpfr; \
	mv stagetrain-mpfr prev-mpfr || test -f stagetrain-lean 
@endif mpfr
@if mpc
	@cd $(HOST_SUBDIR); [ -d stagefeedback-mpc ] || \
	  mkdir stagefeedback-mpc; \
	mv stagefeedback-mpc mpc; \
	mv stagetrain-mpc prev-mpc || test -f stagetrain-lean 
@endif mpc
@if isl
	@cd $(HOST_SUBDIR); [ -d stagefeedback-isl ] || \
	  mkdir stagefeedback-isl; \
	mv stagefeedback-isl isl; \
	mv stagetrain-isl prev-isl || test -f stagetrain-lean 
@endif isl
@if libelf
	@cd $(HOST_SUBDIR); [ -d stagefeedback-libelf ] || \
	  mkdir stagefeedback-libelf; \
	mv stagefeedback-libelf libelf; \
	mv stagetrain-libelf prev-libelf || test -f stagetrain-lean 
@endif libelf
@if gold
	@cd $(HOST_SUBDIR); [ -d stagefeedback-gold ] || \
	  mkdir stagefeedback-gold; \
	mv stagefeedback-gold gold; \
	mv stagetrain-gold prev-gold || test -f stagetrain-lean 
@endif gold
@if intl
	@cd $(HOST_SUBDIR); [ -d stagefeedback-intl ] || \
	  mkdir stagefeedback-intl; \
	mv stagefeedback-intl intl; \
	mv stagetrain-intl prev-intl || test -f stagetrain-lean 
@endif intl
@if ld
	@cd $(HOST_SUBDIR); [ -d stagefeedback-ld ] || \
	  mkdir stagefeedback-ld; \
	mv stagefeedback-ld ld; \
	mv stagetrain-ld prev-ld || test -f stagetrain-lean 
@endif ld
@if libbacktrace
	@cd $(HOST_SUBDIR); [ -d stagefeedback-libbacktrace ] || \
	  mkdir stagefeedback-libbacktrace; \
	mv stagefeedback-libbacktrace libbacktrace; \
	mv stagetrain-libbacktrace prev-libbacktrace || test -f stagetrain-lean 
@endif libbacktrace
@if libcpp
	@cd $(HOST_SUBDIR); [ -d stagefeedback-libcpp ] || \
	  mkdir stagefeedback-libcpp; \
	mv stagefeedback-libcpp libcpp; \
	mv stagetrain-libcpp prev-libcpp || test -f stagetrain-lean 
@endif libcpp
@if libdecnumber
	@cd $(HOST_SUBDIR); [ -d stagefeedback-libdecnumber ] || \
	  mkdir stagefeedback-libdecnumber; \
	mv stagefeedback-libdecnumber libdecnumber; \
	mv stagetrain-libdecnumber prev-libdecnumber || test -f stagetrain-lean 
@endif libdecnumber
@if libiberty
	@cd $(HOST_SUBDIR); [ -d stagefeedback-libiberty ] || \
	  mkdir stagefeedback-libiberty; \
	mv stagefeedback-libiberty libiberty; \
	mv stagetrain-libiberty prev-libiberty || test -f stagetrain-lean 
@endif libiberty
@if libiberty-linker-plugin
	@cd $(HOST_SUBDIR); [ -d stagefeedback-libiberty-linker-plugin ] || \
	  mkdir stagefeedback-libiberty-linker-plugin; \
	mv stagefeedback-libiberty-linker-plugin libiberty-linker-plugin; \
	mv stagetrain-libiberty-linker-plugin prev-libiberty-linker-plugin || test -f stagetrain-lean 
@endif libiberty-linker-plugin
@if libiconv
	@cd $(HOST_SUBDIR); [ -d stagefeedback-libiconv ] || \
	  mkdir stagefeedback-libiconv; \
	mv stagefeedback-libiconv libiconv; \
	mv stagetrain-libiconv prev-libiconv || test -f stagetrain-lean 
@endif libiconv
@if zlib
	@cd $(HOST_SUBDIR); [ -d stagefeedback-zlib ] || \
	  mkdir stagefeedback-zlib; \
	mv stagefeedback-zlib zlib; \
	mv stagetrain-zlib prev-zlib || test -f stagetrain-lean 
@endif zlib
@if lto-plugin
	@cd $(HOST_SUBDIR); [ -d stagefeedback-lto-plugin ] || \
	  mkdir stagefeedback-lto-plugin; \
	mv stagefeedback-lto-plugin lto-plugin; \
	mv stagetrain-lto-plugin prev-lto-plugin || test -f stagetrain-lean 
@endif lto-plugin
	@[ -d stagefeedback-$(TARGET_SUBDIR) ] || \
	  mkdir stagefeedback-$(TARGET_SUBDIR); \
	mv stagefeedback-$(TARGET_SUBDIR) $(TARGET_SUBDIR); \
	mv stagetrain-$(TARGET_SUBDIR) prev-$(TARGET_SUBDIR) || test -f stagetrain-lean 

stagefeedback-end:: 
@if bfd
	@if test -d $(HOST_SUBDIR)/bfd; then \
	  cd $(HOST_SUBDIR); mv bfd stagefeedback-bfd; \
	  mv prev-bfd stagetrain-bfd; : ; \
	fi
@endif bfd
@if opcodes
	@if test -d $(HOST_SUBDIR)/opcodes; then \
	  cd $(HOST_SUBDIR); mv opcodes stagefeedback-opcodes; \
	  mv prev-opcodes stagetrain-opcodes; : ; \
	fi
@endif opcodes
@if binutils
	@if test -d $(HOST_SUBDIR)/binutils; then \
	  cd $(HOST_SUBDIR); mv binutils stagefeedback-binutils; \
	  mv prev-binutils stagetrain-binutils; : ; \
	fi
@endif binutils
@if fixincludes
	@if test -d $(HOST_SUBDIR)/fixincludes; then \
	  cd $(HOST_SUBDIR); mv fixincludes stagefeedback-fixincludes; \
	  mv prev-fixincludes stagetrain-fixincludes; : ; \
	fi
@endif fixincludes
@if gas
	@if test -d $(HOST_SUBDIR)/gas; then \
	  cd $(HOST_SUBDIR); mv gas stagefeedback-gas; \
	  mv prev-gas stagetrain-gas; : ; \
	fi
@endif gas
@if gcc
	@if test -d $(HOST_SUBDIR)/gcc; then \
	  cd $(HOST_SUBDIR); mv gcc stagefeedback-gcc; \
	  mv prev-gcc stagetrain-gcc; : ; \
	fi
@endif gcc
@if gmp
	@if test -d $(HOST_SUBDIR)/gmp; then \
	  cd $(HOST_SUBDIR); mv gmp stagefeedback-gmp; \
	  mv prev-gmp stagetrain-gmp; : ; \
	fi
@endif gmp
@if mpfr
	@if test -d $(HOST_SUBDIR)/mpfr; then \
	  cd $(HOST_SUBDIR); mv mpfr stagefeedback-mpfr; \
	  mv prev-mpfr stagetrain-mpfr; : ; \
	fi
@endif mpfr
@if mpc
	@if test -d $(HOST_SUBDIR)/mpc; then \
	  cd $(HOST_SUBDIR); mv mpc stagefeedback-mpc; \
	  mv prev-mpc stagetrain-mpc; : ; \
	fi
@endif mpc
@if isl
	@if test -d $(HOST_SUBDIR)/isl; then \
	  cd $(HOST_SUBDIR); mv isl stagefeedback-isl; \
	  mv prev-isl stagetrain-isl; : ; \
	fi
@endif isl
@if libelf
	@if test -d $(HOST_SUBDIR)/libelf; then \
	  cd $(HOST_SUBDIR); mv libelf stagefeedback-libelf; \
	  mv prev-libelf stagetrain-libelf; : ; \
	fi
@endif libelf
@if gold
	@if test -d $(HOST_SUBDIR)/gold; then \
	  cd $(HOST_SUBDIR); mv gold stagefeedback-gold; \
	  mv prev-gold stagetrain-gold; : ; \
	fi
@endif gold
@if intl
	@if test -d $(HOST_SUBDIR)/intl; then \
	  cd $(HOST_SUBDIR); mv intl stagefeedback-intl; \
	  mv prev-intl stagetrain-intl; : ; \
	fi
@endif intl
@if ld
	@if test -d $(HOST_SUBDIR)/ld; then \
	  cd $(HOST_SUBDIR); mv ld stagefeedback-ld; \
	  mv prev-ld stagetrain-ld; : ; \
	fi
@endif ld
@if libbacktrace
	@if test -d $(HOST_SUBDIR)/libbacktrace; then \
	  cd $(HOST_SUBDIR); mv libbacktrace stagefeedback-libbacktrace; \
	  mv prev-libbacktrace stagetrain-libbacktrace; : ; \
	fi
@endif libbacktrace
@if libcpp
	@if test -d $(HOST_SUBDIR)/libcpp; then \
	  cd $(HOST_SUBDIR); mv libcpp stagefeedback-libcpp; \
	  mv prev-libcpp stagetrain-libcpp; : ; \
	fi
@endif libcpp
@if libdecnumber
	@if test -d $(HOST_SUBDIR)/libdecnumber; then \
	  cd $(HOST_SUBDIR); mv libdecnumber stagefeedback-libdecnumber; \
	  mv prev-libdecnumber stagetrain-libdecnumber; : ; \
	fi
@endif libdecnumber
@if libiberty
	@if test -d $(HOST_SUBDIR)/libiberty; then \
	  cd $(HOST_SUBDIR); mv libiberty stagefeedback-libiberty; \
	  mv prev-libiberty stagetrain-libiberty; : ; \
	fi
@endif libiberty
@if libiberty-linker-plugin
	@if test -d $(HOST_SUBDIR)/libiberty-linker-plugin; then \
	  cd $(HOST_SUBDIR); mv libiberty-linker-plugin stagefeedback-libiberty-linker-plugin; \
	  mv prev-libiberty-linker-plugin stagetrain-libiberty-linker-plugin; : ; \
	fi
@endif libiberty-linker-plugin
@if libiconv
	@if test -d $(HOST_SUBDIR)/libiconv; then \
	  cd $(HOST_SUBDIR); mv libiconv stagefeedback-libiconv; \
	  mv prev-libiconv stagetrain-libiconv; : ; \
	fi
@endif libiconv
@if zlib
	@if test -d $(HOST_SUBDIR)/zlib; then \
	  cd $(HOST_SUBDIR); mv zlib stagefeedback-zlib; \
	  mv prev-zlib stagetrain-zlib; : ; \
	fi
@endif zlib
@if lto-plugin
	@if test -d $(HOST_SUBDIR)/lto-plugin; then \
	  cd $(HOST_SUBDIR); mv lto-plugin stagefeedback-lto-plugin; \
	  mv prev-lto-plugin stagetrain-lto-plugin; : ; \
	fi
@endif lto-plugin
	@if test -d $(TARGET_SUBDIR); then \
	  mv $(TARGET_SUBDIR) stagefeedback-$(TARGET_SUBDIR); \
	  mv prev-$(TARGET_SUBDIR) stagetrain-$(TARGET_SUBDIR); : ; \
	fi
	rm -f stage_current

# Bubble a bug fix through all the stages up to stage feedback.  They are
# remade, but not reconfigured.  The next stage (if any) will not be
# reconfigured either.
.PHONY: stagefeedback-bubble
stagefeedback-bubble:: stagetrain-bubble
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	if test -f stagefeedback-lean || test -f stagetrain-lean ; then \
	  echo Skipping rebuild of stagefeedback; \
	else \
	  $(MAKE) stagefeedback-start; \
	  $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stagefeedback; \
	fi

.PHONY: all-stagefeedback clean-stagefeedback
do-clean: clean-stagefeedback

# FIXME: Will not need to be conditional when toplevel bootstrap is the
# only possibility, but now it conflicts with no-bootstrap rules
@if gcc-bootstrap



.PHONY: profiledbootstrap profiledbootstrap-lean
profiledbootstrap:
	echo stagefeedback > stage_final
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) stagefeedback-bubble
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(MAKE) $(TARGET_FLAGS_TO_PASS) all-host all-target

profiledbootstrap-lean:
	echo stagefeedback > stage_final
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) LEAN=: stagefeedback-bubble
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	$(MAKE) $(TARGET_FLAGS_TO_PASS) all-host all-target


# Rules to wipe a stage and all the following ones, also used for cleanstrap
distclean-stagetrain:: distclean-stagefeedback 
.PHONY: distclean-stagefeedback
distclean-stagefeedback::
	@: $(MAKE); $(stage)
	@test "`cat stage_last`" != stagefeedback || rm -f stage_last
	rm -rf stagefeedback-* 


@endif gcc-bootstrap


.PHONY: stageautoprofile-start stageautoprofile-end

stageautoprofile-start::
	@: $(MAKE); $(stage); \
	echo stageautoprofile > stage_current; \
	echo stageautoprofile > stage_last; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)
@if bfd
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-bfd ] || \
	  mkdir stageautoprofile-bfd; \
	mv stageautoprofile-bfd bfd; \
	mv stage1-bfd prev-bfd || test -f stage1-lean 
@endif bfd
@if opcodes
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-opcodes ] || \
	  mkdir stageautoprofile-opcodes; \
	mv stageautoprofile-opcodes opcodes; \
	mv stage1-opcodes prev-opcodes || test -f stage1-lean 
@endif opcodes
@if binutils
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-binutils ] || \
	  mkdir stageautoprofile-binutils; \
	mv stageautoprofile-binutils binutils; \
	mv stage1-binutils prev-binutils || test -f stage1-lean 
@endif binutils
@if fixincludes
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-fixincludes ] || \
	  mkdir stageautoprofile-fixincludes; \
	mv stageautoprofile-fixincludes fixincludes; \
	mv stage1-fixincludes prev-fixincludes || test -f stage1-lean 
@endif fixincludes
@if gas
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-gas ] || \
	  mkdir stageautoprofile-gas; \
	mv stageautoprofile-gas gas; \
	mv stage1-gas prev-gas || test -f stage1-lean 
@endif gas
@if gcc
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-gcc ] || \
	  mkdir stageautoprofile-gcc; \
	mv stageautoprofile-gcc gcc; \
	mv stage1-gcc prev-gcc || test -f stage1-lean 
@endif gcc
@if gmp
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-gmp ] || \
	  mkdir stageautoprofile-gmp; \
	mv stageautoprofile-gmp gmp; \
	mv stage1-gmp prev-gmp || test -f stage1-lean 
@endif gmp
@if mpfr
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-mpfr ] || \
	  mkdir stageautoprofile-mpfr; \
	mv stageautoprofile-mpfr mpfr; \
	mv stage1-mpfr prev-mpfr || test -f stage1-lean 
@endif mpfr
@if mpc
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-mpc ] || \
	  mkdir stageautoprofile-mpc; \
	mv stageautoprofile-mpc mpc; \
	mv stage1-mpc prev-mpc || test -f stage1-lean 
@endif mpc
@if isl
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-isl ] || \
	  mkdir stageautoprofile-isl; \
	mv stageautoprofile-isl isl; \
	mv stage1-isl prev-isl || test -f stage1-lean 
@endif isl
@if libelf
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-libelf ] || \
	  mkdir stageautoprofile-libelf; \
	mv stageautoprofile-libelf libelf; \
	mv stage1-libelf prev-libelf || test -f stage1-lean 
@endif libelf
@if gold
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-gold ] || \
	  mkdir stageautoprofile-gold; \
	mv stageautoprofile-gold gold; \
	mv stage1-gold prev-gold || test -f stage1-lean 
@endif gold
@if intl
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-intl ] || \
	  mkdir stageautoprofile-intl; \
	mv stageautoprofile-intl intl; \
	mv stage1-intl prev-intl || test -f stage1-lean 
@endif intl
@if ld
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-ld ] || \
	  mkdir stageautoprofile-ld; \
	mv stageautoprofile-ld ld; \
	mv stage1-ld prev-ld || test -f stage1-lean 
@endif ld
@if libbacktrace
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-libbacktrace ] || \
	  mkdir stageautoprofile-libbacktrace; \
	mv stageautoprofile-libbacktrace libbacktrace; \
	mv stage1-libbacktrace prev-libbacktrace || test -f stage1-lean 
@endif libbacktrace
@if libcpp
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-libcpp ] || \
	  mkdir stageautoprofile-libcpp; \
	mv stageautoprofile-libcpp libcpp; \
	mv stage1-libcpp prev-libcpp || test -f stage1-lean 
@endif libcpp
@if libdecnumber
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-libdecnumber ] || \
	  mkdir stageautoprofile-libdecnumber; \
	mv stageautoprofile-libdecnumber libdecnumber; \
	mv stage1-libdecnumber prev-libdecnumber || test -f stage1-lean 
@endif libdecnumber
@if libiberty
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-libiberty ] || \
	  mkdir stageautoprofile-libiberty; \
	mv stageautoprofile-libiberty libiberty; \
	mv stage1-libiberty prev-libiberty || test -f stage1-lean 
@endif libiberty
@if libiberty-linker-plugin
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-libiberty-linker-plugin ] || \
	  mkdir stageautoprofile-libiberty-linker-plugin; \
	mv stageautoprofile-libiberty-linker-plugin libiberty-linker-plugin; \
	mv stage1-libiberty-linker-plugin prev-libiberty-linker-plugin || test -f stage1-lean 
@endif libiberty-linker-plugin
@if libiconv
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-libiconv ] || \
	  mkdir stageautoprofile-libiconv; \
	mv stageautoprofile-libiconv libiconv; \
	mv stage1-libiconv prev-libiconv || test -f stage1-lean 
@endif libiconv
@if zlib
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-zlib ] || \
	  mkdir stageautoprofile-zlib; \
	mv stageautoprofile-zlib zlib; \
	mv stage1-zlib prev-zlib || test -f stage1-lean 
@endif zlib
@if lto-plugin
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-lto-plugin ] || \
	  mkdir stageautoprofile-lto-plugin; \
	mv stageautoprofile-lto-plugin lto-plugin; \
	mv stage1-lto-plugin prev-lto-plugin || test -f stage1-lean 
@endif lto-plugin
	@[ -d stageautoprofile-$(TARGET_SUBDIR) ] || \
	  mkdir stageautoprofile-$(TARGET_SUBDIR); \
	mv stageautoprofile-$(TARGET_SUBDIR) $(TARGET_SUBDIR); \
	mv stage1-$(TARGET_SUBDIR) prev-$(TARGET_SUBDIR) || test -f stage1-lean 

stageautoprofile-end:: 
@if bfd
	@if test -d $(HOST_SUBDIR)/bfd; then \
	  cd $(HOST_SUBDIR); mv bfd stageautoprofile-bfd; \
	  mv prev-bfd stage1-bfd; : ; \
	fi
@endif bfd
@if opcodes
	@if test -d $(HOST_SUBDIR)/opcodes; then \
	  cd $(HOST_SUBDIR); mv opcodes stageautoprofile-opcodes; \
	  mv prev-opcodes stage1-opcodes; : ; \
	fi
@endif opcodes
@if binutils
	@if test -d $(HOST_SUBDIR)/binutils; then \
	  cd $(HOST_SUBDIR); mv binutils stageautoprofile-binutils; \
	  mv prev-binutils stage1-binutils; : ; \
	fi
@endif binutils
@if fixincludes
	@if test -d $(HOST_SUBDIR)/fixincludes; then \
	  cd $(HOST_SUBDIR); mv fixincludes stageautoprofile-fixincludes; \
	  mv prev-fixincludes stage1-fixincludes; : ; \
	fi
@endif fixincludes
@if gas
	@if test -d $(HOST_SUBDIR)/gas; then \
	  cd $(HOST_SUBDIR); mv gas stageautoprofile-gas; \
	  mv prev-gas stage1-gas; : ; \
	fi
@endif gas
@if gcc
	@if test -d $(HOST_SUBDIR)/gcc; then \
	  cd $(HOST_SUBDIR); mv gcc stageautoprofile-gcc; \
	  mv prev-gcc stage1-gcc; : ; \
	fi
@endif gcc
@if gmp
	@if test -d $(HOST_SUBDIR)/gmp; then \
	  cd $(HOST_SUBDIR); mv gmp stageautoprofile-gmp; \
	  mv prev-gmp stage1-gmp; : ; \
	fi
@endif gmp
@if mpfr
	@if test -d $(HOST_SUBDIR)/mpfr; then \
	  cd $(HOST_SUBDIR); mv mpfr stageautoprofile-mpfr; \
	  mv prev-mpfr stage1-mpfr; : ; \
	fi
@endif mpfr
@if mpc
	@if test -d $(HOST_SUBDIR)/mpc; then \
	  cd $(HOST_SUBDIR); mv mpc stageautoprofile-mpc; \
	  mv prev-mpc stage1-mpc; : ; \
	fi
@endif mpc
@if isl
	@if test -d $(HOST_SUBDIR)/isl; then \
	  cd $(HOST_SUBDIR); mv isl stageautoprofile-isl; \
	  mv prev-isl stage1-isl; : ; \
	fi
@endif isl
@if libelf
	@if test -d $(HOST_SUBDIR)/libelf; then \
	  cd $(HOST_SUBDIR); mv libelf stageautoprofile-libelf; \
	  mv prev-libelf stage1-libelf; : ; \
	fi
@endif libelf
@if gold
	@if test -d $(HOST_SUBDIR)/gold; then \
	  cd $(HOST_SUBDIR); mv gold stageautoprofile-gold; \
	  mv prev-gold stage1-gold; : ; \
	fi
@endif gold
@if intl
	@if test -d $(HOST_SUBDIR)/intl; then \
	  cd $(HOST_SUBDIR); mv intl stageautoprofile-intl; \
	  mv prev-intl stage1-intl; : ; \
	fi
@endif intl
@if ld
	@if test -d $(HOST_SUBDIR)/ld; then \
	  cd $(HOST_SUBDIR); mv ld stageautoprofile-ld; \
	  mv prev-ld stage1-ld; : ; \
	fi
@endif ld
@if libbacktrace
	@if test -d $(HOST_SUBDIR)/libbacktrace; then \
	  cd $(HOST_SUBDIR); mv libbacktrace stageautoprofile-libbacktrace; \
	  mv prev-libbacktrace stage1-libbacktrace; : ; \
	fi
@endif libbacktrace
@if libcpp
	@if test -d $(HOST_SUBDIR)/libcpp; then \
	  cd $(HOST_SUBDIR); mv libcpp stageautoprofile-libcpp; \
	  mv prev-libcpp stage1-libcpp; : ; \
	fi
@endif libcpp
@if libdecnumber
	@if test -d $(HOST_SUBDIR)/libdecnumber; then \
	  cd $(HOST_SUBDIR); mv libdecnumber stageautoprofile-libdecnumber; \
	  mv prev-libdecnumber stage1-libdecnumber; : ; \
	fi
@endif libdecnumber
@if libiberty
	@if test -d $(HOST_SUBDIR)/libiberty; then \
	  cd $(HOST_SUBDIR); mv libiberty stageautoprofile-libiberty; \
	  mv prev-libiberty stage1-libiberty; : ; \
	fi
@endif libiberty
@if libiberty-linker-plugin
	@if test -d $(HOST_SUBDIR)/libiberty-linker-plugin; then \
	  cd $(HOST_SUBDIR); mv libiberty-linker-plugin stageautoprofile-libiberty-linker-plugin; \
	  mv prev-libiberty-linker-plugin stage1-libiberty-linker-plugin; : ; \
	fi
@endif libiberty-linker-plugin
@if libiconv
	@if test -d $(HOST_SUBDIR)/libiconv; then \
	  cd $(HOST_SUBDIR); mv libiconv stageautoprofile-libiconv; \
	  mv prev-libiconv stage1-libiconv; : ; \
	fi
@endif libiconv
@if zlib
	@if test -d $(HOST_SUBDIR)/zlib; then \
	  cd $(HOST_SUBDIR); mv zlib stageautoprofile-zlib; \
	  mv prev-zlib stage1-zlib; : ; \
	fi
@endif zlib
@if lto-plugin
	@if test -d $(HOST_SUBDIR)/lto-plugin; then \
	  cd $(HOST_SUBDIR); mv lto-plugin stageautoprofile-lto-plugin; \
	  mv prev-lto-plugin stage1-lto-plugin; : ; \
	fi
@endif lto-plugin
	@if test -d $(TARGET_SUBDIR); then \
	  mv $(TARGET_SUBDIR) stageautoprofile-$(TARGET_SUBDIR); \
	  mv prev-$(TARGET_SUBDIR) stage1-$(TARGET_SUBDIR); : ; \
	fi
	rm -f stage_current

# Bubble a bug fix through all the stages up to stage autoprofile.  They are
# remade, but not reconfigured.  The next stage (if any) will not be
# reconfigured either.
.PHONY: stageautoprofile-bubble
stageautoprofile-bubble:: stage1-bubble
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	if test -f stageautoprofile-lean || test -f stage1-lean ; then \
	  echo Skipping rebuild of stageautoprofile; \
	else \
	  $(MAKE) stageautoprofile-start; \
	  $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stageautoprofile; \
	fi

.PHONY: all-stageautoprofile clean-stageautoprofile
do-clean: clean-stageautoprofile

# FIXME: Will not need to be conditional when toplevel bootstrap is the
# only possibility, but now it conflicts with no-bootstrap rules
@if gcc-bootstrap




# Rules to wipe a stage and all the following ones, also used for cleanstrap
distclean-stage1:: distclean-stageautoprofile 
.PHONY: distclean-stageautoprofile
distclean-stageautoprofile::
	@: $(MAKE); $(stage)
	@test "`cat stage_last`" != stageautoprofile || rm -f stage_last
	rm -rf stageautoprofile-* 


@endif gcc-bootstrap


.PHONY: stageautofeedback-start stageautofeedback-end

stageautofeedback-start::
	@: $(MAKE); $(stage); \
	echo stageautofeedback > stage_current; \
	echo stageautofeedback > stage_last; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)
@if bfd
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-bfd ] || \
	  mkdir stageautofeedback-bfd; \
	mv stageautofeedback-bfd bfd; \
	mv stageautoprofile-bfd prev-bfd || test -f stageautoprofile-lean 
@endif bfd
@if opcodes
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-opcodes ] || \
	  mkdir stageautofeedback-opcodes; \
	mv stageautofeedback-opcodes opcodes; \
	mv stageautoprofile-opcodes prev-opcodes || test -f stageautoprofile-lean 
@endif opcodes
@if binutils
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-binutils ] || \
	  mkdir stageautofeedback-binutils; \
	mv stageautofeedback-binutils binutils; \
	mv stageautoprofile-binutils prev-binutils || test -f stageautoprofile-lean 
@endif binutils
@if fixincludes
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-fixincludes ] || \
	  mkdir stageautofeedback-fixincludes; \
	mv stageautofeedback-fixincludes fixincludes; \
	mv stageautoprofile-fixincludes prev-fixincludes || test -f stageautoprofile-lean 
@endif fixincludes
@if gas
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-gas ] || \
	  mkdir stageautofeedback-gas; \
	mv stageautofeedback-gas gas; \
	mv stageautoprofile-gas prev-gas || test -f stageautoprofile-lean 
@endif gas
@if gcc
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-gcc ] || \
	  mkdir stageautofeedback-gcc; \
	mv stageautofeedback-gcc gcc; \
	mv stageautoprofile-gcc prev-gcc || test -f stageautoprofile-lean 
@endif gcc
@if gmp
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-gmp ] || \
	  mkdir stageautofeedback-gmp; \
	mv stageautofeedback-gmp gmp; \
	mv stageautoprofile-gmp prev-gmp || test -f stageautoprofile-lean 
@endif gmp
@if mpfr
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-mpfr ] || \
	  mkdir stageautofeedback-mpfr; \
	mv stageautofeedback-mpfr mpfr; \
	mv stageautoprofile-mpfr prev-mpfr || test -f stageautoprofile-lean 
@endif mpfr
@if mpc
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-mpc ] || \
	  mkdir stageautofeedback-mpc; \
	mv stageautofeedback-mpc mpc; \
	mv stageautoprofile-mpc prev-mpc || test -f stageautoprofile-lean 
@endif mpc
@if isl
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-isl ] || \
	  mkdir stageautofeedback-isl; \
	mv stageautofeedback-isl isl; \
	mv stageautoprofile-isl prev-isl || test -f stageautoprofile-lean 
@endif isl
@if libelf
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-libelf ] || \
	  mkdir stageautofeedback-libelf; \
	mv stageautofeedback-libelf libelf; \
	mv stageautoprofile-libelf prev-libelf || test -f stageautoprofile-lean 
@endif libelf
@if gold
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-gold ] || \
	  mkdir stageautofeedback-gold; \
	mv stageautofeedback-gold gold; \
	mv stageautoprofile-gold prev-gold || test -f stageautoprofile-lean 
@endif gold
@if intl
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-intl ] || \
	  mkdir stageautofeedback-intl; \
	mv stageautofeedback-intl intl; \
	mv stageautoprofile-intl prev-intl || test -f stageautoprofile-lean 
@endif intl
@if ld
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-ld ] || \
	  mkdir stageautofeedback-ld; \
	mv stageautofeedback-ld ld; \
	mv stageautoprofile-ld prev-ld || test -f stageautoprofile-lean 
@endif ld
@if libbacktrace
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-libbacktrace ] || \
	  mkdir stageautofeedback-libbacktrace; \
	mv stageautofeedback-libbacktrace libbacktrace; \
	mv stageautoprofile-libbacktrace prev-libbacktrace || test -f stageautoprofile-lean 
@endif libbacktrace
@if libcpp
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-libcpp ] || \
	  mkdir stageautofeedback-libcpp; \
	mv stageautofeedback-libcpp libcpp; \
	mv stageautoprofile-libcpp prev-libcpp || test -f stageautoprofile-lean 
@endif libcpp
@if libdecnumber
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-libdecnumber ] || \
	  mkdir stageautofeedback-libdecnumber; \
	mv stageautofeedback-libdecnumber libdecnumber; \
	mv stageautoprofile-libdecnumber prev-libdecnumber || test -f stageautoprofile-lean 
@endif libdecnumber
@if libiberty
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-libiberty ] || \
	  mkdir stageautofeedback-libiberty; \
	mv stageautofeedback-libiberty libiberty; \
	mv stageautoprofile-libiberty prev-libiberty || test -f stageautoprofile-lean 
@endif libiberty
@if libiberty-linker-plugin
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-libiberty-linker-plugin ] || \
	  mkdir stageautofeedback-libiberty-linker-plugin; \
	mv stageautofeedback-libiberty-linker-plugin libiberty-linker-plugin; \
	mv stageautoprofile-libiberty-linker-plugin prev-libiberty-linker-plugin || test -f stageautoprofile-lean 
@endif libiberty-linker-plugin
@if libiconv
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-libiconv ] || \
	  mkdir stageautofeedback-libiconv; \
	mv stageautofeedback-libiconv libiconv; \
	mv stageautoprofile-libiconv prev-libiconv || test -f stageautoprofile-lean 
@endif libiconv
@if zlib
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-zlib ] || \
	  mkdir stageautofeedback-zlib; \
	mv stageautofeedback-zlib zlib; \
	mv stageautoprofile-zlib prev-zlib || test -f stageautoprofile-lean 
@endif zlib
@if lto-plugin
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-lto-plugin ] || \
	  mkdir stageautofeedback-lto-plugin; \
	mv stageautofeedback-lto-plugin lto-plugin; \
	mv stageautoprofile-lto-plugin prev-lto-plugin || test -f stageautoprofile-lean 
@endif lto-plugin
	@[ -d stageautofeedback-$(TARGET_SUBDIR) ] || \
	  mkdir stageautofeedback-$(TARGET_SUBDIR); \
	mv stageautofeedback-$(TARGET_SUBDIR) $(TARGET_SUBDIR); \
	mv stageautoprofile-$(TARGET_SUBDIR) prev-$(TARGET_SUBDIR) || test -f stageautoprofile-lean 

stageautofeedback-end:: 
@if bfd
	@if test -d $(HOST_SUBDIR)/bfd; then \
	  cd $(HOST_SUBDIR); mv bfd stageautofeedback-bfd; \
	  mv prev-bfd stageautoprofile-bfd; : ; \
	fi
@endif bfd
@if opcodes
	@if test -d $(HOST_SUBDIR)/opcodes; then \
	  cd $(HOST_SUBDIR); mv opcodes stageautofeedback-opcodes; \
	  mv prev-opcodes stageautoprofile-opcodes; : ; \
	fi
@endif opcodes
@if binutils
	@if test -d $(HOST_SUBDIR)/binutils; then \
	  cd $(HOST_SUBDIR); mv binutils stageautofeedback-binutils; \
	  mv prev-binutils stageautoprofile-binutils; : ; \
	fi
@endif binutils
@if fixincludes
	@if test -d $(HOST_SUBDIR)/fixincludes; then \
	  cd $(HOST_SUBDIR); mv fixincludes stageautofeedback-fixincludes; \
	  mv prev-fixincludes stageautoprofile-fixincludes; : ; \
	fi
@endif fixincludes
@if gas
	@if test -d $(HOST_SUBDIR)/gas; then \
	  cd $(HOST_SUBDIR); mv gas stageautofeedback-gas; \
	  mv prev-gas stageautoprofile-gas; : ; \
	fi
@endif gas
@if gcc
	@if test -d $(HOST_SUBDIR)/gcc; then \
	  cd $(HOST_SUBDIR); mv gcc stageautofeedback-gcc; \
	  mv prev-gcc stageautoprofile-gcc; : ; \
	fi
@endif gcc
@if gmp
	@if test -d $(HOST_SUBDIR)/gmp; then \
	  cd $(HOST_SUBDIR); mv gmp stageautofeedback-gmp; \
	  mv prev-gmp stageautoprofile-gmp; : ; \
	fi
@endif gmp
@if mpfr
	@if test -d $(HOST_SUBDIR)/mpfr; then \
	  cd $(HOST_SUBDIR); mv mpfr stageautofeedback-mpfr; \
	  mv prev-mpfr stageautoprofile-mpfr; : ; \
	fi
@endif mpfr
@if mpc
	@if test -d $(HOST_SUBDIR)/mpc; then \
	  cd $(HOST_SUBDIR); mv mpc stageautofeedback-mpc; \
	  mv prev-mpc stageautoprofile-mpc; : ; \
	fi
@endif mpc
@if isl
	@if test -d $(HOST_SUBDIR)/isl; then \
	  cd $(HOST_SUBDIR); mv isl stageautofeedback-isl; \
	  mv prev-isl stageautoprofile-isl; : ; \
	fi
@endif isl
@if libelf
	@if test -d $(HOST_SUBDIR)/libelf; then \
	  cd $(HOST_SUBDIR); mv libelf stageautofeedback-libelf; \
	  mv prev-libelf stageautoprofile-libelf; : ; \
	fi
@endif libelf
@if gold
	@if test -d $(HOST_SUBDIR)/gold; then \
	  cd $(HOST_SUBDIR); mv gold stageautofeedback-gold; \
	  mv prev-gold stageautoprofile-gold; : ; \
	fi
@endif gold
@if intl
	@if test -d $(HOST_SUBDIR)/intl; then \
	  cd $(HOST_SUBDIR); mv intl stageautofeedback-intl; \
	  mv prev-intl stageautoprofile-intl; : ; \
	fi
@endif intl
@if ld
	@if test -d $(HOST_SUBDIR)/ld; then \
	  cd $(HOST_SUBDIR); mv ld stageautofeedback-ld; \
	  mv prev-ld stageautoprofile-ld; : ; \
	fi
@endif ld
@if libbacktrace
	@if test -d $(HOST_SUBDIR)/libbacktrace; then \
	  cd $(HOST_SUBDIR); mv libbacktrace stageautofeedback-libbacktrace; \
	  mv prev-libbacktrace stageautoprofile-libbacktrace; : ; \
	fi
@endif libbacktrace
@if libcpp
	@if test -d $(HOST_SUBDIR)/libcpp; then \
	  cd $(HOST_SUBDIR); mv libcpp stageautofeedback-libcpp; \
	  mv prev-libcpp stageautoprofile-libcpp; : ; \
	fi
@endif libcpp
@if libdecnumber
	@if test -d $(HOST_SUBDIR)/libdecnumber; then \
	  cd $(HOST_SUBDIR); mv libdecnumber stageautofeedback-libdecnumber; \
	  mv prev-libdecnumber stageautoprofile-libdecnumber; : ; \
	fi
@endif libdecnumber
@if libiberty
	@if test -d $(HOST_SUBDIR)/libiberty; then \
	  cd $(HOST_SUBDIR); mv libiberty stageautofeedback-libiberty; \
	  mv prev-libiberty stageautoprofile-libiberty; : ; \
	fi
@endif libiberty
@if libiberty-linker-plugin
	@if test -d $(HOST_SUBDIR)/libiberty-linker-plugin; then \
	  cd $(HOST_SUBDIR); mv libiberty-linker-plugin stageautofeedback-libiberty-linker-plugin; \
	  mv prev-libiberty-linker-plugin stageautoprofile-libiberty-linker-plugin; : ; \
	fi
@endif libiberty-linker-plugin
@if libiconv
	@if test -d $(HOST_SUBDIR)/libiconv; then \
	  cd $(HOST_SUBDIR); mv libiconv stageautofeedback-libiconv; \
	  mv prev-libiconv stageautoprofile-libiconv; : ; \
	fi
@endif libiconv
@if zlib
	@if test -d $(HOST_SUBDIR)/zlib; then \
	  cd $(HOST_SUBDIR); mv zlib stageautofeedback-zlib; \
	  mv prev-zlib stageautoprofile-zlib; : ; \
	fi
@endif zlib
@if lto-plugin
	@if test -d $(HOST_SUBDIR)/lto-plugin; then \
	  cd $(HOST_SUBDIR); mv lto-plugin stageautofeedback-lto-plugin; \
	  mv prev-lto-plugin stageautoprofile-lto-plugin; : ; \
	fi
@endif lto-plugin
	@if test -d $(TARGET_SUBDIR); then \
	  mv $(TARGET_SUBDIR) stageautofeedback-$(TARGET_SUBDIR); \
	  mv prev-$(TARGET_SUBDIR) stageautoprofile-$(TARGET_SUBDIR); : ; \
	fi
	rm -f stage_current

# Bubble a bug fix through all the stages up to stage autofeedback.  They are
# remade, but not reconfigured.  The next stage (if any) will not be
# reconfigured either.
.PHONY: stageautofeedback-bubble
stageautofeedback-bubble:: stageautoprofile-bubble
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	if test -f stageautofeedback-lean || test -f stageautoprofile-lean ; then \
	  echo Skipping rebuild of stageautofeedback; \
	else \
	  $(MAKE) stageautofeedback-start; \
	  $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-stageautofeedback; \
	fi

.PHONY: all-stageautofeedback clean-stageautofeedback
do-clean: clean-stageautofeedback

# FIXME: Will not need to be conditional when toplevel bootstrap is the
# only possibility, but now it conflicts with no-bootstrap rules
@if gcc-bootstrap



.PHONY: autoprofiledbootstrap autoprofiledbootstrap-lean
autoprofiledbootstrap:
	echo stageautofeedback > stage_final
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) stageautofeedback-bubble
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(MAKE) $(TARGET_FLAGS_TO_PASS) all-host all-target

autoprofiledbootstrap-lean:
	echo stageautofeedback > stage_final
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) LEAN=: stageautofeedback-bubble
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	$(MAKE) $(TARGET_FLAGS_TO_PASS) all-host all-target


# Rules to wipe a stage and all the following ones, also used for cleanstrap
distclean-stageautoprofile:: distclean-stageautofeedback 
.PHONY: distclean-stageautofeedback
distclean-stageautofeedback::
	@: $(MAKE); $(stage)
	@test "`cat stage_last`" != stageautofeedback || rm -f stage_last
	rm -rf stageautofeedback-* 


@endif gcc-bootstrap



stageprofile-end::
	$(MAKE) distclean-stagefeedback

stagefeedback-start::
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	for i in prev-*; do \
	  j=`echo $$i | sed s/^prev-//`; \
	  cd $$r/$$i && \
	  { find . -type d | sort | sed 's,.*,$(SHELL) '"$$s"'/mkinstalldirs "../'$$j'/&",' | $(SHELL); } && \
	  { find . -name '*.*da' | sed 's,.*,$(LN) -f "&" "../'$$j'/&",' | $(SHELL); }; \
	done

@if gcc-bootstrap
do-distclean: distclean-stage1

# Provide a GCC build when we're building target libraries.  This does
# not work as a dependency, just as the minimum necessary to avoid errors.
stage_last:
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) stage1-bubble

# Same as unstage, but not phony and defaulting to stage1-start.  We place
# it in the dependency so that for example `make -j3 all-gcc' works.
stage_current:
	@if test -f stage_last; then $(unstage); else $(MAKE) stage1-start; fi

.PHONY: restrap
restrap::
	@: $(MAKE); $(stage)
	rm -rf stage1-$(TARGET_SUBDIR) stage2-* stage3-* stage4-* stageprofile-* stagetrain-* stagefeedback-* stageautoprofile-* stageautofeedback-*
restrap:: all
@endif gcc-bootstrap

# --------------------------------------
# Dependencies between different modules
# --------------------------------------

# Generic dependencies for target modules on host stuff, especially gcc
@if gcc-bootstrap
configure-stage1-target-libstdc++-v3: maybe-all-stage1-gcc
configure-stage2-target-libstdc++-v3: maybe-all-stage2-gcc
configure-stage3-target-libstdc++-v3: maybe-all-stage3-gcc
configure-stage4-target-libstdc++-v3: maybe-all-stage4-gcc
configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-gcc
configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-gcc
configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-gcc
configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-gcc
configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-gcc
configure-stage1-target-libsanitizer: maybe-all-stage1-gcc
configure-stage2-target-libsanitizer: maybe-all-stage2-gcc
configure-stage3-target-libsanitizer: maybe-all-stage3-gcc
configure-stage4-target-libsanitizer: maybe-all-stage4-gcc
configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-gcc
configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-gcc
configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-gcc
configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-gcc
configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-gcc
configure-stage1-target-libvtv: maybe-all-stage1-gcc
configure-stage2-target-libvtv: maybe-all-stage2-gcc
configure-stage3-target-libvtv: maybe-all-stage3-gcc
configure-stage4-target-libvtv: maybe-all-stage4-gcc
configure-stageprofile-target-libvtv: maybe-all-stageprofile-gcc
configure-stagetrain-target-libvtv: maybe-all-stagetrain-gcc
configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-gcc
configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-gcc
configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-gcc
configure-target-liboffloadmic: stage_last
configure-target-libssp: stage_last
configure-target-newlib: stage_last
configure-stage1-target-libgcc: maybe-all-stage1-gcc
configure-stage2-target-libgcc: maybe-all-stage2-gcc
configure-stage3-target-libgcc: maybe-all-stage3-gcc
configure-stage4-target-libgcc: maybe-all-stage4-gcc
configure-stageprofile-target-libgcc: maybe-all-stageprofile-gcc
configure-stagetrain-target-libgcc: maybe-all-stagetrain-gcc
configure-stagefeedback-target-libgcc: maybe-all-stagefeedback-gcc
configure-stageautoprofile-target-libgcc: maybe-all-stageautoprofile-gcc
configure-stageautofeedback-target-libgcc: maybe-all-stageautofeedback-gcc
configure-target-libbacktrace: stage_last
configure-target-libquadmath: stage_last
configure-target-libgfortran: stage_last
configure-target-libobjc: stage_last
configure-target-libgo: stage_last
configure-target-libhsail-rt: stage_last
configure-target-libphobos: stage_last
configure-target-libtermcap: stage_last
configure-target-winsup: stage_last
configure-target-libgloss: stage_last
configure-target-libffi: stage_last
configure-target-zlib: stage_last
configure-target-rda: stage_last
configure-target-libada: stage_last
configure-stage1-target-libgomp: maybe-all-stage1-gcc
configure-stage2-target-libgomp: maybe-all-stage2-gcc
configure-stage3-target-libgomp: maybe-all-stage3-gcc
configure-stage4-target-libgomp: maybe-all-stage4-gcc
configure-stageprofile-target-libgomp: maybe-all-stageprofile-gcc
configure-stagetrain-target-libgomp: maybe-all-stagetrain-gcc
configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-gcc
configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-gcc
configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-gcc
configure-target-libitm: stage_last
configure-target-libatomic: stage_last
@endif gcc-bootstrap

@if gcc-no-bootstrap
configure-target-libstdc++-v3: maybe-all-gcc
configure-target-libsanitizer: maybe-all-gcc
configure-target-libvtv: maybe-all-gcc
configure-target-liboffloadmic: maybe-all-gcc
configure-target-libssp: maybe-all-gcc
configure-target-newlib: maybe-all-gcc
configure-target-libgcc: maybe-all-gcc
configure-target-libbacktrace: maybe-all-gcc
configure-target-libquadmath: maybe-all-gcc
configure-target-libgfortran: maybe-all-gcc
configure-target-libobjc: maybe-all-gcc
configure-target-libgo: maybe-all-gcc
configure-target-libhsail-rt: maybe-all-gcc
configure-target-libphobos: maybe-all-gcc
configure-target-libtermcap: maybe-all-gcc
configure-target-winsup: maybe-all-gcc
configure-target-libgloss: maybe-all-gcc
configure-target-libffi: maybe-all-gcc
configure-target-zlib: maybe-all-gcc
configure-target-rda: maybe-all-gcc
configure-target-libada: maybe-all-gcc
configure-target-libgomp: maybe-all-gcc
configure-target-libitm: maybe-all-gcc
configure-target-libatomic: maybe-all-gcc
@endif gcc-no-bootstrap


# There are two types of dependencies here: 'hard' dependencies, where one
# module simply won't build without the other; and 'soft' dependencies, where
# if the depended-on module is missing, the depending module will do without
# or find a substitute somewhere (perhaps installed).  Soft dependencies
# are made here to depend on a 'maybe-' target.  If you're not sure,
# it's safer to use a soft dependency.






# With all the machinery above in place, it is pretty easy to generate
# dependencies.  Host dependencies are a bit more complex because we have
# to check for bootstrap/prebootstrap dependencies.  To resolve
# prebootstrap dependencies, prebootstrap modules are gathered in
# a hash table.
all-build-bison: maybe-all-build-texinfo
all-build-flex: maybe-all-build-texinfo
all-build-flex: maybe-all-build-bison
all-build-flex: maybe-all-build-m4
all-build-libiberty: maybe-all-build-texinfo
all-build-m4: maybe-all-build-texinfo
all-build-fixincludes: maybe-all-build-libiberty
all-build-libcpp: maybe-all-build-libiberty
configure-gcc: maybe-configure-intl
configure-stage1-gcc: maybe-configure-stage1-intl
configure-stage2-gcc: maybe-configure-stage2-intl
configure-stage3-gcc: maybe-configure-stage3-intl
configure-stage4-gcc: maybe-configure-stage4-intl
configure-stageprofile-gcc: maybe-configure-stageprofile-intl
configure-stagetrain-gcc: maybe-configure-stagetrain-intl
configure-stagefeedback-gcc: maybe-configure-stagefeedback-intl
configure-stageautoprofile-gcc: maybe-configure-stageautoprofile-intl
configure-stageautofeedback-gcc: maybe-configure-stageautofeedback-intl
configure-gcc: maybe-all-gmp
configure-stage1-gcc: maybe-all-stage1-gmp
configure-stage2-gcc: maybe-all-stage2-gmp
configure-stage3-gcc: maybe-all-stage3-gmp
configure-stage4-gcc: maybe-all-stage4-gmp
configure-stageprofile-gcc: maybe-all-stageprofile-gmp
configure-stagetrain-gcc: maybe-all-stagetrain-gmp
configure-stagefeedback-gcc: maybe-all-stagefeedback-gmp
configure-stageautoprofile-gcc: maybe-all-stageautoprofile-gmp
configure-stageautofeedback-gcc: maybe-all-stageautofeedback-gmp
configure-gcc: maybe-all-mpfr
configure-stage1-gcc: maybe-all-stage1-mpfr
configure-stage2-gcc: maybe-all-stage2-mpfr
configure-stage3-gcc: maybe-all-stage3-mpfr
configure-stage4-gcc: maybe-all-stage4-mpfr
configure-stageprofile-gcc: maybe-all-stageprofile-mpfr
configure-stagetrain-gcc: maybe-all-stagetrain-mpfr
configure-stagefeedback-gcc: maybe-all-stagefeedback-mpfr
configure-stageautoprofile-gcc: maybe-all-stageautoprofile-mpfr
configure-stageautofeedback-gcc: maybe-all-stageautofeedback-mpfr
configure-gcc: maybe-all-mpc
configure-stage1-gcc: maybe-all-stage1-mpc
configure-stage2-gcc: maybe-all-stage2-mpc
configure-stage3-gcc: maybe-all-stage3-mpc
configure-stage4-gcc: maybe-all-stage4-mpc
configure-stageprofile-gcc: maybe-all-stageprofile-mpc
configure-stagetrain-gcc: maybe-all-stagetrain-mpc
configure-stagefeedback-gcc: maybe-all-stagefeedback-mpc
configure-stageautoprofile-gcc: maybe-all-stageautoprofile-mpc
configure-stageautofeedback-gcc: maybe-all-stageautofeedback-mpc
configure-gcc: maybe-all-isl
configure-stage1-gcc: maybe-all-stage1-isl
configure-stage2-gcc: maybe-all-stage2-isl
configure-stage3-gcc: maybe-all-stage3-isl
configure-stage4-gcc: maybe-all-stage4-isl
configure-stageprofile-gcc: maybe-all-stageprofile-isl
configure-stagetrain-gcc: maybe-all-stagetrain-isl
configure-stagefeedback-gcc: maybe-all-stagefeedback-isl
configure-stageautoprofile-gcc: maybe-all-stageautoprofile-isl
configure-stageautofeedback-gcc: maybe-all-stageautofeedback-isl
configure-gcc: maybe-all-lto-plugin
configure-stage1-gcc: maybe-all-stage1-lto-plugin
configure-stage2-gcc: maybe-all-stage2-lto-plugin
configure-stage3-gcc: maybe-all-stage3-lto-plugin
configure-stage4-gcc: maybe-all-stage4-lto-plugin
configure-stageprofile-gcc: maybe-all-stageprofile-lto-plugin
configure-stagetrain-gcc: maybe-all-stagetrain-lto-plugin
configure-stagefeedback-gcc: maybe-all-stagefeedback-lto-plugin
configure-stageautoprofile-gcc: maybe-all-stageautoprofile-lto-plugin
configure-stageautofeedback-gcc: maybe-all-stageautofeedback-lto-plugin
configure-gcc: maybe-all-binutils
configure-stage1-gcc: maybe-all-stage1-binutils
configure-stage2-gcc: maybe-all-stage2-binutils
configure-stage3-gcc: maybe-all-stage3-binutils
configure-stage4-gcc: maybe-all-stage4-binutils
configure-stageprofile-gcc: maybe-all-stageprofile-binutils
configure-stagetrain-gcc: maybe-all-stagetrain-binutils
configure-stagefeedback-gcc: maybe-all-stagefeedback-binutils
configure-stageautoprofile-gcc: maybe-all-stageautoprofile-binutils
configure-stageautofeedback-gcc: maybe-all-stageautofeedback-binutils
configure-gcc: maybe-all-gas
configure-stage1-gcc: maybe-all-stage1-gas
configure-stage2-gcc: maybe-all-stage2-gas
configure-stage3-gcc: maybe-all-stage3-gas
configure-stage4-gcc: maybe-all-stage4-gas
configure-stageprofile-gcc: maybe-all-stageprofile-gas
configure-stagetrain-gcc: maybe-all-stagetrain-gas
configure-stagefeedback-gcc: maybe-all-stagefeedback-gas
configure-stageautoprofile-gcc: maybe-all-stageautoprofile-gas
configure-stageautofeedback-gcc: maybe-all-stageautofeedback-gas
configure-gcc: maybe-all-ld
configure-stage1-gcc: maybe-all-stage1-ld
configure-stage2-gcc: maybe-all-stage2-ld
configure-stage3-gcc: maybe-all-stage3-ld
configure-stage4-gcc: maybe-all-stage4-ld
configure-stageprofile-gcc: maybe-all-stageprofile-ld
configure-stagetrain-gcc: maybe-all-stagetrain-ld
configure-stagefeedback-gcc: maybe-all-stagefeedback-ld
configure-stageautoprofile-gcc: maybe-all-stageautoprofile-ld
configure-stageautofeedback-gcc: maybe-all-stageautofeedback-ld
configure-gcc: maybe-all-gold
configure-stage1-gcc: maybe-all-stage1-gold
configure-stage2-gcc: maybe-all-stage2-gold
configure-stage3-gcc: maybe-all-stage3-gold
configure-stage4-gcc: maybe-all-stage4-gold
configure-stageprofile-gcc: maybe-all-stageprofile-gold
configure-stagetrain-gcc: maybe-all-stagetrain-gold
configure-stagefeedback-gcc: maybe-all-stagefeedback-gold
configure-stageautoprofile-gcc: maybe-all-stageautoprofile-gold
configure-stageautofeedback-gcc: maybe-all-stageautofeedback-gold
configure-gcc: maybe-all-libelf
configure-stage1-gcc: maybe-all-stage1-libelf
configure-stage2-gcc: maybe-all-stage2-libelf
configure-stage3-gcc: maybe-all-stage3-libelf
configure-stage4-gcc: maybe-all-stage4-libelf
configure-stageprofile-gcc: maybe-all-stageprofile-libelf
configure-stagetrain-gcc: maybe-all-stagetrain-libelf
configure-stagefeedback-gcc: maybe-all-stagefeedback-libelf
configure-stageautoprofile-gcc: maybe-all-stageautoprofile-libelf
configure-stageautofeedback-gcc: maybe-all-stageautofeedback-libelf
configure-gcc: maybe-all-libiconv
configure-stage1-gcc: maybe-all-stage1-libiconv
configure-stage2-gcc: maybe-all-stage2-libiconv
configure-stage3-gcc: maybe-all-stage3-libiconv
configure-stage4-gcc: maybe-all-stage4-libiconv
configure-stageprofile-gcc: maybe-all-stageprofile-libiconv
configure-stagetrain-gcc: maybe-all-stagetrain-libiconv
configure-stagefeedback-gcc: maybe-all-stagefeedback-libiconv
configure-stageautoprofile-gcc: maybe-all-stageautoprofile-libiconv
configure-stageautofeedback-gcc: maybe-all-stageautofeedback-libiconv
all-gcc: all-libiberty
all-stage1-gcc: all-stage1-libiberty
all-stage2-gcc: all-stage2-libiberty
all-stage3-gcc: all-stage3-libiberty
all-stage4-gcc: all-stage4-libiberty
all-stageprofile-gcc: all-stageprofile-libiberty
all-stagetrain-gcc: all-stagetrain-libiberty
all-stagefeedback-gcc: all-stagefeedback-libiberty
all-stageautoprofile-gcc: all-stageautoprofile-libiberty
all-stageautofeedback-gcc: all-stageautofeedback-libiberty
all-gcc: maybe-all-intl
all-stage1-gcc: maybe-all-stage1-intl
all-stage2-gcc: maybe-all-stage2-intl
all-stage3-gcc: maybe-all-stage3-intl
all-stage4-gcc: maybe-all-stage4-intl
all-stageprofile-gcc: maybe-all-stageprofile-intl
all-stagetrain-gcc: maybe-all-stagetrain-intl
all-stagefeedback-gcc: maybe-all-stagefeedback-intl
all-stageautoprofile-gcc: maybe-all-stageautoprofile-intl
all-stageautofeedback-gcc: maybe-all-stageautofeedback-intl
all-gcc: maybe-all-mpfr
all-stage1-gcc: maybe-all-stage1-mpfr
all-stage2-gcc: maybe-all-stage2-mpfr
all-stage3-gcc: maybe-all-stage3-mpfr
all-stage4-gcc: maybe-all-stage4-mpfr
all-stageprofile-gcc: maybe-all-stageprofile-mpfr
all-stagetrain-gcc: maybe-all-stagetrain-mpfr
all-stagefeedback-gcc: maybe-all-stagefeedback-mpfr
all-stageautoprofile-gcc: maybe-all-stageautoprofile-mpfr
all-stageautofeedback-gcc: maybe-all-stageautofeedback-mpfr
all-gcc: maybe-all-mpc
all-stage1-gcc: maybe-all-stage1-mpc
all-stage2-gcc: maybe-all-stage2-mpc
all-stage3-gcc: maybe-all-stage3-mpc
all-stage4-gcc: maybe-all-stage4-mpc
all-stageprofile-gcc: maybe-all-stageprofile-mpc
all-stagetrain-gcc: maybe-all-stagetrain-mpc
all-stagefeedback-gcc: maybe-all-stagefeedback-mpc
all-stageautoprofile-gcc: maybe-all-stageautoprofile-mpc
all-stageautofeedback-gcc: maybe-all-stageautofeedback-mpc
all-gcc: maybe-all-isl
all-stage1-gcc: maybe-all-stage1-isl
all-stage2-gcc: maybe-all-stage2-isl
all-stage3-gcc: maybe-all-stage3-isl
all-stage4-gcc: maybe-all-stage4-isl
all-stageprofile-gcc: maybe-all-stageprofile-isl
all-stagetrain-gcc: maybe-all-stagetrain-isl
all-stagefeedback-gcc: maybe-all-stagefeedback-isl
all-stageautoprofile-gcc: maybe-all-stageautoprofile-isl
all-stageautofeedback-gcc: maybe-all-stageautofeedback-isl
all-gcc: maybe-all-build-texinfo
all-stage1-gcc: maybe-all-build-texinfo
all-stage2-gcc: maybe-all-build-texinfo
all-stage3-gcc: maybe-all-build-texinfo
all-stage4-gcc: maybe-all-build-texinfo
all-stageprofile-gcc: maybe-all-build-texinfo
all-stagetrain-gcc: maybe-all-build-texinfo
all-stagefeedback-gcc: maybe-all-build-texinfo
all-stageautoprofile-gcc: maybe-all-build-texinfo
all-stageautofeedback-gcc: maybe-all-build-texinfo
all-gcc: maybe-all-build-bison
all-stage1-gcc: maybe-all-build-bison
all-stage2-gcc: maybe-all-build-bison
all-stage3-gcc: maybe-all-build-bison
all-stage4-gcc: maybe-all-build-bison
all-stageprofile-gcc: maybe-all-build-bison
all-stagetrain-gcc: maybe-all-build-bison
all-stagefeedback-gcc: maybe-all-build-bison
all-stageautoprofile-gcc: maybe-all-build-bison
all-stageautofeedback-gcc: maybe-all-build-bison
all-gcc: maybe-all-build-flex
all-stage1-gcc: maybe-all-build-flex
all-stage2-gcc: maybe-all-build-flex
all-stage3-gcc: maybe-all-build-flex
all-stage4-gcc: maybe-all-build-flex
all-stageprofile-gcc: maybe-all-build-flex
all-stagetrain-gcc: maybe-all-build-flex
all-stagefeedback-gcc: maybe-all-build-flex
all-stageautoprofile-gcc: maybe-all-build-flex
all-stageautofeedback-gcc: maybe-all-build-flex
all-gcc: maybe-all-build-libiberty
all-stage1-gcc: maybe-all-build-libiberty
all-stage2-gcc: maybe-all-build-libiberty
all-stage3-gcc: maybe-all-build-libiberty
all-stage4-gcc: maybe-all-build-libiberty
all-stageprofile-gcc: maybe-all-build-libiberty
all-stagetrain-gcc: maybe-all-build-libiberty
all-stagefeedback-gcc: maybe-all-build-libiberty
all-stageautoprofile-gcc: maybe-all-build-libiberty
all-stageautofeedback-gcc: maybe-all-build-libiberty
all-gcc: maybe-all-build-fixincludes
all-stage1-gcc: maybe-all-build-fixincludes
all-stage2-gcc: maybe-all-build-fixincludes
all-stage3-gcc: maybe-all-build-fixincludes
all-stage4-gcc: maybe-all-build-fixincludes
all-stageprofile-gcc: maybe-all-build-fixincludes
all-stagetrain-gcc: maybe-all-build-fixincludes
all-stagefeedback-gcc: maybe-all-build-fixincludes
all-stageautoprofile-gcc: maybe-all-build-fixincludes
all-stageautofeedback-gcc: maybe-all-build-fixincludes
all-gcc: maybe-all-build-libcpp
all-stage1-gcc: maybe-all-build-libcpp
all-stage2-gcc: maybe-all-build-libcpp
all-stage3-gcc: maybe-all-build-libcpp
all-stage4-gcc: maybe-all-build-libcpp
all-stageprofile-gcc: maybe-all-build-libcpp
all-stagetrain-gcc: maybe-all-build-libcpp
all-stagefeedback-gcc: maybe-all-build-libcpp
all-stageautoprofile-gcc: maybe-all-build-libcpp
all-stageautofeedback-gcc: maybe-all-build-libcpp
all-gcc: maybe-all-zlib
all-stage1-gcc: maybe-all-stage1-zlib
all-stage2-gcc: maybe-all-stage2-zlib
all-stage3-gcc: maybe-all-stage3-zlib
all-stage4-gcc: maybe-all-stage4-zlib
all-stageprofile-gcc: maybe-all-stageprofile-zlib
all-stagetrain-gcc: maybe-all-stagetrain-zlib
all-stagefeedback-gcc: maybe-all-stagefeedback-zlib
all-stageautoprofile-gcc: maybe-all-stageautoprofile-zlib
all-stageautofeedback-gcc: maybe-all-stageautofeedback-zlib
all-gcc: all-libbacktrace
all-stage1-gcc: all-stage1-libbacktrace
all-stage2-gcc: all-stage2-libbacktrace
all-stage3-gcc: all-stage3-libbacktrace
all-stage4-gcc: all-stage4-libbacktrace
all-stageprofile-gcc: all-stageprofile-libbacktrace
all-stagetrain-gcc: all-stagetrain-libbacktrace
all-stagefeedback-gcc: all-stagefeedback-libbacktrace
all-stageautoprofile-gcc: all-stageautoprofile-libbacktrace
all-stageautofeedback-gcc: all-stageautofeedback-libbacktrace
all-gcc: all-libcpp
all-stage1-gcc: all-stage1-libcpp
all-stage2-gcc: all-stage2-libcpp
all-stage3-gcc: all-stage3-libcpp
all-stage4-gcc: all-stage4-libcpp
all-stageprofile-gcc: all-stageprofile-libcpp
all-stagetrain-gcc: all-stagetrain-libcpp
all-stagefeedback-gcc: all-stagefeedback-libcpp
all-stageautoprofile-gcc: all-stageautoprofile-libcpp
all-stageautofeedback-gcc: all-stageautofeedback-libcpp
all-gcc: all-libdecnumber
all-stage1-gcc: all-stage1-libdecnumber
all-stage2-gcc: all-stage2-libdecnumber
all-stage3-gcc: all-stage3-libdecnumber
all-stage4-gcc: all-stage4-libdecnumber
all-stageprofile-gcc: all-stageprofile-libdecnumber
all-stagetrain-gcc: all-stagetrain-libdecnumber
all-stagefeedback-gcc: all-stagefeedback-libdecnumber
all-stageautoprofile-gcc: all-stageautoprofile-libdecnumber
all-stageautofeedback-gcc: all-stageautofeedback-libdecnumber
all-gcc: maybe-all-libiberty
all-stage1-gcc: maybe-all-stage1-libiberty
all-stage2-gcc: maybe-all-stage2-libiberty
all-stage3-gcc: maybe-all-stage3-libiberty
all-stage4-gcc: maybe-all-stage4-libiberty
all-stageprofile-gcc: maybe-all-stageprofile-libiberty
all-stagetrain-gcc: maybe-all-stagetrain-libiberty
all-stagefeedback-gcc: maybe-all-stagefeedback-libiberty
all-stageautoprofile-gcc: maybe-all-stageautoprofile-libiberty
all-stageautofeedback-gcc: maybe-all-stageautofeedback-libiberty
all-gcc: maybe-all-fixincludes
all-stage1-gcc: maybe-all-stage1-fixincludes
all-stage2-gcc: maybe-all-stage2-fixincludes
all-stage3-gcc: maybe-all-stage3-fixincludes
all-stage4-gcc: maybe-all-stage4-fixincludes
all-stageprofile-gcc: maybe-all-stageprofile-fixincludes
all-stagetrain-gcc: maybe-all-stagetrain-fixincludes
all-stagefeedback-gcc: maybe-all-stagefeedback-fixincludes
all-stageautoprofile-gcc: maybe-all-stageautoprofile-fixincludes
all-stageautofeedback-gcc: maybe-all-stageautofeedback-fixincludes
all-gcc: maybe-all-lto-plugin
all-stage1-gcc: maybe-all-stage1-lto-plugin
all-stage2-gcc: maybe-all-stage2-lto-plugin
all-stage3-gcc: maybe-all-stage3-lto-plugin
all-stage4-gcc: maybe-all-stage4-lto-plugin
all-stageprofile-gcc: maybe-all-stageprofile-lto-plugin
all-stagetrain-gcc: maybe-all-stagetrain-lto-plugin
all-stagefeedback-gcc: maybe-all-stagefeedback-lto-plugin
all-stageautoprofile-gcc: maybe-all-stageautoprofile-lto-plugin
all-stageautofeedback-gcc: maybe-all-stageautofeedback-lto-plugin
all-gcc: maybe-all-libiconv
all-stage1-gcc: maybe-all-stage1-libiconv
all-stage2-gcc: maybe-all-stage2-libiconv
all-stage3-gcc: maybe-all-stage3-libiconv
all-stage4-gcc: maybe-all-stage4-libiconv
all-stageprofile-gcc: maybe-all-stageprofile-libiconv
all-stagetrain-gcc: maybe-all-stagetrain-libiconv
all-stagefeedback-gcc: maybe-all-stagefeedback-libiconv
all-stageautoprofile-gcc: maybe-all-stageautoprofile-libiconv
all-stageautofeedback-gcc: maybe-all-stageautofeedback-libiconv
info-gcc: maybe-all-build-libiberty
info-stage1-gcc: maybe-all-build-libiberty
info-stage2-gcc: maybe-all-build-libiberty
info-stage3-gcc: maybe-all-build-libiberty
info-stage4-gcc: maybe-all-build-libiberty
info-stageprofile-gcc: maybe-all-build-libiberty
info-stagetrain-gcc: maybe-all-build-libiberty
info-stagefeedback-gcc: maybe-all-build-libiberty
info-stageautoprofile-gcc: maybe-all-build-libiberty
info-stageautofeedback-gcc: maybe-all-build-libiberty
dvi-gcc: maybe-all-build-libiberty
dvi-stage1-gcc: maybe-all-build-libiberty
dvi-stage2-gcc: maybe-all-build-libiberty
dvi-stage3-gcc: maybe-all-build-libiberty
dvi-stage4-gcc: maybe-all-build-libiberty
dvi-stageprofile-gcc: maybe-all-build-libiberty
dvi-stagetrain-gcc: maybe-all-build-libiberty
dvi-stagefeedback-gcc: maybe-all-build-libiberty
dvi-stageautoprofile-gcc: maybe-all-build-libiberty
dvi-stageautofeedback-gcc: maybe-all-build-libiberty
pdf-gcc: maybe-all-build-libiberty
pdf-stage1-gcc: maybe-all-build-libiberty
pdf-stage2-gcc: maybe-all-build-libiberty
pdf-stage3-gcc: maybe-all-build-libiberty
pdf-stage4-gcc: maybe-all-build-libiberty
pdf-stageprofile-gcc: maybe-all-build-libiberty
pdf-stagetrain-gcc: maybe-all-build-libiberty
pdf-stagefeedback-gcc: maybe-all-build-libiberty
pdf-stageautoprofile-gcc: maybe-all-build-libiberty
pdf-stageautofeedback-gcc: maybe-all-build-libiberty
html-gcc: maybe-all-build-libiberty
html-stage1-gcc: maybe-all-build-libiberty
html-stage2-gcc: maybe-all-build-libiberty
html-stage3-gcc: maybe-all-build-libiberty
html-stage4-gcc: maybe-all-build-libiberty
html-stageprofile-gcc: maybe-all-build-libiberty
html-stagetrain-gcc: maybe-all-build-libiberty
html-stagefeedback-gcc: maybe-all-build-libiberty
html-stageautoprofile-gcc: maybe-all-build-libiberty
html-stageautofeedback-gcc: maybe-all-build-libiberty
install-gcc: maybe-install-fixincludes
install-gcc: maybe-install-lto-plugin
install-strip-gcc: maybe-install-strip-fixincludes
install-strip-gcc: maybe-install-strip-lto-plugin
configure-libcpp: configure-libiberty
configure-stage1-libcpp: configure-stage1-libiberty
configure-stage2-libcpp: configure-stage2-libiberty
configure-stage3-libcpp: configure-stage3-libiberty
configure-stage4-libcpp: configure-stage4-libiberty
configure-stageprofile-libcpp: configure-stageprofile-libiberty
configure-stagetrain-libcpp: configure-stagetrain-libiberty
configure-stagefeedback-libcpp: configure-stagefeedback-libiberty
configure-stageautoprofile-libcpp: configure-stageautoprofile-libiberty
configure-stageautofeedback-libcpp: configure-stageautofeedback-libiberty
configure-libcpp: maybe-configure-intl
configure-stage1-libcpp: maybe-configure-stage1-intl
configure-stage2-libcpp: maybe-configure-stage2-intl
configure-stage3-libcpp: maybe-configure-stage3-intl
configure-stage4-libcpp: maybe-configure-stage4-intl
configure-stageprofile-libcpp: maybe-configure-stageprofile-intl
configure-stagetrain-libcpp: maybe-configure-stagetrain-intl
configure-stagefeedback-libcpp: maybe-configure-stagefeedback-intl
configure-stageautoprofile-libcpp: maybe-configure-stageautoprofile-intl
configure-stageautofeedback-libcpp: maybe-configure-stageautofeedback-intl
configure-libcpp: maybe-all-libiconv
configure-stage1-libcpp: maybe-all-stage1-libiconv
configure-stage2-libcpp: maybe-all-stage2-libiconv
configure-stage3-libcpp: maybe-all-stage3-libiconv
configure-stage4-libcpp: maybe-all-stage4-libiconv
configure-stageprofile-libcpp: maybe-all-stageprofile-libiconv
configure-stagetrain-libcpp: maybe-all-stagetrain-libiconv
configure-stagefeedback-libcpp: maybe-all-stagefeedback-libiconv
configure-stageautoprofile-libcpp: maybe-all-stageautoprofile-libiconv
configure-stageautofeedback-libcpp: maybe-all-stageautofeedback-libiconv
all-libcpp: all-libiberty
all-stage1-libcpp: all-stage1-libiberty
all-stage2-libcpp: all-stage2-libiberty
all-stage3-libcpp: all-stage3-libiberty
all-stage4-libcpp: all-stage4-libiberty
all-stageprofile-libcpp: all-stageprofile-libiberty
all-stagetrain-libcpp: all-stagetrain-libiberty
all-stagefeedback-libcpp: all-stagefeedback-libiberty
all-stageautoprofile-libcpp: all-stageautoprofile-libiberty
all-stageautofeedback-libcpp: all-stageautofeedback-libiberty
all-libcpp: maybe-all-intl
all-stage1-libcpp: maybe-all-stage1-intl
all-stage2-libcpp: maybe-all-stage2-intl
all-stage3-libcpp: maybe-all-stage3-intl
all-stage4-libcpp: maybe-all-stage4-intl
all-stageprofile-libcpp: maybe-all-stageprofile-intl
all-stagetrain-libcpp: maybe-all-stagetrain-intl
all-stagefeedback-libcpp: maybe-all-stagefeedback-intl
all-stageautoprofile-libcpp: maybe-all-stageautoprofile-intl
all-stageautofeedback-libcpp: maybe-all-stageautofeedback-intl
all-libcpp: maybe-all-libiconv
all-stage1-libcpp: maybe-all-stage1-libiconv
all-stage2-libcpp: maybe-all-stage2-libiconv
all-stage3-libcpp: maybe-all-stage3-libiconv
all-stage4-libcpp: maybe-all-stage4-libiconv
all-stageprofile-libcpp: maybe-all-stageprofile-libiconv
all-stagetrain-libcpp: maybe-all-stagetrain-libiconv
all-stagefeedback-libcpp: maybe-all-stagefeedback-libiconv
all-stageautoprofile-libcpp: maybe-all-stageautoprofile-libiconv
all-stageautofeedback-libcpp: maybe-all-stageautofeedback-libiconv
all-fixincludes: maybe-all-libiberty
all-stage1-fixincludes: maybe-all-stage1-libiberty
all-stage2-fixincludes: maybe-all-stage2-libiberty
all-stage3-fixincludes: maybe-all-stage3-libiberty
all-stage4-fixincludes: maybe-all-stage4-libiberty
all-stageprofile-fixincludes: maybe-all-stageprofile-libiberty
all-stagetrain-fixincludes: maybe-all-stagetrain-libiberty
all-stagefeedback-fixincludes: maybe-all-stagefeedback-libiberty
all-stageautoprofile-fixincludes: maybe-all-stageautoprofile-libiberty
all-stageautofeedback-fixincludes: maybe-all-stageautofeedback-libiberty
all-gnattools: maybe-all-target-libada
all-lto-plugin: maybe-all-libiberty
all-stage1-lto-plugin: maybe-all-stage1-libiberty
all-stage2-lto-plugin: maybe-all-stage2-libiberty
all-stage3-lto-plugin: maybe-all-stage3-libiberty
all-stage4-lto-plugin: maybe-all-stage4-libiberty
all-stageprofile-lto-plugin: maybe-all-stageprofile-libiberty
all-stagetrain-lto-plugin: maybe-all-stagetrain-libiberty
all-stagefeedback-lto-plugin: maybe-all-stagefeedback-libiberty
all-stageautoprofile-lto-plugin: maybe-all-stageautoprofile-libiberty
all-stageautofeedback-lto-plugin: maybe-all-stageautofeedback-libiberty
all-lto-plugin: maybe-all-libiberty-linker-plugin
all-stage1-lto-plugin: maybe-all-stage1-libiberty-linker-plugin
all-stage2-lto-plugin: maybe-all-stage2-libiberty-linker-plugin
all-stage3-lto-plugin: maybe-all-stage3-libiberty-linker-plugin
all-stage4-lto-plugin: maybe-all-stage4-libiberty-linker-plugin
all-stageprofile-lto-plugin: maybe-all-stageprofile-libiberty-linker-plugin
all-stagetrain-lto-plugin: maybe-all-stagetrain-libiberty-linker-plugin
all-stagefeedback-lto-plugin: maybe-all-stagefeedback-libiberty-linker-plugin
all-stageautoprofile-lto-plugin: maybe-all-stageautoprofile-libiberty-linker-plugin
all-stageautofeedback-lto-plugin: maybe-all-stageautofeedback-libiberty-linker-plugin
all-gotools: maybe-all-target-libgo
configure-intl: maybe-all-libiconv
configure-stage1-intl: maybe-all-stage1-libiconv
configure-stage2-intl: maybe-all-stage2-libiconv
configure-stage3-intl: maybe-all-stage3-libiconv
configure-stage4-intl: maybe-all-stage4-libiconv
configure-stageprofile-intl: maybe-all-stageprofile-libiconv
configure-stagetrain-intl: maybe-all-stagetrain-libiconv
configure-stagefeedback-intl: maybe-all-stagefeedback-libiconv
configure-stageautoprofile-intl: maybe-all-stageautoprofile-libiconv
configure-stageautofeedback-intl: maybe-all-stageautofeedback-libiconv
configure-mpfr: maybe-all-gmp
configure-stage1-mpfr: maybe-all-stage1-gmp
configure-stage2-mpfr: maybe-all-stage2-gmp
configure-stage3-mpfr: maybe-all-stage3-gmp
configure-stage4-mpfr: maybe-all-stage4-gmp
configure-stageprofile-mpfr: maybe-all-stageprofile-gmp
configure-stagetrain-mpfr: maybe-all-stagetrain-gmp
configure-stagefeedback-mpfr: maybe-all-stagefeedback-gmp
configure-stageautoprofile-mpfr: maybe-all-stageautoprofile-gmp
configure-stageautofeedback-mpfr: maybe-all-stageautofeedback-gmp
configure-mpc: maybe-all-mpfr
configure-stage1-mpc: maybe-all-stage1-mpfr
configure-stage2-mpc: maybe-all-stage2-mpfr
configure-stage3-mpc: maybe-all-stage3-mpfr
configure-stage4-mpc: maybe-all-stage4-mpfr
configure-stageprofile-mpc: maybe-all-stageprofile-mpfr
configure-stagetrain-mpc: maybe-all-stagetrain-mpfr
configure-stagefeedback-mpc: maybe-all-stagefeedback-mpfr
configure-stageautoprofile-mpc: maybe-all-stageautoprofile-mpfr
configure-stageautofeedback-mpc: maybe-all-stageautofeedback-mpfr
configure-isl: maybe-all-gmp
configure-stage1-isl: maybe-all-stage1-gmp
configure-stage2-isl: maybe-all-stage2-gmp
configure-stage3-isl: maybe-all-stage3-gmp
configure-stage4-isl: maybe-all-stage4-gmp
configure-stageprofile-isl: maybe-all-stageprofile-gmp
configure-stagetrain-isl: maybe-all-stagetrain-gmp
configure-stagefeedback-isl: maybe-all-stagefeedback-gmp
configure-stageautoprofile-isl: maybe-all-stageautoprofile-gmp
configure-stageautofeedback-isl: maybe-all-stageautofeedback-gmp
all-intl: maybe-all-libiconv
all-stage1-intl: maybe-all-stage1-libiconv
all-stage2-intl: maybe-all-stage2-libiconv
all-stage3-intl: maybe-all-stage3-libiconv
all-stage4-intl: maybe-all-stage4-libiconv
all-stageprofile-intl: maybe-all-stageprofile-libiconv
all-stagetrain-intl: maybe-all-stagetrain-libiconv
all-stagefeedback-intl: maybe-all-stagefeedback-libiconv
all-stageautoprofile-intl: maybe-all-stageautoprofile-libiconv
all-stageautofeedback-intl: maybe-all-stageautofeedback-libiconv
configure-gdb: maybe-configure-sim
all-gdb: maybe-all-readline
all-gdb: maybe-all-build-bison
all-gdb: maybe-all-sim
all-gdb: maybe-all-libtermcap
configure-libgui: maybe-configure-tcl
configure-libgui: maybe-configure-tk
all-libgui: maybe-all-tcl
all-libgui: maybe-all-tk
all-libgui: maybe-all-itcl
configure-bfd: configure-libiberty
configure-stage1-bfd: configure-stage1-libiberty
configure-stage2-bfd: configure-stage2-libiberty
configure-stage3-bfd: configure-stage3-libiberty
configure-stage4-bfd: configure-stage4-libiberty
configure-stageprofile-bfd: configure-stageprofile-libiberty
configure-stagetrain-bfd: configure-stagetrain-libiberty
configure-stagefeedback-bfd: configure-stagefeedback-libiberty
configure-stageautoprofile-bfd: configure-stageautoprofile-libiberty
configure-stageautofeedback-bfd: configure-stageautofeedback-libiberty
configure-bfd: maybe-configure-intl
configure-stage1-bfd: maybe-configure-stage1-intl
configure-stage2-bfd: maybe-configure-stage2-intl
configure-stage3-bfd: maybe-configure-stage3-intl
configure-stage4-bfd: maybe-configure-stage4-intl
configure-stageprofile-bfd: maybe-configure-stageprofile-intl
configure-stagetrain-bfd: maybe-configure-stagetrain-intl
configure-stagefeedback-bfd: maybe-configure-stagefeedback-intl
configure-stageautoprofile-bfd: maybe-configure-stageautoprofile-intl
configure-stageautofeedback-bfd: maybe-configure-stageautofeedback-intl
all-bfd: maybe-all-libiberty
all-stage1-bfd: maybe-all-stage1-libiberty
all-stage2-bfd: maybe-all-stage2-libiberty
all-stage3-bfd: maybe-all-stage3-libiberty
all-stage4-bfd: maybe-all-stage4-libiberty
all-stageprofile-bfd: maybe-all-stageprofile-libiberty
all-stagetrain-bfd: maybe-all-stagetrain-libiberty
all-stagefeedback-bfd: maybe-all-stagefeedback-libiberty
all-stageautoprofile-bfd: maybe-all-stageautoprofile-libiberty
all-stageautofeedback-bfd: maybe-all-stageautofeedback-libiberty
all-bfd: maybe-all-intl
all-stage1-bfd: maybe-all-stage1-intl
all-stage2-bfd: maybe-all-stage2-intl
all-stage3-bfd: maybe-all-stage3-intl
all-stage4-bfd: maybe-all-stage4-intl
all-stageprofile-bfd: maybe-all-stageprofile-intl
all-stagetrain-bfd: maybe-all-stagetrain-intl
all-stagefeedback-bfd: maybe-all-stagefeedback-intl
all-stageautoprofile-bfd: maybe-all-stageautoprofile-intl
all-stageautofeedback-bfd: maybe-all-stageautofeedback-intl
all-bfd: maybe-all-zlib
all-stage1-bfd: maybe-all-stage1-zlib
all-stage2-bfd: maybe-all-stage2-zlib
all-stage3-bfd: maybe-all-stage3-zlib
all-stage4-bfd: maybe-all-stage4-zlib
all-stageprofile-bfd: maybe-all-stageprofile-zlib
all-stagetrain-bfd: maybe-all-stagetrain-zlib
all-stagefeedback-bfd: maybe-all-stagefeedback-zlib
all-stageautoprofile-bfd: maybe-all-stageautoprofile-zlib
all-stageautofeedback-bfd: maybe-all-stageautofeedback-zlib
configure-opcodes: configure-libiberty
configure-stage1-opcodes: configure-stage1-libiberty
configure-stage2-opcodes: configure-stage2-libiberty
configure-stage3-opcodes: configure-stage3-libiberty
configure-stage4-opcodes: configure-stage4-libiberty
configure-stageprofile-opcodes: configure-stageprofile-libiberty
configure-stagetrain-opcodes: configure-stagetrain-libiberty
configure-stagefeedback-opcodes: configure-stagefeedback-libiberty
configure-stageautoprofile-opcodes: configure-stageautoprofile-libiberty
configure-stageautofeedback-opcodes: configure-stageautofeedback-libiberty
all-opcodes: maybe-all-libiberty
all-stage1-opcodes: maybe-all-stage1-libiberty
all-stage2-opcodes: maybe-all-stage2-libiberty
all-stage3-opcodes: maybe-all-stage3-libiberty
all-stage4-opcodes: maybe-all-stage4-libiberty
all-stageprofile-opcodes: maybe-all-stageprofile-libiberty
all-stagetrain-opcodes: maybe-all-stagetrain-libiberty
all-stagefeedback-opcodes: maybe-all-stagefeedback-libiberty
all-stageautoprofile-opcodes: maybe-all-stageautoprofile-libiberty
all-stageautofeedback-opcodes: maybe-all-stageautofeedback-libiberty
configure-binutils: maybe-configure-intl
configure-stage1-binutils: maybe-configure-stage1-intl
configure-stage2-binutils: maybe-configure-stage2-intl
configure-stage3-binutils: maybe-configure-stage3-intl
configure-stage4-binutils: maybe-configure-stage4-intl
configure-stageprofile-binutils: maybe-configure-stageprofile-intl
configure-stagetrain-binutils: maybe-configure-stagetrain-intl
configure-stagefeedback-binutils: maybe-configure-stagefeedback-intl
configure-stageautoprofile-binutils: maybe-configure-stageautoprofile-intl
configure-stageautofeedback-binutils: maybe-configure-stageautofeedback-intl
all-binutils: maybe-all-libiberty
all-stage1-binutils: maybe-all-stage1-libiberty
all-stage2-binutils: maybe-all-stage2-libiberty
all-stage3-binutils: maybe-all-stage3-libiberty
all-stage4-binutils: maybe-all-stage4-libiberty
all-stageprofile-binutils: maybe-all-stageprofile-libiberty
all-stagetrain-binutils: maybe-all-stagetrain-libiberty
all-stagefeedback-binutils: maybe-all-stagefeedback-libiberty
all-stageautoprofile-binutils: maybe-all-stageautoprofile-libiberty
all-stageautofeedback-binutils: maybe-all-stageautofeedback-libiberty
all-binutils: maybe-all-opcodes
all-stage1-binutils: maybe-all-stage1-opcodes
all-stage2-binutils: maybe-all-stage2-opcodes
all-stage3-binutils: maybe-all-stage3-opcodes
all-stage4-binutils: maybe-all-stage4-opcodes
all-stageprofile-binutils: maybe-all-stageprofile-opcodes
all-stagetrain-binutils: maybe-all-stagetrain-opcodes
all-stagefeedback-binutils: maybe-all-stagefeedback-opcodes
all-stageautoprofile-binutils: maybe-all-stageautoprofile-opcodes
all-stageautofeedback-binutils: maybe-all-stageautofeedback-opcodes
all-binutils: maybe-all-bfd
all-stage1-binutils: maybe-all-stage1-bfd
all-stage2-binutils: maybe-all-stage2-bfd
all-stage3-binutils: maybe-all-stage3-bfd
all-stage4-binutils: maybe-all-stage4-bfd
all-stageprofile-binutils: maybe-all-stageprofile-bfd
all-stagetrain-binutils: maybe-all-stagetrain-bfd
all-stagefeedback-binutils: maybe-all-stagefeedback-bfd
all-stageautoprofile-binutils: maybe-all-stageautoprofile-bfd
all-stageautofeedback-binutils: maybe-all-stageautofeedback-bfd
all-binutils: maybe-all-build-flex
all-stage1-binutils: maybe-all-build-flex
all-stage2-binutils: maybe-all-build-flex
all-stage3-binutils: maybe-all-build-flex
all-stage4-binutils: maybe-all-build-flex
all-stageprofile-binutils: maybe-all-build-flex
all-stagetrain-binutils: maybe-all-build-flex
all-stagefeedback-binutils: maybe-all-build-flex
all-stageautoprofile-binutils: maybe-all-build-flex
all-stageautofeedback-binutils: maybe-all-build-flex
all-binutils: maybe-all-build-bison
all-stage1-binutils: maybe-all-build-bison
all-stage2-binutils: maybe-all-build-bison
all-stage3-binutils: maybe-all-build-bison
all-stage4-binutils: maybe-all-build-bison
all-stageprofile-binutils: maybe-all-build-bison
all-stagetrain-binutils: maybe-all-build-bison
all-stagefeedback-binutils: maybe-all-build-bison
all-stageautoprofile-binutils: maybe-all-build-bison
all-stageautofeedback-binutils: maybe-all-build-bison
all-binutils: maybe-all-intl
all-stage1-binutils: maybe-all-stage1-intl
all-stage2-binutils: maybe-all-stage2-intl
all-stage3-binutils: maybe-all-stage3-intl
all-stage4-binutils: maybe-all-stage4-intl
all-stageprofile-binutils: maybe-all-stageprofile-intl
all-stagetrain-binutils: maybe-all-stagetrain-intl
all-stagefeedback-binutils: maybe-all-stagefeedback-intl
all-stageautoprofile-binutils: maybe-all-stageautoprofile-intl
all-stageautofeedback-binutils: maybe-all-stageautofeedback-intl
all-binutils: maybe-all-gas
all-stage1-binutils: maybe-all-stage1-gas
all-stage2-binutils: maybe-all-stage2-gas
all-stage3-binutils: maybe-all-stage3-gas
all-stage4-binutils: maybe-all-stage4-gas
all-stageprofile-binutils: maybe-all-stageprofile-gas
all-stagetrain-binutils: maybe-all-stagetrain-gas
all-stagefeedback-binutils: maybe-all-stagefeedback-gas
all-stageautoprofile-binutils: maybe-all-stageautoprofile-gas
all-stageautofeedback-binutils: maybe-all-stageautofeedback-gas
install-binutils: maybe-install-opcodes
install-strip-binutils: maybe-install-strip-opcodes
install-opcodes: maybe-install-bfd
install-strip-opcodes: maybe-install-strip-bfd
configure-gas: maybe-configure-intl
configure-stage1-gas: maybe-configure-stage1-intl
configure-stage2-gas: maybe-configure-stage2-intl
configure-stage3-gas: maybe-configure-stage3-intl
configure-stage4-gas: maybe-configure-stage4-intl
configure-stageprofile-gas: maybe-configure-stageprofile-intl
configure-stagetrain-gas: maybe-configure-stagetrain-intl
configure-stagefeedback-gas: maybe-configure-stagefeedback-intl
configure-stageautoprofile-gas: maybe-configure-stageautoprofile-intl
configure-stageautofeedback-gas: maybe-configure-stageautofeedback-intl
all-gas: maybe-all-libiberty
all-stage1-gas: maybe-all-stage1-libiberty
all-stage2-gas: maybe-all-stage2-libiberty
all-stage3-gas: maybe-all-stage3-libiberty
all-stage4-gas: maybe-all-stage4-libiberty
all-stageprofile-gas: maybe-all-stageprofile-libiberty
all-stagetrain-gas: maybe-all-stagetrain-libiberty
all-stagefeedback-gas: maybe-all-stagefeedback-libiberty
all-stageautoprofile-gas: maybe-all-stageautoprofile-libiberty
all-stageautofeedback-gas: maybe-all-stageautofeedback-libiberty
all-gas: maybe-all-opcodes
all-stage1-gas: maybe-all-stage1-opcodes
all-stage2-gas: maybe-all-stage2-opcodes
all-stage3-gas: maybe-all-stage3-opcodes
all-stage4-gas: maybe-all-stage4-opcodes
all-stageprofile-gas: maybe-all-stageprofile-opcodes
all-stagetrain-gas: maybe-all-stagetrain-opcodes
all-stagefeedback-gas: maybe-all-stagefeedback-opcodes
all-stageautoprofile-gas: maybe-all-stageautoprofile-opcodes
all-stageautofeedback-gas: maybe-all-stageautofeedback-opcodes
all-gas: maybe-all-bfd
all-stage1-gas: maybe-all-stage1-bfd
all-stage2-gas: maybe-all-stage2-bfd
all-stage3-gas: maybe-all-stage3-bfd
all-stage4-gas: maybe-all-stage4-bfd
all-stageprofile-gas: maybe-all-stageprofile-bfd
all-stagetrain-gas: maybe-all-stagetrain-bfd
all-stagefeedback-gas: maybe-all-stagefeedback-bfd
all-stageautoprofile-gas: maybe-all-stageautoprofile-bfd
all-stageautofeedback-gas: maybe-all-stageautofeedback-bfd
all-gas: maybe-all-intl
all-stage1-gas: maybe-all-stage1-intl
all-stage2-gas: maybe-all-stage2-intl
all-stage3-gas: maybe-all-stage3-intl
all-stage4-gas: maybe-all-stage4-intl
all-stageprofile-gas: maybe-all-stageprofile-intl
all-stagetrain-gas: maybe-all-stagetrain-intl
all-stagefeedback-gas: maybe-all-stagefeedback-intl
all-stageautoprofile-gas: maybe-all-stageautoprofile-intl
all-stageautofeedback-gas: maybe-all-stageautofeedback-intl
configure-ld: maybe-configure-intl
configure-stage1-ld: maybe-configure-stage1-intl
configure-stage2-ld: maybe-configure-stage2-intl
configure-stage3-ld: maybe-configure-stage3-intl
configure-stage4-ld: maybe-configure-stage4-intl
configure-stageprofile-ld: maybe-configure-stageprofile-intl
configure-stagetrain-ld: maybe-configure-stagetrain-intl
configure-stagefeedback-ld: maybe-configure-stagefeedback-intl
configure-stageautoprofile-ld: maybe-configure-stageautoprofile-intl
configure-stageautofeedback-ld: maybe-configure-stageautofeedback-intl
all-ld: maybe-all-libiberty
all-stage1-ld: maybe-all-stage1-libiberty
all-stage2-ld: maybe-all-stage2-libiberty
all-stage3-ld: maybe-all-stage3-libiberty
all-stage4-ld: maybe-all-stage4-libiberty
all-stageprofile-ld: maybe-all-stageprofile-libiberty
all-stagetrain-ld: maybe-all-stagetrain-libiberty
all-stagefeedback-ld: maybe-all-stagefeedback-libiberty
all-stageautoprofile-ld: maybe-all-stageautoprofile-libiberty
all-stageautofeedback-ld: maybe-all-stageautofeedback-libiberty
all-ld: maybe-all-bfd
all-stage1-ld: maybe-all-stage1-bfd
all-stage2-ld: maybe-all-stage2-bfd
all-stage3-ld: maybe-all-stage3-bfd
all-stage4-ld: maybe-all-stage4-bfd
all-stageprofile-ld: maybe-all-stageprofile-bfd
all-stagetrain-ld: maybe-all-stagetrain-bfd
all-stagefeedback-ld: maybe-all-stagefeedback-bfd
all-stageautoprofile-ld: maybe-all-stageautoprofile-bfd
all-stageautofeedback-ld: maybe-all-stageautofeedback-bfd
all-ld: maybe-all-opcodes
all-stage1-ld: maybe-all-stage1-opcodes
all-stage2-ld: maybe-all-stage2-opcodes
all-stage3-ld: maybe-all-stage3-opcodes
all-stage4-ld: maybe-all-stage4-opcodes
all-stageprofile-ld: maybe-all-stageprofile-opcodes
all-stagetrain-ld: maybe-all-stagetrain-opcodes
all-stagefeedback-ld: maybe-all-stagefeedback-opcodes
all-stageautoprofile-ld: maybe-all-stageautoprofile-opcodes
all-stageautofeedback-ld: maybe-all-stageautofeedback-opcodes
all-ld: maybe-all-build-bison
all-stage1-ld: maybe-all-build-bison
all-stage2-ld: maybe-all-build-bison
all-stage3-ld: maybe-all-build-bison
all-stage4-ld: maybe-all-build-bison
all-stageprofile-ld: maybe-all-build-bison
all-stagetrain-ld: maybe-all-build-bison
all-stagefeedback-ld: maybe-all-build-bison
all-stageautoprofile-ld: maybe-all-build-bison
all-stageautofeedback-ld: maybe-all-build-bison
all-ld: maybe-all-build-flex
all-stage1-ld: maybe-all-build-flex
all-stage2-ld: maybe-all-build-flex
all-stage3-ld: maybe-all-build-flex
all-stage4-ld: maybe-all-build-flex
all-stageprofile-ld: maybe-all-build-flex
all-stagetrain-ld: maybe-all-build-flex
all-stagefeedback-ld: maybe-all-build-flex
all-stageautoprofile-ld: maybe-all-build-flex
all-stageautofeedback-ld: maybe-all-build-flex
all-ld: maybe-all-intl
all-stage1-ld: maybe-all-stage1-intl
all-stage2-ld: maybe-all-stage2-intl
all-stage3-ld: maybe-all-stage3-intl
all-stage4-ld: maybe-all-stage4-intl
all-stageprofile-ld: maybe-all-stageprofile-intl
all-stagetrain-ld: maybe-all-stagetrain-intl
all-stagefeedback-ld: maybe-all-stagefeedback-intl
all-stageautoprofile-ld: maybe-all-stageautoprofile-intl
all-stageautofeedback-ld: maybe-all-stageautofeedback-intl
all-ld: maybe-all-gas
all-stage1-ld: maybe-all-stage1-gas
all-stage2-ld: maybe-all-stage2-gas
all-stage3-ld: maybe-all-stage3-gas
all-stage4-ld: maybe-all-stage4-gas
all-stageprofile-ld: maybe-all-stageprofile-gas
all-stagetrain-ld: maybe-all-stagetrain-gas
all-stagefeedback-ld: maybe-all-stagefeedback-gas
all-stageautoprofile-ld: maybe-all-stageautoprofile-gas
all-stageautofeedback-ld: maybe-all-stageautofeedback-gas
all-ld: maybe-all-binutils
all-stage1-ld: maybe-all-stage1-binutils
all-stage2-ld: maybe-all-stage2-binutils
all-stage3-ld: maybe-all-stage3-binutils
all-stage4-ld: maybe-all-stage4-binutils
all-stageprofile-ld: maybe-all-stageprofile-binutils
all-stagetrain-ld: maybe-all-stagetrain-binutils
all-stagefeedback-ld: maybe-all-stagefeedback-binutils
all-stageautoprofile-ld: maybe-all-stageautoprofile-binutils
all-stageautofeedback-ld: maybe-all-stageautofeedback-binutils
install-ld: maybe-install-gold
install-strip-ld: maybe-install-strip-gold
configure-gold: maybe-configure-intl
configure-stage1-gold: maybe-configure-stage1-intl
configure-stage2-gold: maybe-configure-stage2-intl
configure-stage3-gold: maybe-configure-stage3-intl
configure-stage4-gold: maybe-configure-stage4-intl
configure-stageprofile-gold: maybe-configure-stageprofile-intl
configure-stagetrain-gold: maybe-configure-stagetrain-intl
configure-stagefeedback-gold: maybe-configure-stagefeedback-intl
configure-stageautoprofile-gold: maybe-configure-stageautoprofile-intl
configure-stageautofeedback-gold: maybe-configure-stageautofeedback-intl
all-gold: maybe-all-libiberty
all-stage1-gold: maybe-all-stage1-libiberty
all-stage2-gold: maybe-all-stage2-libiberty
all-stage3-gold: maybe-all-stage3-libiberty
all-stage4-gold: maybe-all-stage4-libiberty
all-stageprofile-gold: maybe-all-stageprofile-libiberty
all-stagetrain-gold: maybe-all-stagetrain-libiberty
all-stagefeedback-gold: maybe-all-stagefeedback-libiberty
all-stageautoprofile-gold: maybe-all-stageautoprofile-libiberty
all-stageautofeedback-gold: maybe-all-stageautofeedback-libiberty
all-gold: maybe-all-intl
all-stage1-gold: maybe-all-stage1-intl
all-stage2-gold: maybe-all-stage2-intl
all-stage3-gold: maybe-all-stage3-intl
all-stage4-gold: maybe-all-stage4-intl
all-stageprofile-gold: maybe-all-stageprofile-intl
all-stagetrain-gold: maybe-all-stagetrain-intl
all-stagefeedback-gold: maybe-all-stagefeedback-intl
all-stageautoprofile-gold: maybe-all-stageautoprofile-intl
all-stageautofeedback-gold: maybe-all-stageautofeedback-intl
all-gold: maybe-all-bfd
all-stage1-gold: maybe-all-stage1-bfd
all-stage2-gold: maybe-all-stage2-bfd
all-stage3-gold: maybe-all-stage3-bfd
all-stage4-gold: maybe-all-stage4-bfd
all-stageprofile-gold: maybe-all-stageprofile-bfd
all-stagetrain-gold: maybe-all-stagetrain-bfd
all-stagefeedback-gold: maybe-all-stagefeedback-bfd
all-stageautoprofile-gold: maybe-all-stageautoprofile-bfd
all-stageautofeedback-gold: maybe-all-stageautofeedback-bfd
all-gold: maybe-all-build-bison
all-stage1-gold: maybe-all-build-bison
all-stage2-gold: maybe-all-build-bison
all-stage3-gold: maybe-all-build-bison
all-stage4-gold: maybe-all-build-bison
all-stageprofile-gold: maybe-all-build-bison
all-stagetrain-gold: maybe-all-build-bison
all-stagefeedback-gold: maybe-all-build-bison
all-stageautoprofile-gold: maybe-all-build-bison
all-stageautofeedback-gold: maybe-all-build-bison
all-gold: maybe-all-gas
all-stage1-gold: maybe-all-stage1-gas
all-stage2-gold: maybe-all-stage2-gas
all-stage3-gold: maybe-all-stage3-gas
all-stage4-gold: maybe-all-stage4-gas
all-stageprofile-gold: maybe-all-stageprofile-gas
all-stagetrain-gold: maybe-all-stagetrain-gas
all-stagefeedback-gold: maybe-all-stagefeedback-gas
all-stageautoprofile-gold: maybe-all-stageautoprofile-gas
all-stageautofeedback-gold: maybe-all-stageautofeedback-gas
check-gold: maybe-all-binutils
check-stage1-gold: maybe-all-stage1-binutils
check-stage2-gold: maybe-all-stage2-binutils
check-stage3-gold: maybe-all-stage3-binutils
check-stage4-gold: maybe-all-stage4-binutils
check-stageprofile-gold: maybe-all-stageprofile-binutils
check-stagetrain-gold: maybe-all-stagetrain-binutils
check-stagefeedback-gold: maybe-all-stagefeedback-binutils
check-stageautoprofile-gold: maybe-all-stageautoprofile-binutils
check-stageautofeedback-gold: maybe-all-stageautofeedback-binutils
check-gold: maybe-all-gas
check-stage1-gold: maybe-all-stage1-gas
check-stage2-gold: maybe-all-stage2-gas
check-stage3-gold: maybe-all-stage3-gas
check-stage4-gold: maybe-all-stage4-gas
check-stageprofile-gold: maybe-all-stageprofile-gas
check-stagetrain-gold: maybe-all-stagetrain-gas
check-stagefeedback-gold: maybe-all-stagefeedback-gas
check-stageautoprofile-gold: maybe-all-stageautoprofile-gas
check-stageautofeedback-gold: maybe-all-stageautofeedback-gas
configure-opcodes: maybe-configure-intl
configure-stage1-opcodes: maybe-configure-stage1-intl
configure-stage2-opcodes: maybe-configure-stage2-intl
configure-stage3-opcodes: maybe-configure-stage3-intl
configure-stage4-opcodes: maybe-configure-stage4-intl
configure-stageprofile-opcodes: maybe-configure-stageprofile-intl
configure-stagetrain-opcodes: maybe-configure-stagetrain-intl
configure-stagefeedback-opcodes: maybe-configure-stagefeedback-intl
configure-stageautoprofile-opcodes: maybe-configure-stageautoprofile-intl
configure-stageautofeedback-opcodes: maybe-configure-stageautofeedback-intl
all-opcodes: maybe-all-bfd
all-stage1-opcodes: maybe-all-stage1-bfd
all-stage2-opcodes: maybe-all-stage2-bfd
all-stage3-opcodes: maybe-all-stage3-bfd
all-stage4-opcodes: maybe-all-stage4-bfd
all-stageprofile-opcodes: maybe-all-stageprofile-bfd
all-stagetrain-opcodes: maybe-all-stagetrain-bfd
all-stagefeedback-opcodes: maybe-all-stagefeedback-bfd
all-stageautoprofile-opcodes: maybe-all-stageautoprofile-bfd
all-stageautofeedback-opcodes: maybe-all-stageautofeedback-bfd
all-opcodes: maybe-all-libiberty
all-stage1-opcodes: maybe-all-stage1-libiberty
all-stage2-opcodes: maybe-all-stage2-libiberty
all-stage3-opcodes: maybe-all-stage3-libiberty
all-stage4-opcodes: maybe-all-stage4-libiberty
all-stageprofile-opcodes: maybe-all-stageprofile-libiberty
all-stagetrain-opcodes: maybe-all-stagetrain-libiberty
all-stagefeedback-opcodes: maybe-all-stagefeedback-libiberty
all-stageautoprofile-opcodes: maybe-all-stageautoprofile-libiberty
all-stageautofeedback-opcodes: maybe-all-stageautofeedback-libiberty
all-opcodes: maybe-all-intl
all-stage1-opcodes: maybe-all-stage1-intl
all-stage2-opcodes: maybe-all-stage2-intl
all-stage3-opcodes: maybe-all-stage3-intl
all-stage4-opcodes: maybe-all-stage4-intl
all-stageprofile-opcodes: maybe-all-stageprofile-intl
all-stagetrain-opcodes: maybe-all-stagetrain-intl
all-stagefeedback-opcodes: maybe-all-stagefeedback-intl
all-stageautoprofile-opcodes: maybe-all-stageautoprofile-intl
all-stageautofeedback-opcodes: maybe-all-stageautofeedback-intl
all-dejagnu: maybe-all-tcl
all-dejagnu: maybe-all-expect
all-dejagnu: maybe-all-tk
configure-expect: maybe-configure-tcl
configure-expect: maybe-configure-tk
all-expect: maybe-all-tcl
all-expect: maybe-all-tk
configure-itcl: maybe-configure-tcl
configure-itcl: maybe-configure-tk
all-itcl: maybe-all-tcl
all-itcl: maybe-all-tk
install-itcl: maybe-install-tcl
install-strip-itcl: maybe-install-strip-tcl
configure-tk: maybe-configure-tcl
all-tk: maybe-all-tcl
all-sid: maybe-all-tcl
all-sid: maybe-all-tk
install-sid: maybe-install-tcl
install-strip-sid: maybe-install-strip-tcl
install-sid: maybe-install-tk
install-strip-sid: maybe-install-strip-tk
all-sim: maybe-all-readline
all-sim: maybe-configure-gdb
all-fastjar: maybe-all-build-texinfo
all-bison: maybe-all-build-texinfo
all-flex: maybe-all-build-bison
all-flex: maybe-all-m4
all-flex: maybe-all-build-texinfo
all-m4: maybe-all-build-texinfo
configure-target-fastjar: maybe-configure-target-zlib
all-target-fastjar: maybe-all-target-zlib
configure-target-libgo: maybe-configure-target-libffi
all-target-libgo: maybe-all-target-libbacktrace
all-target-libgo: maybe-all-target-libffi
all-target-libgo: maybe-all-target-libatomic
configure-target-libphobos: maybe-configure-target-libbacktrace
configure-target-libphobos: maybe-configure-target-zlib
all-target-libphobos: maybe-all-target-libbacktrace
all-target-libphobos: maybe-all-target-zlib
all-target-libphobos: maybe-all-target-libatomic
configure-target-libstdc++-v3: maybe-configure-target-libgomp
configure-stage1-target-libstdc++-v3: maybe-configure-stage1-target-libgomp
configure-stage2-target-libstdc++-v3: maybe-configure-stage2-target-libgomp
configure-stage3-target-libstdc++-v3: maybe-configure-stage3-target-libgomp
configure-stage4-target-libstdc++-v3: maybe-configure-stage4-target-libgomp
configure-stageprofile-target-libstdc++-v3: maybe-configure-stageprofile-target-libgomp
configure-stagetrain-target-libstdc++-v3: maybe-configure-stagetrain-target-libgomp
configure-stagefeedback-target-libstdc++-v3: maybe-configure-stagefeedback-target-libgomp
configure-stageautoprofile-target-libstdc++-v3: maybe-configure-stageautoprofile-target-libgomp
configure-stageautofeedback-target-libstdc++-v3: maybe-configure-stageautofeedback-target-libgomp
configure-target-libsanitizer: maybe-all-target-libstdc++-v3
configure-stage1-target-libsanitizer: maybe-all-stage1-target-libstdc++-v3
configure-stage2-target-libsanitizer: maybe-all-stage2-target-libstdc++-v3
configure-stage3-target-libsanitizer: maybe-all-stage3-target-libstdc++-v3
configure-stage4-target-libsanitizer: maybe-all-stage4-target-libstdc++-v3
configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libstdc++-v3
configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libstdc++-v3
configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libstdc++-v3
configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libstdc++-v3
configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libstdc++-v3
configure-target-libvtv: maybe-all-target-libstdc++-v3
configure-stage1-target-libvtv: maybe-all-stage1-target-libstdc++-v3
configure-stage2-target-libvtv: maybe-all-stage2-target-libstdc++-v3
configure-stage3-target-libvtv: maybe-all-stage3-target-libstdc++-v3
configure-stage4-target-libvtv: maybe-all-stage4-target-libstdc++-v3
configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libstdc++-v3
configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libstdc++-v3
configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libstdc++-v3
configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libstdc++-v3
configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libstdc++-v3
all-target-libstdc++-v3: maybe-configure-target-libgomp
all-stage1-target-libstdc++-v3: maybe-configure-stage1-target-libgomp
all-stage2-target-libstdc++-v3: maybe-configure-stage2-target-libgomp
all-stage3-target-libstdc++-v3: maybe-configure-stage3-target-libgomp
all-stage4-target-libstdc++-v3: maybe-configure-stage4-target-libgomp
all-stageprofile-target-libstdc++-v3: maybe-configure-stageprofile-target-libgomp
all-stagetrain-target-libstdc++-v3: maybe-configure-stagetrain-target-libgomp
all-stagefeedback-target-libstdc++-v3: maybe-configure-stagefeedback-target-libgomp
all-stageautoprofile-target-libstdc++-v3: maybe-configure-stageautoprofile-target-libgomp
all-stageautofeedback-target-libstdc++-v3: maybe-configure-stageautofeedback-target-libgomp
install-target-libgo: maybe-install-target-libatomic
install-target-libgfortran: maybe-install-target-libquadmath
install-target-libgfortran: maybe-install-target-libgcc
install-target-libphobos: maybe-install-target-libatomic
install-target-libsanitizer: maybe-install-target-libstdc++-v3
install-target-libsanitizer: maybe-install-target-libgcc
install-target-libvtv: maybe-install-target-libstdc++-v3
install-target-libvtv: maybe-install-target-libgcc
install-target-liboffloadmic: maybe-install-target-libstdc++-v3
install-target-liboffloadmic: maybe-install-target-libgcc
install-target-libitm: maybe-install-target-libgcc
install-target-libobjc: maybe-install-target-libgcc
install-target-libstdc++-v3: maybe-install-target-libgcc
all-target-libgloss: maybe-all-target-newlib
all-target-winsup: maybe-all-target-libtermcap
configure-target-libgfortran: maybe-all-target-libquadmath
configure-target-libgfortran: maybe-all-target-libbacktrace


@if gcc-bootstrap
configure-gnattools: stage_last
configure-libcc1: stage_last
configure-utils: stage_last
configure-gdb: stage_last
configure-gprof: stage_last
configure-sid: stage_last
configure-sim: stage_last
configure-fastjar: stage_last
configure-bison: stage_last
configure-flex: stage_last
configure-m4: stage_last
@endif gcc-bootstrap

@unless gcc-bootstrap
all-gnattools: maybe-all-target-libstdc++-v3
configure-libcc1: maybe-configure-gcc
all-libcc1: maybe-all-gcc
all-utils: maybe-all-libiberty
configure-gdb: maybe-all-intl
configure-gdb: maybe-all-bfd
configure-gdb: maybe-all-libiconv
all-gdb: maybe-all-libiberty
all-gdb: maybe-all-libiconv
all-gdb: maybe-all-opcodes
all-gdb: maybe-all-libdecnumber
configure-gprof: maybe-configure-intl
all-gprof: maybe-all-libiberty
all-gprof: maybe-all-bfd
all-gprof: maybe-all-opcodes
all-gprof: maybe-all-intl
all-gprof: maybe-all-gas
all-sid: maybe-all-libiberty
all-sid: maybe-all-bfd
all-sid: maybe-all-opcodes
configure-sim: maybe-configure-intl
all-sim: maybe-all-intl
all-sim: maybe-all-libiberty
all-sim: maybe-all-bfd
all-sim: maybe-all-opcodes
all-fastjar: maybe-all-zlib
all-fastjar: maybe-all-libiberty
all-bison: maybe-all-intl
all-flex: maybe-all-intl
all-m4: maybe-all-intl
configure-target-libgo: maybe-all-target-libstdc++-v3
configure-target-liboffloadmic: maybe-configure-target-libgomp
all-target-liboffloadmic: maybe-all-target-libgomp
configure-target-newlib: maybe-all-binutils
configure-target-newlib: maybe-all-ld
@endunless gcc-bootstrap

# Dependencies for target modules on other target modules are
# described by lang_env_dependencies; the defaults apply to anything
# not mentioned there.


@if gcc-bootstrap
configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libgcc
configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libgcc
configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libgcc
configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libgcc
configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libgcc
configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libgcc
configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libgcc
configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libgcc
configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libgcc
configure-stage1-target-libsanitizer: maybe-all-stage1-target-libgcc
configure-stage2-target-libsanitizer: maybe-all-stage2-target-libgcc
configure-stage3-target-libsanitizer: maybe-all-stage3-target-libgcc
configure-stage4-target-libsanitizer: maybe-all-stage4-target-libgcc
configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libgcc
configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libgcc
configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libgcc
configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libgcc
configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libgcc
configure-stage1-target-libvtv: maybe-all-stage1-target-libgcc
configure-stage2-target-libvtv: maybe-all-stage2-target-libgcc
configure-stage3-target-libvtv: maybe-all-stage3-target-libgcc
configure-stage4-target-libvtv: maybe-all-stage4-target-libgcc
configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libgcc
configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libgcc
configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libgcc
configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libgcc
configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libgcc
configure-stage1-target-libgomp: maybe-all-stage1-target-libgcc
configure-stage2-target-libgomp: maybe-all-stage2-target-libgcc
configure-stage3-target-libgomp: maybe-all-stage3-target-libgcc
configure-stage4-target-libgomp: maybe-all-stage4-target-libgcc
configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libgcc
configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libgcc
configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libgcc
configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libgcc
configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libgcc
@endif gcc-bootstrap

@if gcc-no-bootstrap
configure-target-libstdc++-v3: maybe-all-target-libgcc
configure-target-libsanitizer: maybe-all-target-libgcc
configure-target-libvtv: maybe-all-target-libgcc
configure-target-liboffloadmic: maybe-all-target-libgcc
configure-target-libssp: maybe-all-target-libgcc
configure-target-newlib: maybe-all-target-libgcc
configure-target-libbacktrace: maybe-all-target-libgcc
configure-target-libquadmath: maybe-all-target-libgcc
configure-target-libgfortran: maybe-all-target-libgcc
configure-target-libobjc: maybe-all-target-libgcc
configure-target-libgo: maybe-all-target-libgcc
configure-target-libhsail-rt: maybe-all-target-libgcc
configure-target-libphobos: maybe-all-target-libgcc
configure-target-libtermcap: maybe-all-target-libgcc
configure-target-winsup: maybe-all-target-libgcc
configure-target-libgloss: maybe-all-target-libgcc
configure-target-libffi: maybe-all-target-libgcc
configure-target-zlib: maybe-all-target-libgcc
configure-target-rda: maybe-all-target-libgcc
configure-target-libada: maybe-all-target-libgcc
configure-target-libgomp: maybe-all-target-libgcc
configure-target-libitm: maybe-all-target-libgcc
configure-target-libatomic: maybe-all-target-libgcc
@endif gcc-no-bootstrap


configure-target-libstdc++-v3: maybe-all-target-newlib maybe-all-target-libgloss

configure-target-libsanitizer: maybe-all-target-newlib maybe-all-target-libgloss

configure-target-libvtv: maybe-all-target-newlib maybe-all-target-libgloss

configure-target-liboffloadmic: maybe-all-target-newlib maybe-all-target-libgloss
configure-target-liboffloadmic: maybe-all-target-libstdc++-v3

configure-target-libssp: maybe-all-target-newlib maybe-all-target-libgloss



configure-target-libbacktrace: maybe-all-target-newlib maybe-all-target-libgloss

configure-target-libquadmath: maybe-all-target-newlib maybe-all-target-libgloss

configure-target-libgfortran: maybe-all-target-newlib maybe-all-target-libgloss

configure-target-libobjc: maybe-all-target-newlib maybe-all-target-libgloss

configure-target-libgo: maybe-all-target-newlib maybe-all-target-libgloss

configure-target-libhsail-rt: maybe-all-target-newlib maybe-all-target-libgloss

configure-target-libphobos: maybe-all-target-newlib maybe-all-target-libgloss

configure-target-libtermcap: maybe-all-target-newlib maybe-all-target-libgloss

configure-target-winsup: maybe-all-target-newlib maybe-all-target-libgloss


configure-target-libffi: maybe-all-target-newlib maybe-all-target-libgloss
configure-target-libffi: maybe-all-target-libstdc++-v3

configure-target-zlib: maybe-all-target-newlib maybe-all-target-libgloss

configure-target-rda: maybe-all-target-newlib maybe-all-target-libgloss

configure-target-libada: maybe-all-target-newlib maybe-all-target-libgloss

configure-target-libgomp: maybe-all-target-newlib maybe-all-target-libgloss

configure-target-libitm: maybe-all-target-newlib maybe-all-target-libgloss
configure-target-libitm: maybe-all-target-libstdc++-v3

configure-target-libatomic: maybe-all-target-newlib maybe-all-target-libgloss


CONFIGURE_GDB_TK = @CONFIGURE_GDB_TK@
GDB_TK = @GDB_TK@
INSTALL_GDB_TK = @INSTALL_GDB_TK@
configure-gdb: $(CONFIGURE_GDB_TK)
all-gdb: $(gdbnlmrequirements) $(GDB_TK)
install-gdb: $(INSTALL_GDB_TK)

# Serialization dependencies.  Host configures don't work well in parallel to
# each other, due to contention over config.cache.  Target configures and 
# build configures are similar.
@serialization_dependencies@

# --------------------------------
# Regenerating top level configury
# --------------------------------

# Rebuilding Makefile.in, using autogen.
AUTOGEN = autogen
$(srcdir)/Makefile.in: @MAINT@ $(srcdir)/Makefile.tpl $(srcdir)/Makefile.def
	cd $(srcdir) && $(AUTOGEN) Makefile.def

# Rebuilding Makefile.
Makefile: $(srcdir)/Makefile.in config.status
	CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status

config.status: configure
	CONFIG_SHELL="$(SHELL)" $(SHELL) ./config.status --recheck

# Rebuilding configure.
AUTOCONF = autoconf
$(srcdir)/configure: @MAINT@ $(srcdir)/configure.ac $(srcdir)/config/acx.m4 \
	$(srcdir)/config/override.m4 $(srcdir)/config/proginstall.m4 \
	$(srcdir)/config/elf.m4 $(srcdir)/config/isl.m4 \
	$(srcdir)/libtool.m4 $(srcdir)/ltoptions.m4 $(srcdir)/ltsugar.m4 \
	$(srcdir)/ltversion.m4 $(srcdir)/lt~obsolete.m4
	cd $(srcdir) && $(AUTOCONF)

# ------------------------------
# Special directives to GNU Make
# ------------------------------

# Don't pass command-line variables to submakes.
.NOEXPORT:
MAKEOVERRIDES=

# end of Makefile.in
