
# 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@

# If the build should make suitable code for shared host resources.
host_shared = @host_shared@

# 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; \
	CPP="$(CPP_FOR_BUILD)"; export CPP; \
	CPPFLAGS="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS; \
	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; \
	GM2="$(GM2_FOR_BUILD)"; export GM2; \
	GM2FLAGS="$(GM2FLAGS_FOR_BUILD)"; export GM2FLAGS; \
	DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \
	DSYMUTIL="$(DSYMUTIL_FOR_BUILD)"; export DSYMUTIL; \
	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; \
	GM2="$(GM2)"; export GM2; \
	AR="$(AR)"; export AR; \
	AS="$(AS)"; export AS; \
	CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
	CPP_FOR_BUILD="$(CPP_FOR_BUILD)"; export CPP_FOR_BUILD; \
	CPPFLAGS_FOR_BUILD="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS_FOR_BUILD; \
	CXX_FOR_BUILD="$(CXX_FOR_BUILD)"; export CXX_FOR_BUILD; \
	DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
	DSYMUTIL="$(DSYMUTIL)"; export DSYMUTIL; \
	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; \
	DSYMUTIL_FOR_TARGET="$(DSYMUTIL_FOR_TARGET)"; export DSYMUTIL_FOR_TARGET; \
	GCC_FOR_TARGET="$(GCC_FOR_TARGET) $$TFLAGS"; 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; \
	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/ $(GDCFLAGS_FOR_TARGET) \
	  -B$$r/prev-$(TARGET_SUBDIR)/libphobos/libdruntime/gcc \
	  -B$$r/prev-$(TARGET_SUBDIR)/libphobos/src \
	  -B$$r/prev-$(TARGET_SUBDIR)/libphobos/src/.libs \
	  -I$$r/prev-$(TARGET_SUBDIR)/libphobos/libdruntime -I$$s/libphobos/libdruntime \
	  -L$$r/prev-$(TARGET_SUBDIR)/libphobos/src/.libs \
	  -B$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/src/.libs \
	  -L$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/src/.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; \
	GM2="$(GM2_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GM2; \
	DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
	DSYMUTIL="$(DSYMUTIL_FOR_TARGET)"; export DSYMUTIL; \
	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@

# ----------------------------------------------
# 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@
CPP_FOR_BUILD = @CPP_FOR_BUILD@
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@
CXX_FOR_BUILD = @CXX_FOR_BUILD@
DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@
DSYMUTIL_FOR_BUILD = @DSYMUTIL_FOR_BUILD@
GFORTRAN_FOR_BUILD = @GFORTRAN_FOR_BUILD@
GOC_FOR_BUILD = @GOC_FOR_BUILD@
GDC_FOR_BUILD = @GDC_FOR_BUILD@
GM2_FOR_BUILD = @GM2_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@
DSYMUTIL = @DSYMUTIL@
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)
GM2FLAGS = $(CFLAGS)

# Pass additional PGO and LTO compiler options to the PGO build.
BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS)
override CFLAGS += $(BUILD_CFLAGS)
override CXXFLAGS += $(BUILD_CFLAGS)

# Additional PGO and LTO compiler options to generate profiling data
# for the PGO build.
PGO_BUILD_GEN_FLAGS_TO_PASS = \
	PGO_BUILD_CFLAGS="@PGO_BUILD_GEN_CFLAGS@" \
	PGO_BUILD_LTO_CFLAGS="@PGO_BUILD_LTO_CFLAGS@"

# NB: Filter out any compiler options which may fail PGO training runs.
PGO_BUILD_TRAINING_CFLAGS:= \
	$(filter-out -Werror=%,$(CFLAGS))
PGO_BUILD_TRAINING_CXXFLAGS:=\
	$(filter-out -Werror=%,$(CXXFLAGS))
PGO_BUILD_TRAINING_CFLAGS:= \
	$(filter-out -Wall,$(PGO_BUILD_TRAINING_CFLAGS))
PGO_BUILD_TRAINING_CXXFLAGS:= \
	$(filter-out -Wall,$(PGO_BUILD_TRAINING_CXXFLAGS))
PGO_BUILD_TRAINING_CFLAGS:= \
	$(filter-out -specs=%,$(PGO_BUILD_TRAINING_CFLAGS))
PGO_BUILD_TRAINING_CXXFLAGS:= \
	$(filter-out -specs=%,$(PGO_BUILD_TRAINING_CXXFLAGS))
PGO_BUILD_TRAINING_FLAGS_TO_PASS = \
	PGO_BUILD_TRAINING=yes \
	CFLAGS_FOR_TARGET="$(PGO_BUILD_TRAINING_CFLAGS)" \
	CXXFLAGS_FOR_TARGET="$(PGO_BUILD_TRAINING_CXXFLAGS)"

# Ignore "make check" errors in PGO training runs.
PGO_BUILD_TRAINING_MFLAGS = -i

# Additional PGO and LTO compiler options to use profiling data for the
# PGO build.
PGO_BUILD_USE_FLAGS_TO_PASS = \
	PGO_BUILD_CFLAGS="@PGO_BUILD_USE_CFLAGS@" \
	PGO_BUILD_LTO_CFLAGS="@PGO_BUILD_LTO_CFLAGS@"

# PGO training targets for the PGO build.  FIXME: Add gold tests to
# training.
PGO-TRAINING-TARGETS = binutils gas gdb ld sim
PGO_BUILD_TRAINING = $(addprefix maybe-check-,$(PGO-TRAINING-TARGETS))

CREATE_GCOV = create_gcov
PROFILE_MERGER = profile_merger

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

@if target-libphobos-bootstrap
STAGE1_CONFIGURE_FLAGS += --with-libphobos-druntime-only
STAGE2_CONFIGURE_FLAGS += --with-libphobos-druntime-only
@endif target-libphobos-bootstrap

# 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 -fprofile-reproducible=parallel-runs
STAGEfeedback_TFLAGS = $(STAGE4_TFLAGS)

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

STAGEautofeedback_CFLAGS = $(STAGE3_CFLAGS)
STAGEautofeedback_TFLAGS = $(STAGE3_TFLAGS)
# Disable warnings as errors since inlining decisions with -fauto-profile
# may result in additional warnings.
STAGEautofeedback_CONFIGURE_FLAGS = $(filter-out --enable-werror-always,$(STAGE_CONFIGURE_FLAGS))

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@
GM2_FOR_TARGET=$(STAGE_CC_WRAPPER) @GM2_FOR_TARGET@
DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
DSYMUTIL_FOR_TARGET=@DSYMUTIL_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@
GM2FLAGS_FOR_TARGET = -O2 -g
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_libssp)$(TARGET_LIB_PATH_libphobos)$(TARGET_LIB_PATH_libgm2)$(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-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-libgm2
TARGET_LIB_PATH_libgm2 = $$r/$(TARGET_SUBDIR)/libgm2/.libs:
@endif target-libgm2

@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)

# 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


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)" \
	"DSYMUTIL_FOR_TARGET=$(DSYMUTIL_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)" \
	"GM2_FOR_TARGET=$(GM2_FOR_TARGET)" \
	"GM2FLAGS_FOR_TARGET=$(GM2FLAGS_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)' \
	'DSYMUTIL=$(DSYMUTIL)' \
	'GFORTRAN=$(GFORTRAN)' \
	'GOC=$(GOC)' \
	'GDC=$(GDC)' \
	'GM2=$(GM2)' \
	'LD=$(LD)' \
	'LIPO=$(LIPO)' \
	'NM=$(NM)' \
	'OBJDUMP=$(OBJDUMP)' \
	'OTOOL=$(OTOOL)' \
	'RANLIB=$(RANLIB)' \
	'READELF=$(READELF)' \
	'STRIP=$(STRIP)' \
	'WINDRES=$(WINDRES)' \
	'WINDMC=$(WINDMC)' \
	'CREATE_GCOV=$(CREATE_GCOV)' \
	'PROFILE_MERGER=$(PROFILE_MERGER)'

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}" \
	GM2="$${GM2}" GM2_FOR_BUILD="$${GM2_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)' \
	'DSYMUTIL=$$(DSYMUTIL_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)' \
	'GM2=$$(GM2_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \
	'GM2FLAGS=$$(GM2FLAGS_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) $$TFLAGS" \
	"GM2_FOR_TARGET=$(GM2_FOR_TARGET) $$TFLAGS" \
	"`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-gold \
    maybe-configure-gprof \
    maybe-configure-intl \
    maybe-configure-tcl \
    maybe-configure-itcl \
    maybe-configure-ld \
    maybe-configure-libbacktrace \
    maybe-configure-libcpp \
    maybe-configure-libcody \
    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-gnulib \
    maybe-configure-gdbsupport \
    maybe-configure-gdbserver \
    maybe-configure-gdb \
    maybe-configure-expect \
    maybe-configure-guile \
    maybe-configure-tk \
    maybe-configure-libtermcap \
    maybe-configure-utils \
    maybe-configure-c++tools \
    maybe-configure-gnattools \
    maybe-configure-lto-plugin \
    maybe-configure-libcc1 \
    maybe-configure-gotools \
    maybe-configure-libctf \
    maybe-configure-libsframe
.PHONY: configure-target
configure-target:  \
    maybe-configure-target-libstdc++-v3 \
    maybe-configure-target-libsanitizer \
    maybe-configure-target-libvtv \
    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-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-libgm2 \
    maybe-configure-target-libgomp \
    maybe-configure-target-libitm \
    maybe-configure-target-libatomic

# The target built for a native non-bootstrap build.
.PHONY: all

# --enable-pgo-build enables the PGO build.
# 1. First build with -fprofile-generate.
# 2. Use "make maybe-check-*" to generate profiling data.
# 3. Use "make clean" to remove the previous build.
# 4. Rebuild with -fprofile-use.
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) \
		$(PGO_BUILD_GEN_FLAGS_TO_PASS) all-host all-target \
@if pgo-build
	&& $(MAKE) $(RECURSE_FLAGS_TO_PASS) \
		$(PGO_BUILD_TRAINING_MFLAGS) \
		$(PGO_BUILD_TRAINING_FLAGS_TO_PASS) \
		$(PGO_BUILD_TRAINING) \
	&& $(MAKE) $(RECURSE_FLAGS_TO_PASS) clean \
	&& $(MAKE) $(RECURSE_FLAGS_TO_PASS) \
		$(PGO_BUILD_USE_FLAGS_TO_PASS) all-host all-target \
@endif pgo-build
@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 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 libcody-no-bootstrap
all-host: maybe-all-libcody
@endif libcody-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-gnulib
all-host: maybe-all-gdbsupport
all-host: maybe-all-gdbserver
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-c++tools
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
@if libctf-no-bootstrap
all-host: maybe-all-libctf
@endif libctf-no-bootstrap
@if libsframe-no-bootstrap
all-host: maybe-all-libsframe
@endif libsframe-no-bootstrap

.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-libssp
all-target: maybe-all-target-newlib
@if target-libgcc-no-bootstrap
all-target: maybe-all-target-libgcc
@endif target-libgcc-no-bootstrap
@if target-libbacktrace-no-bootstrap
all-target: maybe-all-target-libbacktrace
@endif target-libbacktrace-no-bootstrap
all-target: maybe-all-target-libquadmath
all-target: maybe-all-target-libgfortran
all-target: maybe-all-target-libobjc
all-target: maybe-all-target-libgo
@if target-libphobos-no-bootstrap
all-target: maybe-all-target-libphobos
@endif target-libphobos-no-bootstrap
all-target: maybe-all-target-libtermcap
all-target: maybe-all-target-winsup
all-target: maybe-all-target-libgloss
all-target: maybe-all-target-libffi
@if target-zlib-no-bootstrap
all-target: maybe-all-target-zlib
@endif target-zlib-no-bootstrap
all-target: maybe-all-target-rda
all-target: maybe-all-target-libada
all-target: maybe-all-target-libgm2
@if target-libgomp-no-bootstrap
all-target: maybe-all-target-libgomp
@endif target-libgomp-no-bootstrap
all-target: maybe-all-target-libitm
@if target-libatomic-no-bootstrap
all-target: maybe-all-target-libatomic
@endif target-libatomic-no-bootstrap

# 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-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-libcody
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-gnulib
info-host: maybe-info-gdbsupport
info-host: maybe-info-gdbserver
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-c++tools
info-host: maybe-info-gnattools
info-host: maybe-info-lto-plugin
info-host: maybe-info-libcc1
info-host: maybe-info-gotools
info-host: maybe-info-libctf
info-host: maybe-info-libsframe

.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-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-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-libgm2
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-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-libcody
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-gnulib
dvi-host: maybe-dvi-gdbsupport
dvi-host: maybe-dvi-gdbserver
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-c++tools
dvi-host: maybe-dvi-gnattools
dvi-host: maybe-dvi-lto-plugin
dvi-host: maybe-dvi-libcc1
dvi-host: maybe-dvi-gotools
dvi-host: maybe-dvi-libctf
dvi-host: maybe-dvi-libsframe

.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-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-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-libgm2
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-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-libcody
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-gnulib
pdf-host: maybe-pdf-gdbsupport
pdf-host: maybe-pdf-gdbserver
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-c++tools
pdf-host: maybe-pdf-gnattools
pdf-host: maybe-pdf-lto-plugin
pdf-host: maybe-pdf-libcc1
pdf-host: maybe-pdf-gotools
pdf-host: maybe-pdf-libctf
pdf-host: maybe-pdf-libsframe

.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-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-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-libgm2
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-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-libcody
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-gnulib
html-host: maybe-html-gdbsupport
html-host: maybe-html-gdbserver
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-c++tools
html-host: maybe-html-gnattools
html-host: maybe-html-lto-plugin
html-host: maybe-html-libcc1
html-host: maybe-html-gotools
html-host: maybe-html-libctf
html-host: maybe-html-libsframe

.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-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-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-libgm2
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-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-libcody
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-gnulib
TAGS-host: maybe-TAGS-gdbsupport
TAGS-host: maybe-TAGS-gdbserver
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-c++tools
TAGS-host: maybe-TAGS-gnattools
TAGS-host: maybe-TAGS-lto-plugin
TAGS-host: maybe-TAGS-libcc1
TAGS-host: maybe-TAGS-gotools
TAGS-host: maybe-TAGS-libctf
TAGS-host: maybe-TAGS-libsframe

.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-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-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-libgm2
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-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-libcody
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-gnulib
install-info-host: maybe-install-info-gdbsupport
install-info-host: maybe-install-info-gdbserver
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-c++tools
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
install-info-host: maybe-install-info-libctf
install-info-host: maybe-install-info-libsframe

.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-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-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-libgm2
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-dvi
do-install-dvi:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(MAKE) $(RECURSE_FLAGS_TO_PASS) install-dvi-host \
	  install-dvi-target


.PHONY: install-dvi-host

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

.PHONY: install-dvi-target

install-dvi-target: maybe-install-dvi-target-libstdc++-v3
install-dvi-target: maybe-install-dvi-target-libsanitizer
install-dvi-target: maybe-install-dvi-target-libvtv
install-dvi-target: maybe-install-dvi-target-libssp
install-dvi-target: maybe-install-dvi-target-newlib
install-dvi-target: maybe-install-dvi-target-libgcc
install-dvi-target: maybe-install-dvi-target-libbacktrace
install-dvi-target: maybe-install-dvi-target-libquadmath
install-dvi-target: maybe-install-dvi-target-libgfortran
install-dvi-target: maybe-install-dvi-target-libobjc
install-dvi-target: maybe-install-dvi-target-libgo
install-dvi-target: maybe-install-dvi-target-libphobos
install-dvi-target: maybe-install-dvi-target-libtermcap
install-dvi-target: maybe-install-dvi-target-winsup
install-dvi-target: maybe-install-dvi-target-libgloss
install-dvi-target: maybe-install-dvi-target-libffi
install-dvi-target: maybe-install-dvi-target-zlib
install-dvi-target: maybe-install-dvi-target-rda
install-dvi-target: maybe-install-dvi-target-libada
install-dvi-target: maybe-install-dvi-target-libgm2
install-dvi-target: maybe-install-dvi-target-libgomp
install-dvi-target: maybe-install-dvi-target-libitm
install-dvi-target: maybe-install-dvi-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-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-libcody
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-gnulib
install-pdf-host: maybe-install-pdf-gdbsupport
install-pdf-host: maybe-install-pdf-gdbserver
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-c++tools
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
install-pdf-host: maybe-install-pdf-libctf
install-pdf-host: maybe-install-pdf-libsframe

.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-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-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-libgm2
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-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-libcody
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-gnulib
install-html-host: maybe-install-html-gdbsupport
install-html-host: maybe-install-html-gdbserver
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-c++tools
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
install-html-host: maybe-install-html-libctf
install-html-host: maybe-install-html-libsframe

.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-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-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-libgm2
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-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-libcody
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-gnulib
installcheck-host: maybe-installcheck-gdbsupport
installcheck-host: maybe-installcheck-gdbserver
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-c++tools
installcheck-host: maybe-installcheck-gnattools
installcheck-host: maybe-installcheck-lto-plugin
installcheck-host: maybe-installcheck-libcc1
installcheck-host: maybe-installcheck-gotools
installcheck-host: maybe-installcheck-libctf
installcheck-host: maybe-installcheck-libsframe

.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-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-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-libgm2
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-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-libcody
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-gnulib
mostlyclean-host: maybe-mostlyclean-gdbsupport
mostlyclean-host: maybe-mostlyclean-gdbserver
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-c++tools
mostlyclean-host: maybe-mostlyclean-gnattools
mostlyclean-host: maybe-mostlyclean-lto-plugin
mostlyclean-host: maybe-mostlyclean-libcc1
mostlyclean-host: maybe-mostlyclean-gotools
mostlyclean-host: maybe-mostlyclean-libctf
mostlyclean-host: maybe-mostlyclean-libsframe

.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-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-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-libgm2
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-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-libcody
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-gnulib
clean-host: maybe-clean-gdbsupport
clean-host: maybe-clean-gdbserver
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-c++tools
clean-host: maybe-clean-gnattools
clean-host: maybe-clean-lto-plugin
clean-host: maybe-clean-libcc1
clean-host: maybe-clean-gotools
clean-host: maybe-clean-libctf
clean-host: maybe-clean-libsframe

.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-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-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-libgm2
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-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-libcody
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-gnulib
distclean-host: maybe-distclean-gdbsupport
distclean-host: maybe-distclean-gdbserver
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-c++tools
distclean-host: maybe-distclean-gnattools
distclean-host: maybe-distclean-lto-plugin
distclean-host: maybe-distclean-libcc1
distclean-host: maybe-distclean-gotools
distclean-host: maybe-distclean-libctf
distclean-host: maybe-distclean-libsframe

.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-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-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-libgm2
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-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-libcody
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-gnulib
maintainer-clean-host: maybe-maintainer-clean-gdbsupport
maintainer-clean-host: maybe-maintainer-clean-gdbserver
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-c++tools
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
maintainer-clean-host: maybe-maintainer-clean-libctf
maintainer-clean-host: maybe-maintainer-clean-libsframe

.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-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-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-libgm2
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-dvi 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-dvi: do-install-dvi

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 c++tools fastjar gcc gnattools gotools 2>/dev/null
	-rmdir libcc1 libiberty 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-gold \
    maybe-check-gprof \
    maybe-check-intl \
    maybe-check-tcl \
    maybe-check-itcl \
    maybe-check-ld \
    maybe-check-libbacktrace \
    maybe-check-libcpp \
    maybe-check-libcody \
    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-gnulib \
    maybe-check-gdbsupport \
    maybe-check-gdbserver \
    maybe-check-gdb \
    maybe-check-expect \
    maybe-check-guile \
    maybe-check-tk \
    maybe-check-libtermcap \
    maybe-check-utils \
    maybe-check-c++tools \
    maybe-check-gnattools \
    maybe-check-lto-plugin \
    maybe-check-libcc1 \
    maybe-check-gotools \
    maybe-check-libctf \
    maybe-check-libsframe

.PHONY: check-target
check-target:  \
    maybe-check-target-libstdc++-v3 \
    maybe-check-target-libsanitizer \
    maybe-check-target-libvtv \
    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-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-libgm2 \
    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-gold \
    maybe-install-gprof \
    maybe-install-intl \
    maybe-install-tcl \
    maybe-install-itcl \
    maybe-install-ld \
    maybe-install-libbacktrace \
    maybe-install-libcpp \
    maybe-install-libcody \
    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-gnulib \
    maybe-install-gdbsupport \
    maybe-install-gdbserver \
    maybe-install-gdb \
    maybe-install-expect \
    maybe-install-guile \
    maybe-install-tk \
    maybe-install-libtermcap \
    maybe-install-utils \
    maybe-install-c++tools \
    maybe-install-gnattools \
    maybe-install-lto-plugin \
    maybe-install-libcc1 \
    maybe-install-gotools \
    maybe-install-libctf \
    maybe-install-libsframe

.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-gold \
    maybe-install-gprof \
    maybe-install-intl \
    maybe-install-tcl \
    maybe-install-itcl \
    maybe-install-ld \
    maybe-install-libbacktrace \
    maybe-install-libcpp \
    maybe-install-libcody \
    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-gnulib \
    maybe-install-gdbsupport \
    maybe-install-gdbserver \
    maybe-install-gdb \
    maybe-install-expect \
    maybe-install-guile \
    maybe-install-tk \
    maybe-install-libtermcap \
    maybe-install-utils \
    maybe-install-c++tools \
    maybe-install-gnattools \
    maybe-install-lto-plugin \
    maybe-install-libcc1 \
    maybe-install-gotools \
    maybe-install-libctf \
    maybe-install-libsframe

.PHONY: install-target
install-target:  \
    maybe-install-target-libstdc++-v3 \
    maybe-install-target-libsanitizer \
    maybe-install-target-libvtv \
    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-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-libgm2 \
    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-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-libcody \
    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-gnulib \
    maybe-install-strip-gdbsupport \
    maybe-install-strip-gdbserver \
    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-c++tools \
    maybe-install-strip-gnattools \
    maybe-install-strip-lto-plugin \
    maybe-install-strip-libcc1 \
    maybe-install-strip-gotools \
    maybe-install-strip-libctf \
    maybe-install-strip-libsframe

.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-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-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-libgm2 \
    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-dvi-bfd install-dvi-bfd
maybe-install-dvi-bfd:
@if bfd
maybe-install-dvi-bfd: install-dvi-bfd

install-dvi-bfd: \
    configure-bfd \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-opcodes install-dvi-opcodes
maybe-install-dvi-opcodes:
@if opcodes
maybe-install-dvi-opcodes: install-dvi-opcodes

install-dvi-opcodes: \
    configure-opcodes \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-binutils install-dvi-binutils
maybe-install-dvi-binutils:
@if binutils
maybe-install-dvi-binutils: install-dvi-binutils

install-dvi-binutils: \
    configure-binutils \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-bison install-dvi-bison
maybe-install-dvi-bison:
@if bison
maybe-install-dvi-bison: install-dvi-bison

install-dvi-bison: \
    configure-bison \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-cgen install-dvi-cgen
maybe-install-dvi-cgen:
@if cgen
maybe-install-dvi-cgen: install-dvi-cgen

install-dvi-cgen: \
    configure-cgen \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-dejagnu install-dvi-dejagnu
maybe-install-dvi-dejagnu:
@if dejagnu
maybe-install-dvi-dejagnu: install-dvi-dejagnu

install-dvi-dejagnu: \
    configure-dejagnu \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-etc install-dvi-etc
maybe-install-dvi-etc:
@if etc
maybe-install-dvi-etc: install-dvi-etc

install-dvi-etc: \
    configure-etc \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-fastjar install-dvi-fastjar
maybe-install-dvi-fastjar:
@if fastjar
maybe-install-dvi-fastjar: install-dvi-fastjar

install-dvi-fastjar: \
    configure-fastjar \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-fixincludes install-dvi-fixincludes
maybe-install-dvi-fixincludes:
@if fixincludes
maybe-install-dvi-fixincludes: install-dvi-fixincludes

# fixincludes doesn't support install-dvi.
install-dvi-fixincludes:

@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-dvi-flex install-dvi-flex
maybe-install-dvi-flex:
@if flex
maybe-install-dvi-flex: install-dvi-flex

install-dvi-flex: \
    configure-flex \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-gas install-dvi-gas
maybe-install-dvi-gas:
@if gas
maybe-install-dvi-gas: install-dvi-gas

install-dvi-gas: \
    configure-gas \
    dvi-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-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}" \
	          install-dvi) \
	  || 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} @gcc_host_pie@ \
	  || 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) \
	  @gcc_host_pie@
@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) \
	  @gcc_host_pie@
@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) \
	  @gcc_host_pie@
@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) \
	  @gcc_host_pie@
@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) \
	  @gcc_host_pie@
@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) \
	  @gcc_host_pie@
@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) \
	  @gcc_host_pie@
@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) \
	  @gcc_host_pie@
@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) \
	  @gcc_host_pie@
@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-dvi-gcc install-dvi-gcc
maybe-install-dvi-gcc:
@if gcc
maybe-install-dvi-gcc: install-dvi-gcc

install-dvi-gcc: \
    configure-gcc \
    dvi-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-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}" \
	          install-dvi) \
	  || 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" @host_libs_picflag@ \
	  || 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" @host_libs_picflag@
@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" @host_libs_picflag@
@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" @host_libs_picflag@
@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" @host_libs_picflag@
@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" @host_libs_picflag@
@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" @host_libs_picflag@
@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" @host_libs_picflag@
@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" @host_libs_picflag@
@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" @host_libs_picflag@
@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-dvi-gmp install-dvi-gmp
maybe-install-dvi-gmp:
@if gmp
maybe-install-dvi-gmp: install-dvi-gmp

install-dvi-gmp: \
    configure-gmp \
    dvi-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-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}" \
	          install-dvi) \
	  || 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@ @host_libs_picflag@ \
	  || 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@ @host_libs_picflag@
@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@ @host_libs_picflag@
@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@ @host_libs_picflag@
@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@ @host_libs_picflag@
@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@ @host_libs_picflag@
@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@ @host_libs_picflag@
@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@ @host_libs_picflag@
@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@ @host_libs_picflag@
@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@ @host_libs_picflag@
@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-dvi-mpfr install-dvi-mpfr
maybe-install-dvi-mpfr:
@if mpfr
maybe-install-dvi-mpfr: install-dvi-mpfr

install-dvi-mpfr: \
    configure-mpfr \
    dvi-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-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}" \
	          install-dvi) \
	  || 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@  @host_libs_picflag@ --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@  @host_libs_picflag@ --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@  @host_libs_picflag@ --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@  @host_libs_picflag@ --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@  @host_libs_picflag@ --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@  @host_libs_picflag@ --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@  @host_libs_picflag@ --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@  @host_libs_picflag@ --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@  @host_libs_picflag@ --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@  @host_libs_picflag@ --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-dvi-mpc install-dvi-mpc
maybe-install-dvi-mpc:
@if mpc
maybe-install-dvi-mpc: install-dvi-mpc

install-dvi-mpc: \
    configure-mpc \
    dvi-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-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}" \
	          install-dvi) \
	  || 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@  @host_libs_picflag@ \
	  || 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@  @host_libs_picflag@
@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@  @host_libs_picflag@
@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@  @host_libs_picflag@
@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@  @host_libs_picflag@
@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@  @host_libs_picflag@
@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@  @host_libs_picflag@
@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@  @host_libs_picflag@
@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@  @host_libs_picflag@
@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@  @host_libs_picflag@
@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-dvi-isl install-dvi-isl
maybe-install-dvi-isl:
@if isl
maybe-install-dvi-isl: install-dvi-isl

install-dvi-isl: \
    configure-isl \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-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-dvi-gold install-dvi-gold
maybe-install-dvi-gold:
@if gold
maybe-install-dvi-gold: install-dvi-gold

install-dvi-gold: \
    configure-gold \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-gprof install-dvi-gprof
maybe-install-dvi-gprof:
@if gprof
maybe-install-dvi-gprof: install-dvi-gprof

install-dvi-gprof: \
    configure-gprof \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-intl install-dvi-intl
maybe-install-dvi-intl:
@if intl
maybe-install-dvi-intl: install-dvi-intl

install-dvi-intl: \
    configure-intl \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-tcl install-dvi-tcl
maybe-install-dvi-tcl:
@if tcl
maybe-install-dvi-tcl: install-dvi-tcl

install-dvi-tcl: \
    configure-tcl \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-itcl install-dvi-itcl
maybe-install-dvi-itcl:
@if itcl
maybe-install-dvi-itcl: install-dvi-itcl

install-dvi-itcl: \
    configure-itcl \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-ld install-dvi-ld
maybe-install-dvi-ld:
@if ld
maybe-install-dvi-ld: install-dvi-ld

install-dvi-ld: \
    configure-ld \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-libbacktrace install-dvi-libbacktrace
maybe-install-dvi-libbacktrace:
@if libbacktrace
maybe-install-dvi-libbacktrace: install-dvi-libbacktrace

install-dvi-libbacktrace: \
    configure-libbacktrace \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-libcpp install-dvi-libcpp
maybe-install-dvi-libcpp:
@if libcpp
maybe-install-dvi-libcpp: install-dvi-libcpp

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



.PHONY: configure-stage1-libcody maybe-configure-stage1-libcody
maybe-configure-stage1-libcody:
@if libcody-bootstrap
maybe-configure-stage1-libcody: configure-stage1-libcody
configure-stage1-libcody:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcody/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)/libcody; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody; \
	cd $(HOST_SUBDIR)/libcody || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcody/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcody; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif libcody-bootstrap

.PHONY: configure-stage2-libcody maybe-configure-stage2-libcody
maybe-configure-stage2-libcody:
@if libcody-bootstrap
maybe-configure-stage2-libcody: configure-stage2-libcody
configure-stage2-libcody:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcody/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)/libcody; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody; \
	cd $(HOST_SUBDIR)/libcody || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcody/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcody; \
	$(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 libcody-bootstrap

.PHONY: configure-stage3-libcody maybe-configure-stage3-libcody
maybe-configure-stage3-libcody:
@if libcody-bootstrap
maybe-configure-stage3-libcody: configure-stage3-libcody
configure-stage3-libcody:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcody/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)/libcody; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody; \
	cd $(HOST_SUBDIR)/libcody || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcody/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcody; \
	$(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 libcody-bootstrap

.PHONY: configure-stage4-libcody maybe-configure-stage4-libcody
maybe-configure-stage4-libcody:
@if libcody-bootstrap
maybe-configure-stage4-libcody: configure-stage4-libcody
configure-stage4-libcody:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcody/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)/libcody; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody; \
	cd $(HOST_SUBDIR)/libcody || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcody/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcody; \
	$(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 libcody-bootstrap

.PHONY: configure-stageprofile-libcody maybe-configure-stageprofile-libcody
maybe-configure-stageprofile-libcody:
@if libcody-bootstrap
maybe-configure-stageprofile-libcody: configure-stageprofile-libcody
configure-stageprofile-libcody:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcody/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)/libcody; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody; \
	cd $(HOST_SUBDIR)/libcody || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcody/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcody; \
	$(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 libcody-bootstrap

.PHONY: configure-stagetrain-libcody maybe-configure-stagetrain-libcody
maybe-configure-stagetrain-libcody:
@if libcody-bootstrap
maybe-configure-stagetrain-libcody: configure-stagetrain-libcody
configure-stagetrain-libcody:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcody/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)/libcody; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody; \
	cd $(HOST_SUBDIR)/libcody || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcody/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcody; \
	$(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 libcody-bootstrap

.PHONY: configure-stagefeedback-libcody maybe-configure-stagefeedback-libcody
maybe-configure-stagefeedback-libcody:
@if libcody-bootstrap
maybe-configure-stagefeedback-libcody: configure-stagefeedback-libcody
configure-stagefeedback-libcody:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcody/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)/libcody; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody; \
	cd $(HOST_SUBDIR)/libcody || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcody/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcody; \
	$(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 libcody-bootstrap

.PHONY: configure-stageautoprofile-libcody maybe-configure-stageautoprofile-libcody
maybe-configure-stageautoprofile-libcody:
@if libcody-bootstrap
maybe-configure-stageautoprofile-libcody: configure-stageautoprofile-libcody
configure-stageautoprofile-libcody:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcody/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)/libcody; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody; \
	cd $(HOST_SUBDIR)/libcody || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcody/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcody; \
	$(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 libcody-bootstrap

.PHONY: configure-stageautofeedback-libcody maybe-configure-stageautofeedback-libcody
maybe-configure-stageautofeedback-libcody:
@if libcody-bootstrap
maybe-configure-stageautofeedback-libcody: configure-stageautofeedback-libcody
configure-stageautofeedback-libcody:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libcody/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)/libcody; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libcody; \
	cd $(HOST_SUBDIR)/libcody || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libcody/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libcody; \
	$(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 libcody-bootstrap





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



.PHONY: all-stage1-libcody maybe-all-stage1-libcody
.PHONY: clean-stage1-libcody maybe-clean-stage1-libcody
maybe-all-stage1-libcody:
maybe-clean-stage1-libcody:
@if libcody-bootstrap
maybe-all-stage1-libcody: all-stage1-libcody
all-stage1: all-stage1-libcody
TARGET-stage1-libcody = $(TARGET-libcody)
all-stage1-libcody: configure-stage1-libcody
	@[ $(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)/libcody && \
	 \
	$(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-libcody)

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


.PHONY: all-stage2-libcody maybe-all-stage2-libcody
.PHONY: clean-stage2-libcody maybe-clean-stage2-libcody
maybe-all-stage2-libcody:
maybe-clean-stage2-libcody:
@if libcody-bootstrap
maybe-all-stage2-libcody: all-stage2-libcody
all-stage2: all-stage2-libcody
TARGET-stage2-libcody = $(TARGET-libcody)
all-stage2-libcody: configure-stage2-libcody
	@[ $(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)/libcody && \
	 \
	$(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-libcody)

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


.PHONY: all-stage3-libcody maybe-all-stage3-libcody
.PHONY: clean-stage3-libcody maybe-clean-stage3-libcody
maybe-all-stage3-libcody:
maybe-clean-stage3-libcody:
@if libcody-bootstrap
maybe-all-stage3-libcody: all-stage3-libcody
all-stage3: all-stage3-libcody
TARGET-stage3-libcody = $(TARGET-libcody)
all-stage3-libcody: configure-stage3-libcody
	@[ $(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)/libcody && \
	 \
	$(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-libcody)

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


.PHONY: all-stage4-libcody maybe-all-stage4-libcody
.PHONY: clean-stage4-libcody maybe-clean-stage4-libcody
maybe-all-stage4-libcody:
maybe-clean-stage4-libcody:
@if libcody-bootstrap
maybe-all-stage4-libcody: all-stage4-libcody
all-stage4: all-stage4-libcody
TARGET-stage4-libcody = $(TARGET-libcody)
all-stage4-libcody: configure-stage4-libcody
	@[ $(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)/libcody && \
	 \
	$(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-libcody)

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


.PHONY: all-stageprofile-libcody maybe-all-stageprofile-libcody
.PHONY: clean-stageprofile-libcody maybe-clean-stageprofile-libcody
maybe-all-stageprofile-libcody:
maybe-clean-stageprofile-libcody:
@if libcody-bootstrap
maybe-all-stageprofile-libcody: all-stageprofile-libcody
all-stageprofile: all-stageprofile-libcody
TARGET-stageprofile-libcody = $(TARGET-libcody)
all-stageprofile-libcody: configure-stageprofile-libcody
	@[ $(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)/libcody && \
	 \
	$(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-libcody)

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


.PHONY: all-stagetrain-libcody maybe-all-stagetrain-libcody
.PHONY: clean-stagetrain-libcody maybe-clean-stagetrain-libcody
maybe-all-stagetrain-libcody:
maybe-clean-stagetrain-libcody:
@if libcody-bootstrap
maybe-all-stagetrain-libcody: all-stagetrain-libcody
all-stagetrain: all-stagetrain-libcody
TARGET-stagetrain-libcody = $(TARGET-libcody)
all-stagetrain-libcody: configure-stagetrain-libcody
	@[ $(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)/libcody && \
	 \
	$(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-libcody)

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


.PHONY: all-stagefeedback-libcody maybe-all-stagefeedback-libcody
.PHONY: clean-stagefeedback-libcody maybe-clean-stagefeedback-libcody
maybe-all-stagefeedback-libcody:
maybe-clean-stagefeedback-libcody:
@if libcody-bootstrap
maybe-all-stagefeedback-libcody: all-stagefeedback-libcody
all-stagefeedback: all-stagefeedback-libcody
TARGET-stagefeedback-libcody = $(TARGET-libcody)
all-stagefeedback-libcody: configure-stagefeedback-libcody
	@[ $(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)/libcody && \
	 \
	$(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-libcody)

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


.PHONY: all-stageautoprofile-libcody maybe-all-stageautoprofile-libcody
.PHONY: clean-stageautoprofile-libcody maybe-clean-stageautoprofile-libcody
maybe-all-stageautoprofile-libcody:
maybe-clean-stageautoprofile-libcody:
@if libcody-bootstrap
maybe-all-stageautoprofile-libcody: all-stageautoprofile-libcody
all-stageautoprofile: all-stageautoprofile-libcody
TARGET-stageautoprofile-libcody = $(TARGET-libcody)
all-stageautoprofile-libcody: configure-stageautoprofile-libcody
	@[ $(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)/libcody && \
	$$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-libcody)

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


.PHONY: all-stageautofeedback-libcody maybe-all-stageautofeedback-libcody
.PHONY: clean-stageautofeedback-libcody maybe-clean-stageautofeedback-libcody
maybe-all-stageautofeedback-libcody:
maybe-clean-stageautofeedback-libcody:
@if libcody-bootstrap
maybe-all-stageautofeedback-libcody: all-stageautofeedback-libcody
all-stageautofeedback: all-stageautofeedback-libcody
TARGET-stageautofeedback-libcody = $(TARGET-libcody)
all-stageautofeedback-libcody: configure-stageautofeedback-libcody
	@[ $(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)/libcody && \
	 \
	$(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-libcody)

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





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

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

@endif libcody

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

install-libcody:

@endif libcody

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

install-strip-libcody:

@endif libcody

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

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

# libcody doesn't support info.
info-libcody:

@endif libcody

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

# libcody doesn't support dvi.
dvi-libcody:

@endif libcody

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

# libcody doesn't support pdf.
pdf-libcody:

@endif libcody

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

# libcody doesn't support html.
html-libcody:

@endif libcody

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

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

@endif libcody

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

# libcody doesn't support install-info.
install-info-libcody:

@endif libcody

.PHONY: maybe-install-dvi-libcody install-dvi-libcody
maybe-install-dvi-libcody:
@if libcody
maybe-install-dvi-libcody: install-dvi-libcody

# libcody doesn't support install-dvi.
install-dvi-libcody:

@endif libcody

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

# libcody doesn't support install-pdf.
install-pdf-libcody:

@endif libcody

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

# libcody doesn't support install-html.
install-html-libcody:

@endif libcody

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

installcheck-libcody: \
    configure-libcody 
	@[ -f ./libcody/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libcody"; \
	(cd $(HOST_SUBDIR)/libcody && \
	  $(MAKE) $(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 libcody

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

mostlyclean-libcody: 
	@[ -f ./libcody/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libcody"; \
	(cd $(HOST_SUBDIR)/libcody && \
	  $(MAKE) $(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 libcody

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

clean-libcody: 
	@[ -f ./libcody/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libcody"; \
	(cd $(HOST_SUBDIR)/libcody && \
	  $(MAKE) $(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 libcody

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

distclean-libcody: 
	@[ -f ./libcody/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libcody"; \
	(cd $(HOST_SUBDIR)/libcody && \
	  $(MAKE) $(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 libcody

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

maintainer-clean-libcody: 
	@[ -f ./libcody/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libcody"; \
	(cd $(HOST_SUBDIR)/libcody && \
	  $(MAKE) $(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 libcody



.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

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

@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-dvi-libdecnumber install-dvi-libdecnumber
maybe-install-dvi-libdecnumber:
@if libdecnumber
maybe-install-dvi-libdecnumber: install-dvi-libdecnumber

install-dvi-libdecnumber: \
    configure-libdecnumber \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-libgui install-dvi-libgui
maybe-install-dvi-libgui:
@if libgui
maybe-install-dvi-libgui: install-dvi-libgui

install-dvi-libgui: \
    configure-libgui \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-libiberty install-dvi-libiberty
maybe-install-dvi-libiberty:
@if libiberty
maybe-install-dvi-libiberty: install-dvi-libiberty

install-dvi-libiberty: \
    configure-libiberty \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-libiberty-linker-plugin install-dvi-libiberty-linker-plugin
maybe-install-dvi-libiberty-linker-plugin:
@if libiberty-linker-plugin
maybe-install-dvi-libiberty-linker-plugin: install-dvi-libiberty-linker-plugin

install-dvi-libiberty-linker-plugin: \
    configure-libiberty-linker-plugin \
    dvi-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-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}" \
	          install-dvi) \
	  || 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  @host_libs_picflag@ \
	  || 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  @host_libs_picflag@
@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  @host_libs_picflag@
@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  @host_libs_picflag@
@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  @host_libs_picflag@
@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  @host_libs_picflag@
@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  @host_libs_picflag@
@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  @host_libs_picflag@
@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  @host_libs_picflag@
@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  @host_libs_picflag@
@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-dvi-libiconv install-dvi-libiconv
maybe-install-dvi-libiconv:
@if libiconv
maybe-install-dvi-libiconv: install-dvi-libiconv

install-dvi-libiconv: \
    configure-libiconv \
    dvi-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 install-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}" \
	          install-dvi) \
	  || exit 1

@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-dvi-m4 install-dvi-m4
maybe-install-dvi-m4:
@if m4
maybe-install-dvi-m4: install-dvi-m4

install-dvi-m4: \
    configure-m4 \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-readline install-dvi-readline
maybe-install-dvi-readline:
@if readline
maybe-install-dvi-readline: install-dvi-readline

install-dvi-readline: \
    configure-readline \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-sid install-dvi-sid
maybe-install-dvi-sid:
@if sid
maybe-install-dvi-sid: install-dvi-sid

install-dvi-sid: \
    configure-sid \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-sim install-dvi-sim
maybe-install-dvi-sim:
@if sim
maybe-install-dvi-sim: install-dvi-sim

install-dvi-sim: \
    configure-sim \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-texinfo install-dvi-texinfo
maybe-install-dvi-texinfo:
@if texinfo
maybe-install-dvi-texinfo: install-dvi-texinfo

install-dvi-texinfo: \
    configure-texinfo \
    dvi-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-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}" \
	          install-dvi) \
	  || 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@ @host_libs_picflag@ \
	  || 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@ @host_libs_picflag@
@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@ @host_libs_picflag@
@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@ @host_libs_picflag@
@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@ @host_libs_picflag@
@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@ @host_libs_picflag@
@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@ @host_libs_picflag@
@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@ @host_libs_picflag@
@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@ @host_libs_picflag@
@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@ @host_libs_picflag@
@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-dvi-zlib install-dvi-zlib
maybe-install-dvi-zlib:
@if zlib
maybe-install-dvi-zlib: install-dvi-zlib

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





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




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

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

@endif gnulib

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

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

@endif gnulib

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

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

@endif gnulib

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

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

info-gnulib: \
    configure-gnulib 
	@: $(MAKE); $(unstage)
	@[ -f ./gnulib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gnulib"; \
	(cd $(HOST_SUBDIR)/gnulib && \
	  $(MAKE) $(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 gnulib

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

dvi-gnulib: \
    configure-gnulib 
	@: $(MAKE); $(unstage)
	@[ -f ./gnulib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gnulib"; \
	(cd $(HOST_SUBDIR)/gnulib && \
	  $(MAKE) $(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 gnulib

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

pdf-gnulib: \
    configure-gnulib 
	@: $(MAKE); $(unstage)
	@[ -f ./gnulib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gnulib"; \
	(cd $(HOST_SUBDIR)/gnulib && \
	  $(MAKE) $(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 gnulib

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

html-gnulib: \
    configure-gnulib 
	@: $(MAKE); $(unstage)
	@[ -f ./gnulib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gnulib"; \
	(cd $(HOST_SUBDIR)/gnulib && \
	  $(MAKE) $(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 gnulib

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

TAGS-gnulib: \
    configure-gnulib 
	@: $(MAKE); $(unstage)
	@[ -f ./gnulib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gnulib"; \
	(cd $(HOST_SUBDIR)/gnulib && \
	  $(MAKE) $(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 gnulib

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

install-info-gnulib: \
    configure-gnulib \
    info-gnulib 
	@: $(MAKE); $(unstage)
	@[ -f ./gnulib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gnulib"; \
	(cd $(HOST_SUBDIR)/gnulib && \
	  $(MAKE) $(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 gnulib

.PHONY: maybe-install-dvi-gnulib install-dvi-gnulib
maybe-install-dvi-gnulib:
@if gnulib
maybe-install-dvi-gnulib: install-dvi-gnulib

install-dvi-gnulib: \
    configure-gnulib \
    dvi-gnulib 
	@: $(MAKE); $(unstage)
	@[ -f ./gnulib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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-dvi in gnulib"; \
	(cd $(HOST_SUBDIR)/gnulib && \
	  $(MAKE) $(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-dvi) \
	  || exit 1

@endif gnulib

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

install-pdf-gnulib: \
    configure-gnulib \
    pdf-gnulib 
	@: $(MAKE); $(unstage)
	@[ -f ./gnulib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gnulib"; \
	(cd $(HOST_SUBDIR)/gnulib && \
	  $(MAKE) $(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 gnulib

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

install-html-gnulib: \
    configure-gnulib \
    html-gnulib 
	@: $(MAKE); $(unstage)
	@[ -f ./gnulib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gnulib"; \
	(cd $(HOST_SUBDIR)/gnulib && \
	  $(MAKE) $(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 gnulib

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

installcheck-gnulib: \
    configure-gnulib 
	@: $(MAKE); $(unstage)
	@[ -f ./gnulib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gnulib"; \
	(cd $(HOST_SUBDIR)/gnulib && \
	  $(MAKE) $(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 gnulib

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

mostlyclean-gnulib: 
	@: $(MAKE); $(unstage)
	@[ -f ./gnulib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gnulib"; \
	(cd $(HOST_SUBDIR)/gnulib && \
	  $(MAKE) $(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 gnulib

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

clean-gnulib: 
	@: $(MAKE); $(unstage)
	@[ -f ./gnulib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gnulib"; \
	(cd $(HOST_SUBDIR)/gnulib && \
	  $(MAKE) $(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 gnulib

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

distclean-gnulib: 
	@: $(MAKE); $(unstage)
	@[ -f ./gnulib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gnulib"; \
	(cd $(HOST_SUBDIR)/gnulib && \
	  $(MAKE) $(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 gnulib

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

maintainer-clean-gnulib: 
	@: $(MAKE); $(unstage)
	@[ -f ./gnulib/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gnulib"; \
	(cd $(HOST_SUBDIR)/gnulib && \
	  $(MAKE) $(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 gnulib



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





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




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

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

@endif gdbsupport

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

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

@endif gdbsupport

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

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

@endif gdbsupport

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

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

info-gdbsupport: \
    configure-gdbsupport 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbsupport/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbsupport"; \
	(cd $(HOST_SUBDIR)/gdbsupport && \
	  $(MAKE) $(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 gdbsupport

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

dvi-gdbsupport: \
    configure-gdbsupport 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbsupport/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbsupport"; \
	(cd $(HOST_SUBDIR)/gdbsupport && \
	  $(MAKE) $(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 gdbsupport

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

pdf-gdbsupport: \
    configure-gdbsupport 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbsupport/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbsupport"; \
	(cd $(HOST_SUBDIR)/gdbsupport && \
	  $(MAKE) $(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 gdbsupport

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

html-gdbsupport: \
    configure-gdbsupport 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbsupport/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbsupport"; \
	(cd $(HOST_SUBDIR)/gdbsupport && \
	  $(MAKE) $(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 gdbsupport

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

TAGS-gdbsupport: \
    configure-gdbsupport 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbsupport/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbsupport"; \
	(cd $(HOST_SUBDIR)/gdbsupport && \
	  $(MAKE) $(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 gdbsupport

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

install-info-gdbsupport: \
    configure-gdbsupport \
    info-gdbsupport 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbsupport/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbsupport"; \
	(cd $(HOST_SUBDIR)/gdbsupport && \
	  $(MAKE) $(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 gdbsupport

.PHONY: maybe-install-dvi-gdbsupport install-dvi-gdbsupport
maybe-install-dvi-gdbsupport:
@if gdbsupport
maybe-install-dvi-gdbsupport: install-dvi-gdbsupport

install-dvi-gdbsupport: \
    configure-gdbsupport \
    dvi-gdbsupport 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbsupport/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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-dvi in gdbsupport"; \
	(cd $(HOST_SUBDIR)/gdbsupport && \
	  $(MAKE) $(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-dvi) \
	  || exit 1

@endif gdbsupport

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

install-pdf-gdbsupport: \
    configure-gdbsupport \
    pdf-gdbsupport 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbsupport/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbsupport"; \
	(cd $(HOST_SUBDIR)/gdbsupport && \
	  $(MAKE) $(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 gdbsupport

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

install-html-gdbsupport: \
    configure-gdbsupport \
    html-gdbsupport 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbsupport/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbsupport"; \
	(cd $(HOST_SUBDIR)/gdbsupport && \
	  $(MAKE) $(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 gdbsupport

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

installcheck-gdbsupport: \
    configure-gdbsupport 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbsupport/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbsupport"; \
	(cd $(HOST_SUBDIR)/gdbsupport && \
	  $(MAKE) $(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 gdbsupport

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

mostlyclean-gdbsupport: 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbsupport/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbsupport"; \
	(cd $(HOST_SUBDIR)/gdbsupport && \
	  $(MAKE) $(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 gdbsupport

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

clean-gdbsupport: 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbsupport/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbsupport"; \
	(cd $(HOST_SUBDIR)/gdbsupport && \
	  $(MAKE) $(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 gdbsupport

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

distclean-gdbsupport: 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbsupport/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbsupport"; \
	(cd $(HOST_SUBDIR)/gdbsupport && \
	  $(MAKE) $(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 gdbsupport

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

maintainer-clean-gdbsupport: 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbsupport/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbsupport"; \
	(cd $(HOST_SUBDIR)/gdbsupport && \
	  $(MAKE) $(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 gdbsupport



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





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




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

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

@endif gdbserver

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

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

@endif gdbserver

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

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

@endif gdbserver

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

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

info-gdbserver: \
    configure-gdbserver 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbserver/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbserver"; \
	(cd $(HOST_SUBDIR)/gdbserver && \
	  $(MAKE) $(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 gdbserver

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

dvi-gdbserver: \
    configure-gdbserver 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbserver/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbserver"; \
	(cd $(HOST_SUBDIR)/gdbserver && \
	  $(MAKE) $(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 gdbserver

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

pdf-gdbserver: \
    configure-gdbserver 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbserver/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbserver"; \
	(cd $(HOST_SUBDIR)/gdbserver && \
	  $(MAKE) $(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 gdbserver

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

html-gdbserver: \
    configure-gdbserver 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbserver/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbserver"; \
	(cd $(HOST_SUBDIR)/gdbserver && \
	  $(MAKE) $(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 gdbserver

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

TAGS-gdbserver: \
    configure-gdbserver 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbserver/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbserver"; \
	(cd $(HOST_SUBDIR)/gdbserver && \
	  $(MAKE) $(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 gdbserver

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

install-info-gdbserver: \
    configure-gdbserver \
    info-gdbserver 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbserver/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbserver"; \
	(cd $(HOST_SUBDIR)/gdbserver && \
	  $(MAKE) $(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 gdbserver

.PHONY: maybe-install-dvi-gdbserver install-dvi-gdbserver
maybe-install-dvi-gdbserver:
@if gdbserver
maybe-install-dvi-gdbserver: install-dvi-gdbserver

install-dvi-gdbserver: \
    configure-gdbserver \
    dvi-gdbserver 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbserver/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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-dvi in gdbserver"; \
	(cd $(HOST_SUBDIR)/gdbserver && \
	  $(MAKE) $(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-dvi) \
	  || exit 1

@endif gdbserver

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

install-pdf-gdbserver: \
    configure-gdbserver \
    pdf-gdbserver 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbserver/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbserver"; \
	(cd $(HOST_SUBDIR)/gdbserver && \
	  $(MAKE) $(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 gdbserver

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

install-html-gdbserver: \
    configure-gdbserver \
    html-gdbserver 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbserver/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbserver"; \
	(cd $(HOST_SUBDIR)/gdbserver && \
	  $(MAKE) $(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 gdbserver

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

installcheck-gdbserver: \
    configure-gdbserver 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbserver/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbserver"; \
	(cd $(HOST_SUBDIR)/gdbserver && \
	  $(MAKE) $(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 gdbserver

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

mostlyclean-gdbserver: 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbserver/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbserver"; \
	(cd $(HOST_SUBDIR)/gdbserver && \
	  $(MAKE) $(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 gdbserver

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

clean-gdbserver: 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbserver/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbserver"; \
	(cd $(HOST_SUBDIR)/gdbserver && \
	  $(MAKE) $(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 gdbserver

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

distclean-gdbserver: 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbserver/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbserver"; \
	(cd $(HOST_SUBDIR)/gdbserver && \
	  $(MAKE) $(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 gdbserver

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

maintainer-clean-gdbserver: 
	@: $(MAKE); $(unstage)
	@[ -f ./gdbserver/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 gdbserver"; \
	(cd $(HOST_SUBDIR)/gdbserver && \
	  $(MAKE) $(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 gdbserver



.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-dvi-gdb install-dvi-gdb
maybe-install-dvi-gdb:
@if gdb
maybe-install-dvi-gdb: install-dvi-gdb

install-dvi-gdb: \
    configure-gdb \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-expect install-dvi-expect
maybe-install-dvi-expect:
@if expect
maybe-install-dvi-expect: install-dvi-expect

install-dvi-expect: \
    configure-expect \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-guile install-dvi-guile
maybe-install-dvi-guile:
@if guile
maybe-install-dvi-guile: install-dvi-guile

install-dvi-guile: \
    configure-guile \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-tk install-dvi-tk
maybe-install-dvi-tk:
@if tk
maybe-install-dvi-tk: install-dvi-tk

install-dvi-tk: \
    configure-tk \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-libtermcap install-dvi-libtermcap
maybe-install-dvi-libtermcap:
@if libtermcap
maybe-install-dvi-libtermcap: install-dvi-libtermcap

install-dvi-libtermcap: \
    configure-libtermcap \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-utils install-dvi-utils
maybe-install-dvi-utils:
@if utils
maybe-install-dvi-utils: install-dvi-utils

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





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




.PHONY: check-c++tools maybe-check-c++tools
maybe-check-c++tools:
@if c++tools
maybe-check-c++tools: check-c++tools

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

@endif c++tools

.PHONY: install-c++tools maybe-install-c++tools
maybe-install-c++tools:
@if c++tools
maybe-install-c++tools: install-c++tools

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

@endif c++tools

.PHONY: install-strip-c++tools maybe-install-strip-c++tools
maybe-install-strip-c++tools:
@if c++tools
maybe-install-strip-c++tools: install-strip-c++tools

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

@endif c++tools

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

.PHONY: maybe-info-c++tools info-c++tools
maybe-info-c++tools:
@if c++tools
maybe-info-c++tools: info-c++tools

info-c++tools: \
    configure-c++tools 
	@: $(MAKE); $(unstage)
	@[ -f ./c++tools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 c++tools"; \
	(cd $(HOST_SUBDIR)/c++tools && \
	  $(MAKE) $(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 c++tools

.PHONY: maybe-dvi-c++tools dvi-c++tools
maybe-dvi-c++tools:
@if c++tools
maybe-dvi-c++tools: dvi-c++tools

dvi-c++tools: \
    configure-c++tools 
	@: $(MAKE); $(unstage)
	@[ -f ./c++tools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 c++tools"; \
	(cd $(HOST_SUBDIR)/c++tools && \
	  $(MAKE) $(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 c++tools

.PHONY: maybe-pdf-c++tools pdf-c++tools
maybe-pdf-c++tools:
@if c++tools
maybe-pdf-c++tools: pdf-c++tools

pdf-c++tools: \
    configure-c++tools 
	@: $(MAKE); $(unstage)
	@[ -f ./c++tools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 c++tools"; \
	(cd $(HOST_SUBDIR)/c++tools && \
	  $(MAKE) $(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 c++tools

.PHONY: maybe-html-c++tools html-c++tools
maybe-html-c++tools:
@if c++tools
maybe-html-c++tools: html-c++tools

html-c++tools: \
    configure-c++tools 
	@: $(MAKE); $(unstage)
	@[ -f ./c++tools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 c++tools"; \
	(cd $(HOST_SUBDIR)/c++tools && \
	  $(MAKE) $(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 c++tools

.PHONY: maybe-TAGS-c++tools TAGS-c++tools
maybe-TAGS-c++tools:
@if c++tools
maybe-TAGS-c++tools: TAGS-c++tools

# c++tools doesn't support TAGS.
TAGS-c++tools:

@endif c++tools

.PHONY: maybe-install-info-c++tools install-info-c++tools
maybe-install-info-c++tools:
@if c++tools
maybe-install-info-c++tools: install-info-c++tools

install-info-c++tools: \
    configure-c++tools \
    info-c++tools 
	@: $(MAKE); $(unstage)
	@[ -f ./c++tools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 c++tools"; \
	(cd $(HOST_SUBDIR)/c++tools && \
	  $(MAKE) $(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 c++tools

.PHONY: maybe-install-dvi-c++tools install-dvi-c++tools
maybe-install-dvi-c++tools:
@if c++tools
maybe-install-dvi-c++tools: install-dvi-c++tools

install-dvi-c++tools: \
    configure-c++tools \
    dvi-c++tools 
	@: $(MAKE); $(unstage)
	@[ -f ./c++tools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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-dvi in c++tools"; \
	(cd $(HOST_SUBDIR)/c++tools && \
	  $(MAKE) $(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-dvi) \
	  || exit 1

@endif c++tools

.PHONY: maybe-install-pdf-c++tools install-pdf-c++tools
maybe-install-pdf-c++tools:
@if c++tools
maybe-install-pdf-c++tools: install-pdf-c++tools

install-pdf-c++tools: \
    configure-c++tools \
    pdf-c++tools 
	@: $(MAKE); $(unstage)
	@[ -f ./c++tools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 c++tools"; \
	(cd $(HOST_SUBDIR)/c++tools && \
	  $(MAKE) $(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 c++tools

.PHONY: maybe-install-html-c++tools install-html-c++tools
maybe-install-html-c++tools:
@if c++tools
maybe-install-html-c++tools: install-html-c++tools

install-html-c++tools: \
    configure-c++tools \
    html-c++tools 
	@: $(MAKE); $(unstage)
	@[ -f ./c++tools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 c++tools"; \
	(cd $(HOST_SUBDIR)/c++tools && \
	  $(MAKE) $(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 c++tools

.PHONY: maybe-installcheck-c++tools installcheck-c++tools
maybe-installcheck-c++tools:
@if c++tools
maybe-installcheck-c++tools: installcheck-c++tools

installcheck-c++tools: \
    configure-c++tools 
	@: $(MAKE); $(unstage)
	@[ -f ./c++tools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 c++tools"; \
	(cd $(HOST_SUBDIR)/c++tools && \
	  $(MAKE) $(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 c++tools

.PHONY: maybe-mostlyclean-c++tools mostlyclean-c++tools
maybe-mostlyclean-c++tools:
@if c++tools
maybe-mostlyclean-c++tools: mostlyclean-c++tools

mostlyclean-c++tools: 
	@: $(MAKE); $(unstage)
	@[ -f ./c++tools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 c++tools"; \
	(cd $(HOST_SUBDIR)/c++tools && \
	  $(MAKE) $(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 c++tools

.PHONY: maybe-clean-c++tools clean-c++tools
maybe-clean-c++tools:
@if c++tools
maybe-clean-c++tools: clean-c++tools

clean-c++tools: 
	@: $(MAKE); $(unstage)
	@[ -f ./c++tools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 c++tools"; \
	(cd $(HOST_SUBDIR)/c++tools && \
	  $(MAKE) $(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 c++tools

.PHONY: maybe-distclean-c++tools distclean-c++tools
maybe-distclean-c++tools:
@if c++tools
maybe-distclean-c++tools: distclean-c++tools

distclean-c++tools: 
	@: $(MAKE); $(unstage)
	@[ -f ./c++tools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 c++tools"; \
	(cd $(HOST_SUBDIR)/c++tools && \
	  $(MAKE) $(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 c++tools

.PHONY: maybe-maintainer-clean-c++tools maintainer-clean-c++tools
maybe-maintainer-clean-c++tools:
@if c++tools
maybe-maintainer-clean-c++tools: maintainer-clean-c++tools

maintainer-clean-c++tools: 
	@: $(MAKE); $(unstage)
	@[ -f ./c++tools/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 c++tools"; \
	(cd $(HOST_SUBDIR)/c++tools && \
	  $(MAKE) $(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 c++tools



.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-dvi-gnattools install-dvi-gnattools
maybe-install-dvi-gnattools:
@if gnattools
maybe-install-dvi-gnattools: install-dvi-gnattools

install-dvi-gnattools: \
    configure-gnattools \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-lto-plugin install-dvi-lto-plugin
maybe-install-dvi-lto-plugin:
@if lto-plugin
maybe-install-dvi-lto-plugin: install-dvi-lto-plugin

install-dvi-lto-plugin: \
    configure-lto-plugin \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-libcc1 install-dvi-libcc1
maybe-install-dvi-libcc1:
@if libcc1
maybe-install-dvi-libcc1: install-dvi-libcc1

install-dvi-libcc1: \
    configure-libcc1 \
    dvi-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-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}" \
	          install-dvi) \
	  || 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-dvi-gotools install-dvi-gotools
maybe-install-dvi-gotools:
@if gotools
maybe-install-dvi-gotools: install-dvi-gotools

install-dvi-gotools: \
    configure-gotools \
    dvi-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-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}" \
	          install-dvi) \
	  || 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



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



.PHONY: configure-stage1-libctf maybe-configure-stage1-libctf
maybe-configure-stage1-libctf:
@if libctf-bootstrap
maybe-configure-stage1-libctf: configure-stage1-libctf
configure-stage1-libctf:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libctf/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)/libctf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf; \
	cd $(HOST_SUBDIR)/libctf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libctf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libctf; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif libctf-bootstrap

.PHONY: configure-stage2-libctf maybe-configure-stage2-libctf
maybe-configure-stage2-libctf:
@if libctf-bootstrap
maybe-configure-stage2-libctf: configure-stage2-libctf
configure-stage2-libctf:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libctf/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)/libctf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf; \
	cd $(HOST_SUBDIR)/libctf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libctf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libctf; \
	$(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 libctf-bootstrap

.PHONY: configure-stage3-libctf maybe-configure-stage3-libctf
maybe-configure-stage3-libctf:
@if libctf-bootstrap
maybe-configure-stage3-libctf: configure-stage3-libctf
configure-stage3-libctf:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libctf/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)/libctf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf; \
	cd $(HOST_SUBDIR)/libctf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libctf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libctf; \
	$(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 libctf-bootstrap

.PHONY: configure-stage4-libctf maybe-configure-stage4-libctf
maybe-configure-stage4-libctf:
@if libctf-bootstrap
maybe-configure-stage4-libctf: configure-stage4-libctf
configure-stage4-libctf:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libctf/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)/libctf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf; \
	cd $(HOST_SUBDIR)/libctf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libctf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libctf; \
	$(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 libctf-bootstrap

.PHONY: configure-stageprofile-libctf maybe-configure-stageprofile-libctf
maybe-configure-stageprofile-libctf:
@if libctf-bootstrap
maybe-configure-stageprofile-libctf: configure-stageprofile-libctf
configure-stageprofile-libctf:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libctf/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)/libctf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf; \
	cd $(HOST_SUBDIR)/libctf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libctf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libctf; \
	$(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 libctf-bootstrap

.PHONY: configure-stagetrain-libctf maybe-configure-stagetrain-libctf
maybe-configure-stagetrain-libctf:
@if libctf-bootstrap
maybe-configure-stagetrain-libctf: configure-stagetrain-libctf
configure-stagetrain-libctf:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libctf/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)/libctf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf; \
	cd $(HOST_SUBDIR)/libctf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libctf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libctf; \
	$(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 libctf-bootstrap

.PHONY: configure-stagefeedback-libctf maybe-configure-stagefeedback-libctf
maybe-configure-stagefeedback-libctf:
@if libctf-bootstrap
maybe-configure-stagefeedback-libctf: configure-stagefeedback-libctf
configure-stagefeedback-libctf:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libctf/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)/libctf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf; \
	cd $(HOST_SUBDIR)/libctf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libctf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libctf; \
	$(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 libctf-bootstrap

.PHONY: configure-stageautoprofile-libctf maybe-configure-stageautoprofile-libctf
maybe-configure-stageautoprofile-libctf:
@if libctf-bootstrap
maybe-configure-stageautoprofile-libctf: configure-stageautoprofile-libctf
configure-stageautoprofile-libctf:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libctf/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)/libctf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf; \
	cd $(HOST_SUBDIR)/libctf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libctf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libctf; \
	$(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 libctf-bootstrap

.PHONY: configure-stageautofeedback-libctf maybe-configure-stageautofeedback-libctf
maybe-configure-stageautofeedback-libctf:
@if libctf-bootstrap
maybe-configure-stageautofeedback-libctf: configure-stageautofeedback-libctf
configure-stageautofeedback-libctf:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libctf/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)/libctf; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libctf; \
	cd $(HOST_SUBDIR)/libctf || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libctf/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libctf; \
	$(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 libctf-bootstrap





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



.PHONY: all-stage1-libctf maybe-all-stage1-libctf
.PHONY: clean-stage1-libctf maybe-clean-stage1-libctf
maybe-all-stage1-libctf:
maybe-clean-stage1-libctf:
@if libctf-bootstrap
maybe-all-stage1-libctf: all-stage1-libctf
all-stage1: all-stage1-libctf
TARGET-stage1-libctf = $(TARGET-libctf)
all-stage1-libctf: configure-stage1-libctf
	@[ $(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)/libctf && \
	 \
	$(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-libctf)

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


.PHONY: all-stage2-libctf maybe-all-stage2-libctf
.PHONY: clean-stage2-libctf maybe-clean-stage2-libctf
maybe-all-stage2-libctf:
maybe-clean-stage2-libctf:
@if libctf-bootstrap
maybe-all-stage2-libctf: all-stage2-libctf
all-stage2: all-stage2-libctf
TARGET-stage2-libctf = $(TARGET-libctf)
all-stage2-libctf: configure-stage2-libctf
	@[ $(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)/libctf && \
	 \
	$(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-libctf)

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


.PHONY: all-stage3-libctf maybe-all-stage3-libctf
.PHONY: clean-stage3-libctf maybe-clean-stage3-libctf
maybe-all-stage3-libctf:
maybe-clean-stage3-libctf:
@if libctf-bootstrap
maybe-all-stage3-libctf: all-stage3-libctf
all-stage3: all-stage3-libctf
TARGET-stage3-libctf = $(TARGET-libctf)
all-stage3-libctf: configure-stage3-libctf
	@[ $(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)/libctf && \
	 \
	$(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-libctf)

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


.PHONY: all-stage4-libctf maybe-all-stage4-libctf
.PHONY: clean-stage4-libctf maybe-clean-stage4-libctf
maybe-all-stage4-libctf:
maybe-clean-stage4-libctf:
@if libctf-bootstrap
maybe-all-stage4-libctf: all-stage4-libctf
all-stage4: all-stage4-libctf
TARGET-stage4-libctf = $(TARGET-libctf)
all-stage4-libctf: configure-stage4-libctf
	@[ $(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)/libctf && \
	 \
	$(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-libctf)

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


.PHONY: all-stageprofile-libctf maybe-all-stageprofile-libctf
.PHONY: clean-stageprofile-libctf maybe-clean-stageprofile-libctf
maybe-all-stageprofile-libctf:
maybe-clean-stageprofile-libctf:
@if libctf-bootstrap
maybe-all-stageprofile-libctf: all-stageprofile-libctf
all-stageprofile: all-stageprofile-libctf
TARGET-stageprofile-libctf = $(TARGET-libctf)
all-stageprofile-libctf: configure-stageprofile-libctf
	@[ $(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)/libctf && \
	 \
	$(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-libctf)

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


.PHONY: all-stagetrain-libctf maybe-all-stagetrain-libctf
.PHONY: clean-stagetrain-libctf maybe-clean-stagetrain-libctf
maybe-all-stagetrain-libctf:
maybe-clean-stagetrain-libctf:
@if libctf-bootstrap
maybe-all-stagetrain-libctf: all-stagetrain-libctf
all-stagetrain: all-stagetrain-libctf
TARGET-stagetrain-libctf = $(TARGET-libctf)
all-stagetrain-libctf: configure-stagetrain-libctf
	@[ $(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)/libctf && \
	 \
	$(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-libctf)

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


.PHONY: all-stagefeedback-libctf maybe-all-stagefeedback-libctf
.PHONY: clean-stagefeedback-libctf maybe-clean-stagefeedback-libctf
maybe-all-stagefeedback-libctf:
maybe-clean-stagefeedback-libctf:
@if libctf-bootstrap
maybe-all-stagefeedback-libctf: all-stagefeedback-libctf
all-stagefeedback: all-stagefeedback-libctf
TARGET-stagefeedback-libctf = $(TARGET-libctf)
all-stagefeedback-libctf: configure-stagefeedback-libctf
	@[ $(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)/libctf && \
	 \
	$(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-libctf)

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


.PHONY: all-stageautoprofile-libctf maybe-all-stageautoprofile-libctf
.PHONY: clean-stageautoprofile-libctf maybe-clean-stageautoprofile-libctf
maybe-all-stageautoprofile-libctf:
maybe-clean-stageautoprofile-libctf:
@if libctf-bootstrap
maybe-all-stageautoprofile-libctf: all-stageautoprofile-libctf
all-stageautoprofile: all-stageautoprofile-libctf
TARGET-stageautoprofile-libctf = $(TARGET-libctf)
all-stageautoprofile-libctf: configure-stageautoprofile-libctf
	@[ $(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)/libctf && \
	$$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-libctf)

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


.PHONY: all-stageautofeedback-libctf maybe-all-stageautofeedback-libctf
.PHONY: clean-stageautofeedback-libctf maybe-clean-stageautofeedback-libctf
maybe-all-stageautofeedback-libctf:
maybe-clean-stageautofeedback-libctf:
@if libctf-bootstrap
maybe-all-stageautofeedback-libctf: all-stageautofeedback-libctf
all-stageautofeedback: all-stageautofeedback-libctf
TARGET-stageautofeedback-libctf = $(TARGET-libctf)
all-stageautofeedback-libctf: configure-stageautofeedback-libctf
	@[ $(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)/libctf && \
	 \
	$(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-libctf)

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





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

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

@endif libctf

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

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

@endif libctf

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

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

@endif libctf

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

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

info-libctf: \
    configure-libctf 
	@[ -f ./libctf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libctf"; \
	(cd $(HOST_SUBDIR)/libctf && \
	  $(MAKE) $(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 libctf

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

dvi-libctf: \
    configure-libctf 
	@[ -f ./libctf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libctf"; \
	(cd $(HOST_SUBDIR)/libctf && \
	  $(MAKE) $(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 libctf

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

pdf-libctf: \
    configure-libctf 
	@[ -f ./libctf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libctf"; \
	(cd $(HOST_SUBDIR)/libctf && \
	  $(MAKE) $(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 libctf

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

html-libctf: \
    configure-libctf 
	@[ -f ./libctf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libctf"; \
	(cd $(HOST_SUBDIR)/libctf && \
	  $(MAKE) $(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 libctf

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

TAGS-libctf: \
    configure-libctf 
	@[ -f ./libctf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libctf"; \
	(cd $(HOST_SUBDIR)/libctf && \
	  $(MAKE) $(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 libctf

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

install-info-libctf: \
    configure-libctf \
    info-libctf 
	@[ -f ./libctf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libctf"; \
	(cd $(HOST_SUBDIR)/libctf && \
	  $(MAKE) $(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 libctf

.PHONY: maybe-install-dvi-libctf install-dvi-libctf
maybe-install-dvi-libctf:
@if libctf
maybe-install-dvi-libctf: install-dvi-libctf

install-dvi-libctf: \
    configure-libctf \
    dvi-libctf 
	@[ -f ./libctf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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-dvi in libctf"; \
	(cd $(HOST_SUBDIR)/libctf && \
	  $(MAKE) $(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-dvi) \
	  || exit 1

@endif libctf

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

install-pdf-libctf: \
    configure-libctf \
    pdf-libctf 
	@[ -f ./libctf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libctf"; \
	(cd $(HOST_SUBDIR)/libctf && \
	  $(MAKE) $(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 libctf

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

install-html-libctf: \
    configure-libctf \
    html-libctf 
	@[ -f ./libctf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libctf"; \
	(cd $(HOST_SUBDIR)/libctf && \
	  $(MAKE) $(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 libctf

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

installcheck-libctf: \
    configure-libctf 
	@[ -f ./libctf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libctf"; \
	(cd $(HOST_SUBDIR)/libctf && \
	  $(MAKE) $(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 libctf

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

mostlyclean-libctf: 
	@[ -f ./libctf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libctf"; \
	(cd $(HOST_SUBDIR)/libctf && \
	  $(MAKE) $(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 libctf

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

clean-libctf: 
	@[ -f ./libctf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libctf"; \
	(cd $(HOST_SUBDIR)/libctf && \
	  $(MAKE) $(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 libctf

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

distclean-libctf: 
	@[ -f ./libctf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libctf"; \
	(cd $(HOST_SUBDIR)/libctf && \
	  $(MAKE) $(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 libctf

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

maintainer-clean-libctf: 
	@[ -f ./libctf/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libctf"; \
	(cd $(HOST_SUBDIR)/libctf && \
	  $(MAKE) $(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 libctf



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



.PHONY: configure-stage1-libsframe maybe-configure-stage1-libsframe
maybe-configure-stage1-libsframe:
@if libsframe-bootstrap
maybe-configure-stage1-libsframe: configure-stage1-libsframe
configure-stage1-libsframe:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libsframe/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)/libsframe; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe; \
	cd $(HOST_SUBDIR)/libsframe || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libsframe/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsframe; \
	$(SHELL) $$s/$$module_srcdir/configure \
	  --srcdir=$${topdir}/$$module_srcdir \
	  $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
	  --target=${target_alias} \
	   \
	  $(STAGE1_CONFIGURE_FLAGS)
@endif libsframe-bootstrap

.PHONY: configure-stage2-libsframe maybe-configure-stage2-libsframe
maybe-configure-stage2-libsframe:
@if libsframe-bootstrap
maybe-configure-stage2-libsframe: configure-stage2-libsframe
configure-stage2-libsframe:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libsframe/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)/libsframe; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe; \
	cd $(HOST_SUBDIR)/libsframe || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libsframe/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsframe; \
	$(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 libsframe-bootstrap

.PHONY: configure-stage3-libsframe maybe-configure-stage3-libsframe
maybe-configure-stage3-libsframe:
@if libsframe-bootstrap
maybe-configure-stage3-libsframe: configure-stage3-libsframe
configure-stage3-libsframe:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libsframe/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)/libsframe; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe; \
	cd $(HOST_SUBDIR)/libsframe || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libsframe/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsframe; \
	$(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 libsframe-bootstrap

.PHONY: configure-stage4-libsframe maybe-configure-stage4-libsframe
maybe-configure-stage4-libsframe:
@if libsframe-bootstrap
maybe-configure-stage4-libsframe: configure-stage4-libsframe
configure-stage4-libsframe:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libsframe/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)/libsframe; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe; \
	cd $(HOST_SUBDIR)/libsframe || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libsframe/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsframe; \
	$(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 libsframe-bootstrap

.PHONY: configure-stageprofile-libsframe maybe-configure-stageprofile-libsframe
maybe-configure-stageprofile-libsframe:
@if libsframe-bootstrap
maybe-configure-stageprofile-libsframe: configure-stageprofile-libsframe
configure-stageprofile-libsframe:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libsframe/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)/libsframe; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe; \
	cd $(HOST_SUBDIR)/libsframe || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libsframe/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsframe; \
	$(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 libsframe-bootstrap

.PHONY: configure-stagetrain-libsframe maybe-configure-stagetrain-libsframe
maybe-configure-stagetrain-libsframe:
@if libsframe-bootstrap
maybe-configure-stagetrain-libsframe: configure-stagetrain-libsframe
configure-stagetrain-libsframe:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libsframe/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)/libsframe; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe; \
	cd $(HOST_SUBDIR)/libsframe || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libsframe/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsframe; \
	$(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 libsframe-bootstrap

.PHONY: configure-stagefeedback-libsframe maybe-configure-stagefeedback-libsframe
maybe-configure-stagefeedback-libsframe:
@if libsframe-bootstrap
maybe-configure-stagefeedback-libsframe: configure-stagefeedback-libsframe
configure-stagefeedback-libsframe:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libsframe/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)/libsframe; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe; \
	cd $(HOST_SUBDIR)/libsframe || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libsframe/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsframe; \
	$(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 libsframe-bootstrap

.PHONY: configure-stageautoprofile-libsframe maybe-configure-stageautoprofile-libsframe
maybe-configure-stageautoprofile-libsframe:
@if libsframe-bootstrap
maybe-configure-stageautoprofile-libsframe: configure-stageautoprofile-libsframe
configure-stageautoprofile-libsframe:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libsframe/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)/libsframe; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe; \
	cd $(HOST_SUBDIR)/libsframe || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libsframe/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsframe; \
	$(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 libsframe-bootstrap

.PHONY: configure-stageautofeedback-libsframe maybe-configure-stageautofeedback-libsframe
maybe-configure-stageautofeedback-libsframe:
@if libsframe-bootstrap
maybe-configure-stageautofeedback-libsframe: configure-stageautofeedback-libsframe
configure-stageautofeedback-libsframe:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	test ! -f $(HOST_SUBDIR)/libsframe/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)/libsframe; \
	$(SHELL) $(srcdir)/mkinstalldirs $(HOST_SUBDIR)/libsframe; \
	cd $(HOST_SUBDIR)/libsframe || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(HOST_SUBDIR)/libsframe/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libsframe; \
	$(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 libsframe-bootstrap





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



.PHONY: all-stage1-libsframe maybe-all-stage1-libsframe
.PHONY: clean-stage1-libsframe maybe-clean-stage1-libsframe
maybe-all-stage1-libsframe:
maybe-clean-stage1-libsframe:
@if libsframe-bootstrap
maybe-all-stage1-libsframe: all-stage1-libsframe
all-stage1: all-stage1-libsframe
TARGET-stage1-libsframe = $(TARGET-libsframe)
all-stage1-libsframe: configure-stage1-libsframe
	@[ $(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)/libsframe && \
	 \
	$(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-libsframe)

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


.PHONY: all-stage2-libsframe maybe-all-stage2-libsframe
.PHONY: clean-stage2-libsframe maybe-clean-stage2-libsframe
maybe-all-stage2-libsframe:
maybe-clean-stage2-libsframe:
@if libsframe-bootstrap
maybe-all-stage2-libsframe: all-stage2-libsframe
all-stage2: all-stage2-libsframe
TARGET-stage2-libsframe = $(TARGET-libsframe)
all-stage2-libsframe: configure-stage2-libsframe
	@[ $(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)/libsframe && \
	 \
	$(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-libsframe)

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


.PHONY: all-stage3-libsframe maybe-all-stage3-libsframe
.PHONY: clean-stage3-libsframe maybe-clean-stage3-libsframe
maybe-all-stage3-libsframe:
maybe-clean-stage3-libsframe:
@if libsframe-bootstrap
maybe-all-stage3-libsframe: all-stage3-libsframe
all-stage3: all-stage3-libsframe
TARGET-stage3-libsframe = $(TARGET-libsframe)
all-stage3-libsframe: configure-stage3-libsframe
	@[ $(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)/libsframe && \
	 \
	$(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-libsframe)

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


.PHONY: all-stage4-libsframe maybe-all-stage4-libsframe
.PHONY: clean-stage4-libsframe maybe-clean-stage4-libsframe
maybe-all-stage4-libsframe:
maybe-clean-stage4-libsframe:
@if libsframe-bootstrap
maybe-all-stage4-libsframe: all-stage4-libsframe
all-stage4: all-stage4-libsframe
TARGET-stage4-libsframe = $(TARGET-libsframe)
all-stage4-libsframe: configure-stage4-libsframe
	@[ $(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)/libsframe && \
	 \
	$(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-libsframe)

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


.PHONY: all-stageprofile-libsframe maybe-all-stageprofile-libsframe
.PHONY: clean-stageprofile-libsframe maybe-clean-stageprofile-libsframe
maybe-all-stageprofile-libsframe:
maybe-clean-stageprofile-libsframe:
@if libsframe-bootstrap
maybe-all-stageprofile-libsframe: all-stageprofile-libsframe
all-stageprofile: all-stageprofile-libsframe
TARGET-stageprofile-libsframe = $(TARGET-libsframe)
all-stageprofile-libsframe: configure-stageprofile-libsframe
	@[ $(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)/libsframe && \
	 \
	$(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-libsframe)

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


.PHONY: all-stagetrain-libsframe maybe-all-stagetrain-libsframe
.PHONY: clean-stagetrain-libsframe maybe-clean-stagetrain-libsframe
maybe-all-stagetrain-libsframe:
maybe-clean-stagetrain-libsframe:
@if libsframe-bootstrap
maybe-all-stagetrain-libsframe: all-stagetrain-libsframe
all-stagetrain: all-stagetrain-libsframe
TARGET-stagetrain-libsframe = $(TARGET-libsframe)
all-stagetrain-libsframe: configure-stagetrain-libsframe
	@[ $(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)/libsframe && \
	 \
	$(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-libsframe)

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


.PHONY: all-stagefeedback-libsframe maybe-all-stagefeedback-libsframe
.PHONY: clean-stagefeedback-libsframe maybe-clean-stagefeedback-libsframe
maybe-all-stagefeedback-libsframe:
maybe-clean-stagefeedback-libsframe:
@if libsframe-bootstrap
maybe-all-stagefeedback-libsframe: all-stagefeedback-libsframe
all-stagefeedback: all-stagefeedback-libsframe
TARGET-stagefeedback-libsframe = $(TARGET-libsframe)
all-stagefeedback-libsframe: configure-stagefeedback-libsframe
	@[ $(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)/libsframe && \
	 \
	$(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-libsframe)

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


.PHONY: all-stageautoprofile-libsframe maybe-all-stageautoprofile-libsframe
.PHONY: clean-stageautoprofile-libsframe maybe-clean-stageautoprofile-libsframe
maybe-all-stageautoprofile-libsframe:
maybe-clean-stageautoprofile-libsframe:
@if libsframe-bootstrap
maybe-all-stageautoprofile-libsframe: all-stageautoprofile-libsframe
all-stageautoprofile: all-stageautoprofile-libsframe
TARGET-stageautoprofile-libsframe = $(TARGET-libsframe)
all-stageautoprofile-libsframe: configure-stageautoprofile-libsframe
	@[ $(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)/libsframe && \
	$$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-libsframe)

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


.PHONY: all-stageautofeedback-libsframe maybe-all-stageautofeedback-libsframe
.PHONY: clean-stageautofeedback-libsframe maybe-clean-stageautofeedback-libsframe
maybe-all-stageautofeedback-libsframe:
maybe-clean-stageautofeedback-libsframe:
@if libsframe-bootstrap
maybe-all-stageautofeedback-libsframe: all-stageautofeedback-libsframe
all-stageautofeedback: all-stageautofeedback-libsframe
TARGET-stageautofeedback-libsframe = $(TARGET-libsframe)
all-stageautofeedback-libsframe: configure-stageautofeedback-libsframe
	@[ $(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)/libsframe && \
	 \
	$(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-libsframe)

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





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

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

@endif libsframe

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

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

@endif libsframe

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

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

@endif libsframe

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

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

info-libsframe: \
    configure-libsframe 
	@[ -f ./libsframe/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libsframe"; \
	(cd $(HOST_SUBDIR)/libsframe && \
	  $(MAKE) $(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 libsframe

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

dvi-libsframe: \
    configure-libsframe 
	@[ -f ./libsframe/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libsframe"; \
	(cd $(HOST_SUBDIR)/libsframe && \
	  $(MAKE) $(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 libsframe

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

pdf-libsframe: \
    configure-libsframe 
	@[ -f ./libsframe/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libsframe"; \
	(cd $(HOST_SUBDIR)/libsframe && \
	  $(MAKE) $(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 libsframe

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

html-libsframe: \
    configure-libsframe 
	@[ -f ./libsframe/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libsframe"; \
	(cd $(HOST_SUBDIR)/libsframe && \
	  $(MAKE) $(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 libsframe

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

TAGS-libsframe: \
    configure-libsframe 
	@[ -f ./libsframe/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libsframe"; \
	(cd $(HOST_SUBDIR)/libsframe && \
	  $(MAKE) $(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 libsframe

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

install-info-libsframe: \
    configure-libsframe \
    info-libsframe 
	@[ -f ./libsframe/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libsframe"; \
	(cd $(HOST_SUBDIR)/libsframe && \
	  $(MAKE) $(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 libsframe

.PHONY: maybe-install-dvi-libsframe install-dvi-libsframe
maybe-install-dvi-libsframe:
@if libsframe
maybe-install-dvi-libsframe: install-dvi-libsframe

install-dvi-libsframe: \
    configure-libsframe \
    dvi-libsframe 
	@[ -f ./libsframe/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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-dvi in libsframe"; \
	(cd $(HOST_SUBDIR)/libsframe && \
	  $(MAKE) $(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-dvi) \
	  || exit 1

@endif libsframe

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

install-pdf-libsframe: \
    configure-libsframe \
    pdf-libsframe 
	@[ -f ./libsframe/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libsframe"; \
	(cd $(HOST_SUBDIR)/libsframe && \
	  $(MAKE) $(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 libsframe

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

install-html-libsframe: \
    configure-libsframe \
    html-libsframe 
	@[ -f ./libsframe/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libsframe"; \
	(cd $(HOST_SUBDIR)/libsframe && \
	  $(MAKE) $(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 libsframe

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

installcheck-libsframe: \
    configure-libsframe 
	@[ -f ./libsframe/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libsframe"; \
	(cd $(HOST_SUBDIR)/libsframe && \
	  $(MAKE) $(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 libsframe

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

mostlyclean-libsframe: 
	@[ -f ./libsframe/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libsframe"; \
	(cd $(HOST_SUBDIR)/libsframe && \
	  $(MAKE) $(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 libsframe

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

clean-libsframe: 
	@[ -f ./libsframe/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libsframe"; \
	(cd $(HOST_SUBDIR)/libsframe && \
	  $(MAKE) $(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 libsframe

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

distclean-libsframe: 
	@[ -f ./libsframe/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libsframe"; \
	(cd $(HOST_SUBDIR)/libsframe && \
	  $(MAKE) $(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 libsframe

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

maintainer-clean-libsframe: 
	@[ -f ./libsframe/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; 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 libsframe"; \
	(cd $(HOST_SUBDIR)/libsframe && \
	  $(MAKE) $(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 libsframe



# ---------------------------------------
# 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-dvi-target-libstdc++-v3 install-dvi-target-libstdc++-v3
maybe-install-dvi-target-libstdc++-v3:
@if target-libstdc++-v3
maybe-install-dvi-target-libstdc++-v3: install-dvi-target-libstdc++-v3

install-dvi-target-libstdc++-v3: \
    configure-target-libstdc++-v3 \
    dvi-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-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}" \
	           install-dvi) \
	  || 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-dvi-target-libsanitizer install-dvi-target-libsanitizer
maybe-install-dvi-target-libsanitizer:
@if target-libsanitizer
maybe-install-dvi-target-libsanitizer: install-dvi-target-libsanitizer

install-dvi-target-libsanitizer: \
    configure-target-libsanitizer \
    dvi-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-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}" \
	           install-dvi) \
	  || 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-dvi-target-libvtv install-dvi-target-libvtv
maybe-install-dvi-target-libvtv:
@if target-libvtv
maybe-install-dvi-target-libvtv: install-dvi-target-libvtv

install-dvi-target-libvtv: \
    configure-target-libvtv \
    dvi-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-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}" \
	           install-dvi) \
	  || 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-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-dvi-target-libssp install-dvi-target-libssp
maybe-install-dvi-target-libssp:
@if target-libssp
maybe-install-dvi-target-libssp: install-dvi-target-libssp

install-dvi-target-libssp: \
    configure-target-libssp \
    dvi-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-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}" \
	           install-dvi) \
	  || 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-dvi-target-newlib install-dvi-target-newlib
maybe-install-dvi-target-newlib:
@if target-newlib
maybe-install-dvi-target-newlib: install-dvi-target-newlib

install-dvi-target-newlib: \
    configure-target-newlib \
    dvi-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-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}" \
	           install-dvi) \
	  || 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

# libgcc doesn't support TAGS.
TAGS-target-libgcc:

@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-dvi-target-libgcc install-dvi-target-libgcc
maybe-install-dvi-target-libgcc:
@if target-libgcc
maybe-install-dvi-target-libgcc: install-dvi-target-libgcc

# libgcc doesn't support install-dvi.
install-dvi-target-libgcc:

@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: 
	@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: configure-stage1-target-libbacktrace maybe-configure-stage1-target-libbacktrace
maybe-configure-stage1-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-configure-stage1-target-libbacktrace: configure-stage1-target-libbacktrace
configure-stage1-target-libbacktrace:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libbacktrace-bootstrap

.PHONY: configure-stage2-target-libbacktrace maybe-configure-stage2-target-libbacktrace
maybe-configure-stage2-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-configure-stage2-target-libbacktrace: configure-stage2-target-libbacktrace
configure-stage2-target-libbacktrace:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libbacktrace-bootstrap

.PHONY: configure-stage3-target-libbacktrace maybe-configure-stage3-target-libbacktrace
maybe-configure-stage3-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-configure-stage3-target-libbacktrace: configure-stage3-target-libbacktrace
configure-stage3-target-libbacktrace:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libbacktrace-bootstrap

.PHONY: configure-stage4-target-libbacktrace maybe-configure-stage4-target-libbacktrace
maybe-configure-stage4-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-configure-stage4-target-libbacktrace: configure-stage4-target-libbacktrace
configure-stage4-target-libbacktrace:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libbacktrace-bootstrap

.PHONY: configure-stageprofile-target-libbacktrace maybe-configure-stageprofile-target-libbacktrace
maybe-configure-stageprofile-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-configure-stageprofile-target-libbacktrace: configure-stageprofile-target-libbacktrace
configure-stageprofile-target-libbacktrace:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libbacktrace-bootstrap

.PHONY: configure-stagetrain-target-libbacktrace maybe-configure-stagetrain-target-libbacktrace
maybe-configure-stagetrain-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-configure-stagetrain-target-libbacktrace: configure-stagetrain-target-libbacktrace
configure-stagetrain-target-libbacktrace:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libbacktrace-bootstrap

.PHONY: configure-stagefeedback-target-libbacktrace maybe-configure-stagefeedback-target-libbacktrace
maybe-configure-stagefeedback-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-configure-stagefeedback-target-libbacktrace: configure-stagefeedback-target-libbacktrace
configure-stagefeedback-target-libbacktrace:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libbacktrace-bootstrap

.PHONY: configure-stageautoprofile-target-libbacktrace maybe-configure-stageautoprofile-target-libbacktrace
maybe-configure-stageautoprofile-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-configure-stageautoprofile-target-libbacktrace: configure-stageautoprofile-target-libbacktrace
configure-stageautoprofile-target-libbacktrace:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libbacktrace-bootstrap

.PHONY: configure-stageautofeedback-target-libbacktrace maybe-configure-stageautofeedback-target-libbacktrace
maybe-configure-stageautofeedback-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-configure-stageautofeedback-target-libbacktrace: configure-stageautofeedback-target-libbacktrace
configure-stageautofeedback-target-libbacktrace:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libbacktrace
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libbacktrace; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libbacktrace-bootstrap





.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
	@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: all-stage1-target-libbacktrace maybe-all-stage1-target-libbacktrace
.PHONY: clean-stage1-target-libbacktrace maybe-clean-stage1-target-libbacktrace
maybe-all-stage1-target-libbacktrace:
maybe-clean-stage1-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-all-stage1-target-libbacktrace: all-stage1-target-libbacktrace
all-stage1: all-stage1-target-libbacktrace
TARGET-stage1-target-libbacktrace = $(TARGET-target-libbacktrace)
all-stage1-target-libbacktrace: configure-stage1-target-libbacktrace
	@[ $(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)/libbacktrace && \
	 \
	$(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-libbacktrace)

maybe-clean-stage1-target-libbacktrace: clean-stage1-target-libbacktrace
clean-stage1: clean-stage1-target-libbacktrace
clean-stage1-target-libbacktrace:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage1-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)  \
	  clean
@endif target-libbacktrace-bootstrap


.PHONY: all-stage2-target-libbacktrace maybe-all-stage2-target-libbacktrace
.PHONY: clean-stage2-target-libbacktrace maybe-clean-stage2-target-libbacktrace
maybe-all-stage2-target-libbacktrace:
maybe-clean-stage2-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-all-stage2-target-libbacktrace: all-stage2-target-libbacktrace
all-stage2: all-stage2-target-libbacktrace
TARGET-stage2-target-libbacktrace = $(TARGET-target-libbacktrace)
all-stage2-target-libbacktrace: configure-stage2-target-libbacktrace
	@[ $(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)/libbacktrace && \
	 \
	$(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-libbacktrace)

maybe-clean-stage2-target-libbacktrace: clean-stage2-target-libbacktrace
clean-stage2: clean-stage2-target-libbacktrace
clean-stage2-target-libbacktrace:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage2-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libbacktrace-bootstrap


.PHONY: all-stage3-target-libbacktrace maybe-all-stage3-target-libbacktrace
.PHONY: clean-stage3-target-libbacktrace maybe-clean-stage3-target-libbacktrace
maybe-all-stage3-target-libbacktrace:
maybe-clean-stage3-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-all-stage3-target-libbacktrace: all-stage3-target-libbacktrace
all-stage3: all-stage3-target-libbacktrace
TARGET-stage3-target-libbacktrace = $(TARGET-target-libbacktrace)
all-stage3-target-libbacktrace: configure-stage3-target-libbacktrace
	@[ $(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)/libbacktrace && \
	 \
	$(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-libbacktrace)

maybe-clean-stage3-target-libbacktrace: clean-stage3-target-libbacktrace
clean-stage3: clean-stage3-target-libbacktrace
clean-stage3-target-libbacktrace:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage3-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libbacktrace-bootstrap


.PHONY: all-stage4-target-libbacktrace maybe-all-stage4-target-libbacktrace
.PHONY: clean-stage4-target-libbacktrace maybe-clean-stage4-target-libbacktrace
maybe-all-stage4-target-libbacktrace:
maybe-clean-stage4-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-all-stage4-target-libbacktrace: all-stage4-target-libbacktrace
all-stage4: all-stage4-target-libbacktrace
TARGET-stage4-target-libbacktrace = $(TARGET-target-libbacktrace)
all-stage4-target-libbacktrace: configure-stage4-target-libbacktrace
	@[ $(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)/libbacktrace && \
	 \
	$(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-libbacktrace)

maybe-clean-stage4-target-libbacktrace: clean-stage4-target-libbacktrace
clean-stage4: clean-stage4-target-libbacktrace
clean-stage4-target-libbacktrace:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage4-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libbacktrace-bootstrap


.PHONY: all-stageprofile-target-libbacktrace maybe-all-stageprofile-target-libbacktrace
.PHONY: clean-stageprofile-target-libbacktrace maybe-clean-stageprofile-target-libbacktrace
maybe-all-stageprofile-target-libbacktrace:
maybe-clean-stageprofile-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-all-stageprofile-target-libbacktrace: all-stageprofile-target-libbacktrace
all-stageprofile: all-stageprofile-target-libbacktrace
TARGET-stageprofile-target-libbacktrace = $(TARGET-target-libbacktrace)
all-stageprofile-target-libbacktrace: configure-stageprofile-target-libbacktrace
	@[ $(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)/libbacktrace && \
	 \
	$(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-libbacktrace)

maybe-clean-stageprofile-target-libbacktrace: clean-stageprofile-target-libbacktrace
clean-stageprofile: clean-stageprofile-target-libbacktrace
clean-stageprofile-target-libbacktrace:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageprofile-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libbacktrace-bootstrap


.PHONY: all-stagetrain-target-libbacktrace maybe-all-stagetrain-target-libbacktrace
.PHONY: clean-stagetrain-target-libbacktrace maybe-clean-stagetrain-target-libbacktrace
maybe-all-stagetrain-target-libbacktrace:
maybe-clean-stagetrain-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-all-stagetrain-target-libbacktrace: all-stagetrain-target-libbacktrace
all-stagetrain: all-stagetrain-target-libbacktrace
TARGET-stagetrain-target-libbacktrace = $(TARGET-target-libbacktrace)
all-stagetrain-target-libbacktrace: configure-stagetrain-target-libbacktrace
	@[ $(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)/libbacktrace && \
	 \
	$(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-libbacktrace)

maybe-clean-stagetrain-target-libbacktrace: clean-stagetrain-target-libbacktrace
clean-stagetrain: clean-stagetrain-target-libbacktrace
clean-stagetrain-target-libbacktrace:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagetrain-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libbacktrace-bootstrap


.PHONY: all-stagefeedback-target-libbacktrace maybe-all-stagefeedback-target-libbacktrace
.PHONY: clean-stagefeedback-target-libbacktrace maybe-clean-stagefeedback-target-libbacktrace
maybe-all-stagefeedback-target-libbacktrace:
maybe-clean-stagefeedback-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-all-stagefeedback-target-libbacktrace: all-stagefeedback-target-libbacktrace
all-stagefeedback: all-stagefeedback-target-libbacktrace
TARGET-stagefeedback-target-libbacktrace = $(TARGET-target-libbacktrace)
all-stagefeedback-target-libbacktrace: configure-stagefeedback-target-libbacktrace
	@[ $(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)/libbacktrace && \
	 \
	$(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-libbacktrace)

maybe-clean-stagefeedback-target-libbacktrace: clean-stagefeedback-target-libbacktrace
clean-stagefeedback: clean-stagefeedback-target-libbacktrace
clean-stagefeedback-target-libbacktrace:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagefeedback-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libbacktrace-bootstrap


.PHONY: all-stageautoprofile-target-libbacktrace maybe-all-stageautoprofile-target-libbacktrace
.PHONY: clean-stageautoprofile-target-libbacktrace maybe-clean-stageautoprofile-target-libbacktrace
maybe-all-stageautoprofile-target-libbacktrace:
maybe-clean-stageautoprofile-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-all-stageautoprofile-target-libbacktrace: all-stageautoprofile-target-libbacktrace
all-stageautoprofile: all-stageautoprofile-target-libbacktrace
TARGET-stageautoprofile-target-libbacktrace = $(TARGET-target-libbacktrace)
all-stageautoprofile-target-libbacktrace: configure-stageautoprofile-target-libbacktrace
	@[ $(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)/libbacktrace && \
	$$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-libbacktrace)

maybe-clean-stageautoprofile-target-libbacktrace: clean-stageautoprofile-target-libbacktrace
clean-stageautoprofile: clean-stageautoprofile-target-libbacktrace
clean-stageautoprofile-target-libbacktrace:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautoprofile-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libbacktrace-bootstrap


.PHONY: all-stageautofeedback-target-libbacktrace maybe-all-stageautofeedback-target-libbacktrace
.PHONY: clean-stageautofeedback-target-libbacktrace maybe-clean-stageautofeedback-target-libbacktrace
maybe-all-stageautofeedback-target-libbacktrace:
maybe-clean-stageautofeedback-target-libbacktrace:
@if target-libbacktrace-bootstrap
maybe-all-stageautofeedback-target-libbacktrace: all-stageautofeedback-target-libbacktrace
all-stageautofeedback: all-stageautofeedback-target-libbacktrace
TARGET-stageautofeedback-target-libbacktrace = $(TARGET-target-libbacktrace)
all-stageautofeedback-target-libbacktrace: configure-stageautofeedback-target-libbacktrace
	@[ $(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)/libbacktrace && \
	 \
	$(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-libbacktrace)

maybe-clean-stageautofeedback-target-libbacktrace: clean-stageautofeedback-target-libbacktrace
clean-stageautofeedback: clean-stageautofeedback-target-libbacktrace
clean-stageautofeedback-target-libbacktrace:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/libbacktrace/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautofeedback-libbacktrace/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libbacktrace && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libbacktrace-bootstrap






.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-dvi-target-libbacktrace install-dvi-target-libbacktrace
maybe-install-dvi-target-libbacktrace:
@if target-libbacktrace
maybe-install-dvi-target-libbacktrace: install-dvi-target-libbacktrace

install-dvi-target-libbacktrace: \
    configure-target-libbacktrace \
    dvi-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-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}" \
	           install-dvi) \
	  || 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-dvi-target-libquadmath install-dvi-target-libquadmath
maybe-install-dvi-target-libquadmath:
@if target-libquadmath
maybe-install-dvi-target-libquadmath: install-dvi-target-libquadmath

install-dvi-target-libquadmath: \
    configure-target-libquadmath \
    dvi-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-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}" \
	           install-dvi) \
	  || 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-dvi-target-libgfortran install-dvi-target-libgfortran
maybe-install-dvi-target-libgfortran:
@if target-libgfortran
maybe-install-dvi-target-libgfortran: install-dvi-target-libgfortran

install-dvi-target-libgfortran: \
    configure-target-libgfortran \
    dvi-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-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}" \
	           install-dvi) \
	  || 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

# libobjc doesn't support TAGS.
TAGS-target-libobjc:

@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-dvi-target-libobjc install-dvi-target-libobjc
maybe-install-dvi-target-libobjc:
@if target-libobjc
maybe-install-dvi-target-libobjc: install-dvi-target-libobjc

# libobjc doesn't support install-dvi.
install-dvi-target-libobjc:

@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-dvi-target-libgo install-dvi-target-libgo
maybe-install-dvi-target-libgo:
@if target-libgo
maybe-install-dvi-target-libgo: install-dvi-target-libgo

install-dvi-target-libgo: \
    configure-target-libgo \
    dvi-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-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}" \
	           install-dvi) \
	  || 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-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: 
	@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: configure-stage1-target-libphobos maybe-configure-stage1-target-libphobos
maybe-configure-stage1-target-libphobos:
@if target-libphobos-bootstrap
maybe-configure-stage1-target-libphobos: configure-stage1-target-libphobos
configure-stage1-target-libphobos:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libphobos
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libphobos; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libphobos-bootstrap

.PHONY: configure-stage2-target-libphobos maybe-configure-stage2-target-libphobos
maybe-configure-stage2-target-libphobos:
@if target-libphobos-bootstrap
maybe-configure-stage2-target-libphobos: configure-stage2-target-libphobos
configure-stage2-target-libphobos:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libphobos
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libphobos; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libphobos-bootstrap

.PHONY: configure-stage3-target-libphobos maybe-configure-stage3-target-libphobos
maybe-configure-stage3-target-libphobos:
@if target-libphobos-bootstrap
maybe-configure-stage3-target-libphobos: configure-stage3-target-libphobos
configure-stage3-target-libphobos:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libphobos
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libphobos; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libphobos-bootstrap

.PHONY: configure-stage4-target-libphobos maybe-configure-stage4-target-libphobos
maybe-configure-stage4-target-libphobos:
@if target-libphobos-bootstrap
maybe-configure-stage4-target-libphobos: configure-stage4-target-libphobos
configure-stage4-target-libphobos:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libphobos
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libphobos; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libphobos-bootstrap

.PHONY: configure-stageprofile-target-libphobos maybe-configure-stageprofile-target-libphobos
maybe-configure-stageprofile-target-libphobos:
@if target-libphobos-bootstrap
maybe-configure-stageprofile-target-libphobos: configure-stageprofile-target-libphobos
configure-stageprofile-target-libphobos:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libphobos
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libphobos; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libphobos-bootstrap

.PHONY: configure-stagetrain-target-libphobos maybe-configure-stagetrain-target-libphobos
maybe-configure-stagetrain-target-libphobos:
@if target-libphobos-bootstrap
maybe-configure-stagetrain-target-libphobos: configure-stagetrain-target-libphobos
configure-stagetrain-target-libphobos:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libphobos
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libphobos; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libphobos-bootstrap

.PHONY: configure-stagefeedback-target-libphobos maybe-configure-stagefeedback-target-libphobos
maybe-configure-stagefeedback-target-libphobos:
@if target-libphobos-bootstrap
maybe-configure-stagefeedback-target-libphobos: configure-stagefeedback-target-libphobos
configure-stagefeedback-target-libphobos:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libphobos
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libphobos; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libphobos-bootstrap

.PHONY: configure-stageautoprofile-target-libphobos maybe-configure-stageautoprofile-target-libphobos
maybe-configure-stageautoprofile-target-libphobos:
@if target-libphobos-bootstrap
maybe-configure-stageautoprofile-target-libphobos: configure-stageautoprofile-target-libphobos
configure-stageautoprofile-target-libphobos:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libphobos
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libphobos; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libphobos-bootstrap

.PHONY: configure-stageautofeedback-target-libphobos maybe-configure-stageautofeedback-target-libphobos
maybe-configure-stageautofeedback-target-libphobos:
@if target-libphobos-bootstrap
maybe-configure-stageautofeedback-target-libphobos: configure-stageautofeedback-target-libphobos
configure-stageautofeedback-target-libphobos:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libphobos
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libphobos; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libphobos-bootstrap





.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
	@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: all-stage1-target-libphobos maybe-all-stage1-target-libphobos
.PHONY: clean-stage1-target-libphobos maybe-clean-stage1-target-libphobos
maybe-all-stage1-target-libphobos:
maybe-clean-stage1-target-libphobos:
@if target-libphobos-bootstrap
maybe-all-stage1-target-libphobos: all-stage1-target-libphobos
all-stage1: all-stage1-target-libphobos
TARGET-stage1-target-libphobos = $(TARGET-target-libphobos)
all-stage1-target-libphobos: configure-stage1-target-libphobos
	@[ $(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)/libphobos && \
	 \
	$(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-libphobos)

maybe-clean-stage1-target-libphobos: clean-stage1-target-libphobos
clean-stage1: clean-stage1-target-libphobos
clean-stage1-target-libphobos:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage1-libphobos/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libphobos && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)  \
	  clean
@endif target-libphobos-bootstrap


.PHONY: all-stage2-target-libphobos maybe-all-stage2-target-libphobos
.PHONY: clean-stage2-target-libphobos maybe-clean-stage2-target-libphobos
maybe-all-stage2-target-libphobos:
maybe-clean-stage2-target-libphobos:
@if target-libphobos-bootstrap
maybe-all-stage2-target-libphobos: all-stage2-target-libphobos
all-stage2: all-stage2-target-libphobos
TARGET-stage2-target-libphobos = $(TARGET-target-libphobos)
all-stage2-target-libphobos: configure-stage2-target-libphobos
	@[ $(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)/libphobos && \
	 \
	$(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-libphobos)

maybe-clean-stage2-target-libphobos: clean-stage2-target-libphobos
clean-stage2: clean-stage2-target-libphobos
clean-stage2-target-libphobos:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage2-libphobos/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libphobos && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libphobos-bootstrap


.PHONY: all-stage3-target-libphobos maybe-all-stage3-target-libphobos
.PHONY: clean-stage3-target-libphobos maybe-clean-stage3-target-libphobos
maybe-all-stage3-target-libphobos:
maybe-clean-stage3-target-libphobos:
@if target-libphobos-bootstrap
maybe-all-stage3-target-libphobos: all-stage3-target-libphobos
all-stage3: all-stage3-target-libphobos
TARGET-stage3-target-libphobos = $(TARGET-target-libphobos)
all-stage3-target-libphobos: configure-stage3-target-libphobos
	@[ $(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)/libphobos && \
	 \
	$(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-libphobos)

maybe-clean-stage3-target-libphobos: clean-stage3-target-libphobos
clean-stage3: clean-stage3-target-libphobos
clean-stage3-target-libphobos:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage3-libphobos/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libphobos && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libphobos-bootstrap


.PHONY: all-stage4-target-libphobos maybe-all-stage4-target-libphobos
.PHONY: clean-stage4-target-libphobos maybe-clean-stage4-target-libphobos
maybe-all-stage4-target-libphobos:
maybe-clean-stage4-target-libphobos:
@if target-libphobos-bootstrap
maybe-all-stage4-target-libphobos: all-stage4-target-libphobos
all-stage4: all-stage4-target-libphobos
TARGET-stage4-target-libphobos = $(TARGET-target-libphobos)
all-stage4-target-libphobos: configure-stage4-target-libphobos
	@[ $(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)/libphobos && \
	 \
	$(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-libphobos)

maybe-clean-stage4-target-libphobos: clean-stage4-target-libphobos
clean-stage4: clean-stage4-target-libphobos
clean-stage4-target-libphobos:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage4-libphobos/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libphobos && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libphobos-bootstrap


.PHONY: all-stageprofile-target-libphobos maybe-all-stageprofile-target-libphobos
.PHONY: clean-stageprofile-target-libphobos maybe-clean-stageprofile-target-libphobos
maybe-all-stageprofile-target-libphobos:
maybe-clean-stageprofile-target-libphobos:
@if target-libphobos-bootstrap
maybe-all-stageprofile-target-libphobos: all-stageprofile-target-libphobos
all-stageprofile: all-stageprofile-target-libphobos
TARGET-stageprofile-target-libphobos = $(TARGET-target-libphobos)
all-stageprofile-target-libphobos: configure-stageprofile-target-libphobos
	@[ $(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)/libphobos && \
	 \
	$(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-libphobos)

maybe-clean-stageprofile-target-libphobos: clean-stageprofile-target-libphobos
clean-stageprofile: clean-stageprofile-target-libphobos
clean-stageprofile-target-libphobos:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageprofile-libphobos/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libphobos && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libphobos-bootstrap


.PHONY: all-stagetrain-target-libphobos maybe-all-stagetrain-target-libphobos
.PHONY: clean-stagetrain-target-libphobos maybe-clean-stagetrain-target-libphobos
maybe-all-stagetrain-target-libphobos:
maybe-clean-stagetrain-target-libphobos:
@if target-libphobos-bootstrap
maybe-all-stagetrain-target-libphobos: all-stagetrain-target-libphobos
all-stagetrain: all-stagetrain-target-libphobos
TARGET-stagetrain-target-libphobos = $(TARGET-target-libphobos)
all-stagetrain-target-libphobos: configure-stagetrain-target-libphobos
	@[ $(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)/libphobos && \
	 \
	$(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-libphobos)

maybe-clean-stagetrain-target-libphobos: clean-stagetrain-target-libphobos
clean-stagetrain: clean-stagetrain-target-libphobos
clean-stagetrain-target-libphobos:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagetrain-libphobos/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libphobos && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libphobos-bootstrap


.PHONY: all-stagefeedback-target-libphobos maybe-all-stagefeedback-target-libphobos
.PHONY: clean-stagefeedback-target-libphobos maybe-clean-stagefeedback-target-libphobos
maybe-all-stagefeedback-target-libphobos:
maybe-clean-stagefeedback-target-libphobos:
@if target-libphobos-bootstrap
maybe-all-stagefeedback-target-libphobos: all-stagefeedback-target-libphobos
all-stagefeedback: all-stagefeedback-target-libphobos
TARGET-stagefeedback-target-libphobos = $(TARGET-target-libphobos)
all-stagefeedback-target-libphobos: configure-stagefeedback-target-libphobos
	@[ $(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)/libphobos && \
	 \
	$(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-libphobos)

maybe-clean-stagefeedback-target-libphobos: clean-stagefeedback-target-libphobos
clean-stagefeedback: clean-stagefeedback-target-libphobos
clean-stagefeedback-target-libphobos:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagefeedback-libphobos/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libphobos && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libphobos-bootstrap


.PHONY: all-stageautoprofile-target-libphobos maybe-all-stageautoprofile-target-libphobos
.PHONY: clean-stageautoprofile-target-libphobos maybe-clean-stageautoprofile-target-libphobos
maybe-all-stageautoprofile-target-libphobos:
maybe-clean-stageautoprofile-target-libphobos:
@if target-libphobos-bootstrap
maybe-all-stageautoprofile-target-libphobos: all-stageautoprofile-target-libphobos
all-stageautoprofile: all-stageautoprofile-target-libphobos
TARGET-stageautoprofile-target-libphobos = $(TARGET-target-libphobos)
all-stageautoprofile-target-libphobos: configure-stageautoprofile-target-libphobos
	@[ $(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)/libphobos && \
	$$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-libphobos)

maybe-clean-stageautoprofile-target-libphobos: clean-stageautoprofile-target-libphobos
clean-stageautoprofile: clean-stageautoprofile-target-libphobos
clean-stageautoprofile-target-libphobos:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautoprofile-libphobos/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libphobos && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libphobos-bootstrap


.PHONY: all-stageautofeedback-target-libphobos maybe-all-stageautofeedback-target-libphobos
.PHONY: clean-stageautofeedback-target-libphobos maybe-clean-stageautofeedback-target-libphobos
maybe-all-stageautofeedback-target-libphobos:
maybe-clean-stageautofeedback-target-libphobos:
@if target-libphobos-bootstrap
maybe-all-stageautofeedback-target-libphobos: all-stageautofeedback-target-libphobos
all-stageautofeedback: all-stageautofeedback-target-libphobos
TARGET-stageautofeedback-target-libphobos = $(TARGET-target-libphobos)
all-stageautofeedback-target-libphobos: configure-stageautofeedback-target-libphobos
	@[ $(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)/libphobos && \
	 \
	$(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-libphobos)

maybe-clean-stageautofeedback-target-libphobos: clean-stageautofeedback-target-libphobos
clean-stageautofeedback: clean-stageautofeedback-target-libphobos
clean-stageautofeedback-target-libphobos:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautofeedback-libphobos/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libphobos && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libphobos-bootstrap






.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-dvi-target-libphobos install-dvi-target-libphobos
maybe-install-dvi-target-libphobos:
@if target-libphobos
maybe-install-dvi-target-libphobos: install-dvi-target-libphobos

install-dvi-target-libphobos: \
    configure-target-libphobos \
    dvi-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-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}" \
	           install-dvi) \
	  || 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-dvi-target-libtermcap install-dvi-target-libtermcap
maybe-install-dvi-target-libtermcap:
@if target-libtermcap
maybe-install-dvi-target-libtermcap: install-dvi-target-libtermcap

install-dvi-target-libtermcap: \
    configure-target-libtermcap \
    dvi-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-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}" \
	           install-dvi) \
	  || 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-dvi-target-winsup install-dvi-target-winsup
maybe-install-dvi-target-winsup:
@if target-winsup
maybe-install-dvi-target-winsup: install-dvi-target-winsup

install-dvi-target-winsup: \
    configure-target-winsup \
    dvi-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-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}" \
	           install-dvi) \
	  || 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-dvi-target-libgloss install-dvi-target-libgloss
maybe-install-dvi-target-libgloss:
@if target-libgloss
maybe-install-dvi-target-libgloss: install-dvi-target-libgloss

install-dvi-target-libgloss: \
    configure-target-libgloss \
    dvi-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-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}" \
	           install-dvi) \
	  || 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} --disable-shared --with-pic \
	  || 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-dvi-target-libffi install-dvi-target-libffi
maybe-install-dvi-target-libffi:
@if target-libffi
maybe-install-dvi-target-libffi: install-dvi-target-libffi

install-dvi-target-libffi: \
    configure-target-libffi \
    dvi-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-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}" \
	           install-dvi) \
	  || 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: 
	@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: configure-stage1-target-zlib maybe-configure-stage1-target-zlib
maybe-configure-stage1-target-zlib:
@if target-zlib-bootstrap
maybe-configure-stage1-target-zlib: configure-stage1-target-zlib
configure-stage1-target-zlib:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-zlib-bootstrap

.PHONY: configure-stage2-target-zlib maybe-configure-stage2-target-zlib
maybe-configure-stage2-target-zlib:
@if target-zlib-bootstrap
maybe-configure-stage2-target-zlib: configure-stage2-target-zlib
configure-stage2-target-zlib:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-zlib-bootstrap

.PHONY: configure-stage3-target-zlib maybe-configure-stage3-target-zlib
maybe-configure-stage3-target-zlib:
@if target-zlib-bootstrap
maybe-configure-stage3-target-zlib: configure-stage3-target-zlib
configure-stage3-target-zlib:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-zlib-bootstrap

.PHONY: configure-stage4-target-zlib maybe-configure-stage4-target-zlib
maybe-configure-stage4-target-zlib:
@if target-zlib-bootstrap
maybe-configure-stage4-target-zlib: configure-stage4-target-zlib
configure-stage4-target-zlib:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-zlib-bootstrap

.PHONY: configure-stageprofile-target-zlib maybe-configure-stageprofile-target-zlib
maybe-configure-stageprofile-target-zlib:
@if target-zlib-bootstrap
maybe-configure-stageprofile-target-zlib: configure-stageprofile-target-zlib
configure-stageprofile-target-zlib:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-zlib-bootstrap

.PHONY: configure-stagetrain-target-zlib maybe-configure-stagetrain-target-zlib
maybe-configure-stagetrain-target-zlib:
@if target-zlib-bootstrap
maybe-configure-stagetrain-target-zlib: configure-stagetrain-target-zlib
configure-stagetrain-target-zlib:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-zlib-bootstrap

.PHONY: configure-stagefeedback-target-zlib maybe-configure-stagefeedback-target-zlib
maybe-configure-stagefeedback-target-zlib:
@if target-zlib-bootstrap
maybe-configure-stagefeedback-target-zlib: configure-stagefeedback-target-zlib
configure-stagefeedback-target-zlib:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-zlib-bootstrap

.PHONY: configure-stageautoprofile-target-zlib maybe-configure-stageautoprofile-target-zlib
maybe-configure-stageautoprofile-target-zlib:
@if target-zlib-bootstrap
maybe-configure-stageautoprofile-target-zlib: configure-stageautoprofile-target-zlib
configure-stageautoprofile-target-zlib:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-zlib-bootstrap

.PHONY: configure-stageautofeedback-target-zlib maybe-configure-stageautofeedback-target-zlib
maybe-configure-stageautofeedback-target-zlib:
@if target-zlib-bootstrap
maybe-configure-stageautofeedback-target-zlib: configure-stageautofeedback-target-zlib
configure-stageautofeedback-target-zlib:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/zlib
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/zlib; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-zlib-bootstrap





.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
	@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: all-stage1-target-zlib maybe-all-stage1-target-zlib
.PHONY: clean-stage1-target-zlib maybe-clean-stage1-target-zlib
maybe-all-stage1-target-zlib:
maybe-clean-stage1-target-zlib:
@if target-zlib-bootstrap
maybe-all-stage1-target-zlib: all-stage1-target-zlib
all-stage1: all-stage1-target-zlib
TARGET-stage1-target-zlib = $(TARGET-target-zlib)
all-stage1-target-zlib: configure-stage1-target-zlib
	@[ $(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)/zlib && \
	 \
	$(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-zlib)

maybe-clean-stage1-target-zlib: clean-stage1-target-zlib
clean-stage1: clean-stage1-target-zlib
clean-stage1-target-zlib:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage1-zlib/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(TARGET_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)  \
	  clean
@endif target-zlib-bootstrap


.PHONY: all-stage2-target-zlib maybe-all-stage2-target-zlib
.PHONY: clean-stage2-target-zlib maybe-clean-stage2-target-zlib
maybe-all-stage2-target-zlib:
maybe-clean-stage2-target-zlib:
@if target-zlib-bootstrap
maybe-all-stage2-target-zlib: all-stage2-target-zlib
all-stage2: all-stage2-target-zlib
TARGET-stage2-target-zlib = $(TARGET-target-zlib)
all-stage2-target-zlib: configure-stage2-target-zlib
	@[ $(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)/zlib && \
	 \
	$(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-zlib)

maybe-clean-stage2-target-zlib: clean-stage2-target-zlib
clean-stage2: clean-stage2-target-zlib
clean-stage2-target-zlib:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage2-zlib/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(TARGET_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-zlib-bootstrap


.PHONY: all-stage3-target-zlib maybe-all-stage3-target-zlib
.PHONY: clean-stage3-target-zlib maybe-clean-stage3-target-zlib
maybe-all-stage3-target-zlib:
maybe-clean-stage3-target-zlib:
@if target-zlib-bootstrap
maybe-all-stage3-target-zlib: all-stage3-target-zlib
all-stage3: all-stage3-target-zlib
TARGET-stage3-target-zlib = $(TARGET-target-zlib)
all-stage3-target-zlib: configure-stage3-target-zlib
	@[ $(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)/zlib && \
	 \
	$(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-zlib)

maybe-clean-stage3-target-zlib: clean-stage3-target-zlib
clean-stage3: clean-stage3-target-zlib
clean-stage3-target-zlib:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage3-zlib/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(TARGET_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-zlib-bootstrap


.PHONY: all-stage4-target-zlib maybe-all-stage4-target-zlib
.PHONY: clean-stage4-target-zlib maybe-clean-stage4-target-zlib
maybe-all-stage4-target-zlib:
maybe-clean-stage4-target-zlib:
@if target-zlib-bootstrap
maybe-all-stage4-target-zlib: all-stage4-target-zlib
all-stage4: all-stage4-target-zlib
TARGET-stage4-target-zlib = $(TARGET-target-zlib)
all-stage4-target-zlib: configure-stage4-target-zlib
	@[ $(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)/zlib && \
	 \
	$(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-zlib)

maybe-clean-stage4-target-zlib: clean-stage4-target-zlib
clean-stage4: clean-stage4-target-zlib
clean-stage4-target-zlib:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage4-zlib/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(TARGET_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-zlib-bootstrap


.PHONY: all-stageprofile-target-zlib maybe-all-stageprofile-target-zlib
.PHONY: clean-stageprofile-target-zlib maybe-clean-stageprofile-target-zlib
maybe-all-stageprofile-target-zlib:
maybe-clean-stageprofile-target-zlib:
@if target-zlib-bootstrap
maybe-all-stageprofile-target-zlib: all-stageprofile-target-zlib
all-stageprofile: all-stageprofile-target-zlib
TARGET-stageprofile-target-zlib = $(TARGET-target-zlib)
all-stageprofile-target-zlib: configure-stageprofile-target-zlib
	@[ $(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)/zlib && \
	 \
	$(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-zlib)

maybe-clean-stageprofile-target-zlib: clean-stageprofile-target-zlib
clean-stageprofile: clean-stageprofile-target-zlib
clean-stageprofile-target-zlib:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageprofile-zlib/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-zlib-bootstrap


.PHONY: all-stagetrain-target-zlib maybe-all-stagetrain-target-zlib
.PHONY: clean-stagetrain-target-zlib maybe-clean-stagetrain-target-zlib
maybe-all-stagetrain-target-zlib:
maybe-clean-stagetrain-target-zlib:
@if target-zlib-bootstrap
maybe-all-stagetrain-target-zlib: all-stagetrain-target-zlib
all-stagetrain: all-stagetrain-target-zlib
TARGET-stagetrain-target-zlib = $(TARGET-target-zlib)
all-stagetrain-target-zlib: configure-stagetrain-target-zlib
	@[ $(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)/zlib && \
	 \
	$(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-zlib)

maybe-clean-stagetrain-target-zlib: clean-stagetrain-target-zlib
clean-stagetrain: clean-stagetrain-target-zlib
clean-stagetrain-target-zlib:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagetrain-zlib/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(TARGET_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-zlib-bootstrap


.PHONY: all-stagefeedback-target-zlib maybe-all-stagefeedback-target-zlib
.PHONY: clean-stagefeedback-target-zlib maybe-clean-stagefeedback-target-zlib
maybe-all-stagefeedback-target-zlib:
maybe-clean-stagefeedback-target-zlib:
@if target-zlib-bootstrap
maybe-all-stagefeedback-target-zlib: all-stagefeedback-target-zlib
all-stagefeedback: all-stagefeedback-target-zlib
TARGET-stagefeedback-target-zlib = $(TARGET-target-zlib)
all-stagefeedback-target-zlib: configure-stagefeedback-target-zlib
	@[ $(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)/zlib && \
	 \
	$(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-zlib)

maybe-clean-stagefeedback-target-zlib: clean-stagefeedback-target-zlib
clean-stagefeedback: clean-stagefeedback-target-zlib
clean-stagefeedback-target-zlib:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagefeedback-zlib/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-zlib-bootstrap


.PHONY: all-stageautoprofile-target-zlib maybe-all-stageautoprofile-target-zlib
.PHONY: clean-stageautoprofile-target-zlib maybe-clean-stageautoprofile-target-zlib
maybe-all-stageautoprofile-target-zlib:
maybe-clean-stageautoprofile-target-zlib:
@if target-zlib-bootstrap
maybe-all-stageautoprofile-target-zlib: all-stageautoprofile-target-zlib
all-stageautoprofile: all-stageautoprofile-target-zlib
TARGET-stageautoprofile-target-zlib = $(TARGET-target-zlib)
all-stageautoprofile-target-zlib: configure-stageautoprofile-target-zlib
	@[ $(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)/zlib && \
	$$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-zlib)

maybe-clean-stageautoprofile-target-zlib: clean-stageautoprofile-target-zlib
clean-stageautoprofile: clean-stageautoprofile-target-zlib
clean-stageautoprofile-target-zlib:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautoprofile-zlib/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-zlib-bootstrap


.PHONY: all-stageautofeedback-target-zlib maybe-all-stageautofeedback-target-zlib
.PHONY: clean-stageautofeedback-target-zlib maybe-clean-stageautofeedback-target-zlib
maybe-all-stageautofeedback-target-zlib:
maybe-clean-stageautofeedback-target-zlib:
@if target-zlib-bootstrap
maybe-all-stageautofeedback-target-zlib: all-stageautofeedback-target-zlib
all-stageautofeedback: all-stageautofeedback-target-zlib
TARGET-stageautofeedback-target-zlib = $(TARGET-target-zlib)
all-stageautofeedback-target-zlib: configure-stageautofeedback-target-zlib
	@[ $(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)/zlib && \
	 \
	$(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-zlib)

maybe-clean-stageautofeedback-target-zlib: clean-stageautofeedback-target-zlib
clean-stageautofeedback: clean-stageautofeedback-target-zlib
clean-stageautofeedback-target-zlib:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/zlib/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautofeedback-zlib/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/zlib && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-zlib-bootstrap






.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-dvi-target-zlib install-dvi-target-zlib
maybe-install-dvi-target-zlib:
@if target-zlib
maybe-install-dvi-target-zlib: install-dvi-target-zlib

install-dvi-target-zlib: \
    configure-target-zlib \
    dvi-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-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}" \
	           install-dvi) \
	  || 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-dvi-target-rda install-dvi-target-rda
maybe-install-dvi-target-rda:
@if target-rda
maybe-install-dvi-target-rda: install-dvi-target-rda

install-dvi-target-rda: \
    configure-target-rda \
    dvi-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-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}" \
	           install-dvi) \
	  || 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-dvi-target-libada install-dvi-target-libada
maybe-install-dvi-target-libada:
@if target-libada
maybe-install-dvi-target-libada: install-dvi-target-libada

install-dvi-target-libada: \
    configure-target-libada \
    dvi-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-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}" \
	           install-dvi) \
	  || 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-libgm2 maybe-configure-target-libgm2
maybe-configure-target-libgm2:
@if gcc-bootstrap
configure-target-libgm2: stage_current
@endif gcc-bootstrap
@if target-libgm2
maybe-configure-target-libgm2: configure-target-libgm2
configure-target-libgm2: 
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	echo "Checking multilib configuration for libgm2..."; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgm2; \
	$(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgm2/multilib.tmp 2> /dev/null; \
	if test -r $(TARGET_SUBDIR)/libgm2/multilib.out; then \
	  if cmp -s $(TARGET_SUBDIR)/libgm2/multilib.tmp $(TARGET_SUBDIR)/libgm2/multilib.out; then \
	    rm -f $(TARGET_SUBDIR)/libgm2/multilib.tmp; \
	  else \
	    rm -f $(TARGET_SUBDIR)/libgm2/Makefile; \
	    mv $(TARGET_SUBDIR)/libgm2/multilib.tmp $(TARGET_SUBDIR)/libgm2/multilib.out; \
	  fi; \
	else \
	  mv $(TARGET_SUBDIR)/libgm2/multilib.tmp $(TARGET_SUBDIR)/libgm2/multilib.out; \
	fi; \
	test ! -f $(TARGET_SUBDIR)/libgm2/Makefile || exit 0; \
	$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgm2; \
	$(NORMAL_TARGET_EXPORTS)  \
	echo Configuring in $(TARGET_SUBDIR)/libgm2; \
	cd "$(TARGET_SUBDIR)/libgm2" || exit 1; \
	case $(srcdir) in \
	  /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
	  *) topdir=`echo $(TARGET_SUBDIR)/libgm2/ | \
		sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
	esac; \
	module_srcdir=libgm2; \
	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-libgm2





.PHONY: all-target-libgm2 maybe-all-target-libgm2
maybe-all-target-libgm2:
@if gcc-bootstrap
all-target-libgm2: stage_current
@endif gcc-bootstrap
@if target-libgm2
TARGET-target-libgm2=all
maybe-all-target-libgm2: all-target-libgm2
all-target-libgm2: configure-target-libgm2
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS)  \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
		$(TARGET-target-libgm2))
@endif target-libgm2





.PHONY: check-target-libgm2 maybe-check-target-libgm2
maybe-check-target-libgm2:
@if target-libgm2
maybe-check-target-libgm2: check-target-libgm2

check-target-libgm2:
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)

@endif target-libgm2

.PHONY: install-target-libgm2 maybe-install-target-libgm2
maybe-install-target-libgm2:
@if target-libgm2
maybe-install-target-libgm2: install-target-libgm2

install-target-libgm2: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)

@endif target-libgm2

.PHONY: install-strip-target-libgm2 maybe-install-strip-target-libgm2
maybe-install-strip-target-libgm2:
@if target-libgm2
maybe-install-strip-target-libgm2: install-strip-target-libgm2

install-strip-target-libgm2: installdirs
	@: $(MAKE); $(unstage)
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)

@endif target-libgm2

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

.PHONY: maybe-info-target-libgm2 info-target-libgm2
maybe-info-target-libgm2:
@if target-libgm2
maybe-info-target-libgm2: info-target-libgm2

info-target-libgm2: \
    configure-target-libgm2 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgm2/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing info in $(TARGET_SUBDIR)/libgm2"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(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-libgm2

.PHONY: maybe-dvi-target-libgm2 dvi-target-libgm2
maybe-dvi-target-libgm2:
@if target-libgm2
maybe-dvi-target-libgm2: dvi-target-libgm2

dvi-target-libgm2: \
    configure-target-libgm2 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgm2/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing dvi in $(TARGET_SUBDIR)/libgm2"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(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-libgm2

.PHONY: maybe-pdf-target-libgm2 pdf-target-libgm2
maybe-pdf-target-libgm2:
@if target-libgm2
maybe-pdf-target-libgm2: pdf-target-libgm2

pdf-target-libgm2: \
    configure-target-libgm2 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgm2/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing pdf in $(TARGET_SUBDIR)/libgm2"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(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-libgm2

.PHONY: maybe-html-target-libgm2 html-target-libgm2
maybe-html-target-libgm2:
@if target-libgm2
maybe-html-target-libgm2: html-target-libgm2

html-target-libgm2: \
    configure-target-libgm2 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgm2/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing html in $(TARGET_SUBDIR)/libgm2"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(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-libgm2

.PHONY: maybe-TAGS-target-libgm2 TAGS-target-libgm2
maybe-TAGS-target-libgm2:
@if target-libgm2
maybe-TAGS-target-libgm2: TAGS-target-libgm2

TAGS-target-libgm2: \
    configure-target-libgm2 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgm2/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing TAGS in $(TARGET_SUBDIR)/libgm2"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(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-libgm2

.PHONY: maybe-install-info-target-libgm2 install-info-target-libgm2
maybe-install-info-target-libgm2:
@if target-libgm2
maybe-install-info-target-libgm2: install-info-target-libgm2

install-info-target-libgm2: \
    configure-target-libgm2 \
    info-target-libgm2 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgm2/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)/libgm2"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(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-libgm2

.PHONY: maybe-install-dvi-target-libgm2 install-dvi-target-libgm2
maybe-install-dvi-target-libgm2:
@if target-libgm2
maybe-install-dvi-target-libgm2: install-dvi-target-libgm2

install-dvi-target-libgm2: \
    configure-target-libgm2 \
    dvi-target-libgm2 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgm2/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing install-dvi in $(TARGET_SUBDIR)/libgm2"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(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-dvi) \
	  || exit 1

@endif target-libgm2

.PHONY: maybe-install-pdf-target-libgm2 install-pdf-target-libgm2
maybe-install-pdf-target-libgm2:
@if target-libgm2
maybe-install-pdf-target-libgm2: install-pdf-target-libgm2

install-pdf-target-libgm2: \
    configure-target-libgm2 \
    pdf-target-libgm2 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgm2/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)/libgm2"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(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-libgm2

.PHONY: maybe-install-html-target-libgm2 install-html-target-libgm2
maybe-install-html-target-libgm2:
@if target-libgm2
maybe-install-html-target-libgm2: install-html-target-libgm2

install-html-target-libgm2: \
    configure-target-libgm2 \
    html-target-libgm2 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgm2/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)/libgm2"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(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-libgm2

.PHONY: maybe-installcheck-target-libgm2 installcheck-target-libgm2
maybe-installcheck-target-libgm2:
@if target-libgm2
maybe-installcheck-target-libgm2: installcheck-target-libgm2

installcheck-target-libgm2: \
    configure-target-libgm2 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgm2/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing installcheck in $(TARGET_SUBDIR)/libgm2"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(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-libgm2

.PHONY: maybe-mostlyclean-target-libgm2 mostlyclean-target-libgm2
maybe-mostlyclean-target-libgm2:
@if target-libgm2
maybe-mostlyclean-target-libgm2: mostlyclean-target-libgm2

mostlyclean-target-libgm2: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgm2/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing mostlyclean in $(TARGET_SUBDIR)/libgm2"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(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-libgm2

.PHONY: maybe-clean-target-libgm2 clean-target-libgm2
maybe-clean-target-libgm2:
@if target-libgm2
maybe-clean-target-libgm2: clean-target-libgm2

clean-target-libgm2: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgm2/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing clean in $(TARGET_SUBDIR)/libgm2"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(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-libgm2

.PHONY: maybe-distclean-target-libgm2 distclean-target-libgm2
maybe-distclean-target-libgm2:
@if target-libgm2
maybe-distclean-target-libgm2: distclean-target-libgm2

distclean-target-libgm2: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgm2/Makefile ] || exit 0; \
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(NORMAL_TARGET_EXPORTS) \
	echo "Doing distclean in $(TARGET_SUBDIR)/libgm2"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(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-libgm2

.PHONY: maybe-maintainer-clean-target-libgm2 maintainer-clean-target-libgm2
maybe-maintainer-clean-target-libgm2:
@if target-libgm2
maybe-maintainer-clean-target-libgm2: maintainer-clean-target-libgm2

maintainer-clean-target-libgm2: 
	@: $(MAKE); $(unstage)
	@[ -f $(TARGET_SUBDIR)/libgm2/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)/libgm2"; \
	for flag in $(EXTRA_TARGET_FLAGS); do \
	  eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
	done; \
	(cd $(TARGET_SUBDIR)/libgm2 && \
	  $(MAKE) $(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-libgm2





.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-dvi-target-libgomp install-dvi-target-libgomp
maybe-install-dvi-target-libgomp:
@if target-libgomp
maybe-install-dvi-target-libgomp: install-dvi-target-libgomp

install-dvi-target-libgomp: \
    configure-target-libgomp \
    dvi-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-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}" \
	           install-dvi) \
	  || 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-dvi-target-libitm install-dvi-target-libitm
maybe-install-dvi-target-libitm:
@if target-libitm
maybe-install-dvi-target-libitm: install-dvi-target-libitm

install-dvi-target-libitm: \
    configure-target-libitm \
    dvi-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-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}" \
	           install-dvi) \
	  || 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: 
	@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: configure-stage1-target-libatomic maybe-configure-stage1-target-libatomic
maybe-configure-stage1-target-libatomic:
@if target-libatomic-bootstrap
maybe-configure-stage1-target-libatomic: configure-stage1-target-libatomic
configure-stage1-target-libatomic:
	@[ $(current_stage) = stage1 ] || $(MAKE) stage1-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libatomic
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE1_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libatomic; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libatomic-bootstrap

.PHONY: configure-stage2-target-libatomic maybe-configure-stage2-target-libatomic
maybe-configure-stage2-target-libatomic:
@if target-libatomic-bootstrap
maybe-configure-stage2-target-libatomic: configure-stage2-target-libatomic
configure-stage2-target-libatomic:
	@[ $(current_stage) = stage2 ] || $(MAKE) stage2-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libatomic
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE2_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libatomic; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libatomic-bootstrap

.PHONY: configure-stage3-target-libatomic maybe-configure-stage3-target-libatomic
maybe-configure-stage3-target-libatomic:
@if target-libatomic-bootstrap
maybe-configure-stage3-target-libatomic: configure-stage3-target-libatomic
configure-stage3-target-libatomic:
	@[ $(current_stage) = stage3 ] || $(MAKE) stage3-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libatomic
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE3_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libatomic; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libatomic-bootstrap

.PHONY: configure-stage4-target-libatomic maybe-configure-stage4-target-libatomic
maybe-configure-stage4-target-libatomic:
@if target-libatomic-bootstrap
maybe-configure-stage4-target-libatomic: configure-stage4-target-libatomic
configure-stage4-target-libatomic:
	@[ $(current_stage) = stage4 ] || $(MAKE) stage4-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libatomic
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGE4_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libatomic; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libatomic-bootstrap

.PHONY: configure-stageprofile-target-libatomic maybe-configure-stageprofile-target-libatomic
maybe-configure-stageprofile-target-libatomic:
@if target-libatomic-bootstrap
maybe-configure-stageprofile-target-libatomic: configure-stageprofile-target-libatomic
configure-stageprofile-target-libatomic:
	@[ $(current_stage) = stageprofile ] || $(MAKE) stageprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libatomic
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEprofile_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libatomic; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libatomic-bootstrap

.PHONY: configure-stagetrain-target-libatomic maybe-configure-stagetrain-target-libatomic
maybe-configure-stagetrain-target-libatomic:
@if target-libatomic-bootstrap
maybe-configure-stagetrain-target-libatomic: configure-stagetrain-target-libatomic
configure-stagetrain-target-libatomic:
	@[ $(current_stage) = stagetrain ] || $(MAKE) stagetrain-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libatomic
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEtrain_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libatomic; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libatomic-bootstrap

.PHONY: configure-stagefeedback-target-libatomic maybe-configure-stagefeedback-target-libatomic
maybe-configure-stagefeedback-target-libatomic:
@if target-libatomic-bootstrap
maybe-configure-stagefeedback-target-libatomic: configure-stagefeedback-target-libatomic
configure-stagefeedback-target-libatomic:
	@[ $(current_stage) = stagefeedback ] || $(MAKE) stagefeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libatomic
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEfeedback_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libatomic; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libatomic-bootstrap

.PHONY: configure-stageautoprofile-target-libatomic maybe-configure-stageautoprofile-target-libatomic
maybe-configure-stageautoprofile-target-libatomic:
@if target-libatomic-bootstrap
maybe-configure-stageautoprofile-target-libatomic: configure-stageautoprofile-target-libatomic
configure-stageautoprofile-target-libatomic:
	@[ $(current_stage) = stageautoprofile ] || $(MAKE) stageautoprofile-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libatomic
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautoprofile_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libatomic; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libatomic-bootstrap

.PHONY: configure-stageautofeedback-target-libatomic maybe-configure-stageautofeedback-target-libatomic
maybe-configure-stageautofeedback-target-libatomic:
@if target-libatomic-bootstrap
maybe-configure-stageautofeedback-target-libatomic: configure-stageautofeedback-target-libatomic
configure-stageautofeedback-target-libatomic:
	@[ $(current_stage) = stageautofeedback ] || $(MAKE) stageautofeedback-start
	@$(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libatomic
	@r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	TFLAGS="$(STAGEautofeedback_TFLAGS)"; \
	echo "Checking multilib configuration for 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; \
	$(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)/libatomic; \
	$(SHELL) $(srcdir)/mkinstalldirs $(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; \
	$(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-libatomic-bootstrap





.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
	@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: all-stage1-target-libatomic maybe-all-stage1-target-libatomic
.PHONY: clean-stage1-target-libatomic maybe-clean-stage1-target-libatomic
maybe-all-stage1-target-libatomic:
maybe-clean-stage1-target-libatomic:
@if target-libatomic-bootstrap
maybe-all-stage1-target-libatomic: all-stage1-target-libatomic
all-stage1: all-stage1-target-libatomic
TARGET-stage1-target-libatomic = $(TARGET-target-libatomic)
all-stage1-target-libatomic: configure-stage1-target-libatomic
	@[ $(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)/libatomic && \
	 \
	$(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-libatomic)

maybe-clean-stage1-target-libatomic: clean-stage1-target-libatomic
clean-stage1: clean-stage1-target-libatomic
clean-stage1-target-libatomic:
	@if [ $(current_stage) = stage1 ]; then \
	  [ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage1-libatomic/Makefile ] || exit 0; \
	  $(MAKE) stage1-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libatomic && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)  \
	  clean
@endif target-libatomic-bootstrap


.PHONY: all-stage2-target-libatomic maybe-all-stage2-target-libatomic
.PHONY: clean-stage2-target-libatomic maybe-clean-stage2-target-libatomic
maybe-all-stage2-target-libatomic:
maybe-clean-stage2-target-libatomic:
@if target-libatomic-bootstrap
maybe-all-stage2-target-libatomic: all-stage2-target-libatomic
all-stage2: all-stage2-target-libatomic
TARGET-stage2-target-libatomic = $(TARGET-target-libatomic)
all-stage2-target-libatomic: configure-stage2-target-libatomic
	@[ $(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)/libatomic && \
	 \
	$(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-libatomic)

maybe-clean-stage2-target-libatomic: clean-stage2-target-libatomic
clean-stage2: clean-stage2-target-libatomic
clean-stage2-target-libatomic:
	@if [ $(current_stage) = stage2 ]; then \
	  [ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage2-libatomic/Makefile ] || exit 0; \
	  $(MAKE) stage2-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libatomic && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libatomic-bootstrap


.PHONY: all-stage3-target-libatomic maybe-all-stage3-target-libatomic
.PHONY: clean-stage3-target-libatomic maybe-clean-stage3-target-libatomic
maybe-all-stage3-target-libatomic:
maybe-clean-stage3-target-libatomic:
@if target-libatomic-bootstrap
maybe-all-stage3-target-libatomic: all-stage3-target-libatomic
all-stage3: all-stage3-target-libatomic
TARGET-stage3-target-libatomic = $(TARGET-target-libatomic)
all-stage3-target-libatomic: configure-stage3-target-libatomic
	@[ $(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)/libatomic && \
	 \
	$(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-libatomic)

maybe-clean-stage3-target-libatomic: clean-stage3-target-libatomic
clean-stage3: clean-stage3-target-libatomic
clean-stage3-target-libatomic:
	@if [ $(current_stage) = stage3 ]; then \
	  [ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage3-libatomic/Makefile ] || exit 0; \
	  $(MAKE) stage3-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libatomic && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libatomic-bootstrap


.PHONY: all-stage4-target-libatomic maybe-all-stage4-target-libatomic
.PHONY: clean-stage4-target-libatomic maybe-clean-stage4-target-libatomic
maybe-all-stage4-target-libatomic:
maybe-clean-stage4-target-libatomic:
@if target-libatomic-bootstrap
maybe-all-stage4-target-libatomic: all-stage4-target-libatomic
all-stage4: all-stage4-target-libatomic
TARGET-stage4-target-libatomic = $(TARGET-target-libatomic)
all-stage4-target-libatomic: configure-stage4-target-libatomic
	@[ $(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)/libatomic && \
	 \
	$(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-libatomic)

maybe-clean-stage4-target-libatomic: clean-stage4-target-libatomic
clean-stage4: clean-stage4-target-libatomic
clean-stage4-target-libatomic:
	@if [ $(current_stage) = stage4 ]; then \
	  [ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stage4-libatomic/Makefile ] || exit 0; \
	  $(MAKE) stage4-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libatomic && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libatomic-bootstrap


.PHONY: all-stageprofile-target-libatomic maybe-all-stageprofile-target-libatomic
.PHONY: clean-stageprofile-target-libatomic maybe-clean-stageprofile-target-libatomic
maybe-all-stageprofile-target-libatomic:
maybe-clean-stageprofile-target-libatomic:
@if target-libatomic-bootstrap
maybe-all-stageprofile-target-libatomic: all-stageprofile-target-libatomic
all-stageprofile: all-stageprofile-target-libatomic
TARGET-stageprofile-target-libatomic = $(TARGET-target-libatomic)
all-stageprofile-target-libatomic: configure-stageprofile-target-libatomic
	@[ $(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)/libatomic && \
	 \
	$(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-libatomic)

maybe-clean-stageprofile-target-libatomic: clean-stageprofile-target-libatomic
clean-stageprofile: clean-stageprofile-target-libatomic
clean-stageprofile-target-libatomic:
	@if [ $(current_stage) = stageprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageprofile-libatomic/Makefile ] || exit 0; \
	  $(MAKE) stageprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libatomic && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libatomic-bootstrap


.PHONY: all-stagetrain-target-libatomic maybe-all-stagetrain-target-libatomic
.PHONY: clean-stagetrain-target-libatomic maybe-clean-stagetrain-target-libatomic
maybe-all-stagetrain-target-libatomic:
maybe-clean-stagetrain-target-libatomic:
@if target-libatomic-bootstrap
maybe-all-stagetrain-target-libatomic: all-stagetrain-target-libatomic
all-stagetrain: all-stagetrain-target-libatomic
TARGET-stagetrain-target-libatomic = $(TARGET-target-libatomic)
all-stagetrain-target-libatomic: configure-stagetrain-target-libatomic
	@[ $(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)/libatomic && \
	 \
	$(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-libatomic)

maybe-clean-stagetrain-target-libatomic: clean-stagetrain-target-libatomic
clean-stagetrain: clean-stagetrain-target-libatomic
clean-stagetrain-target-libatomic:
	@if [ $(current_stage) = stagetrain ]; then \
	  [ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagetrain-libatomic/Makefile ] || exit 0; \
	  $(MAKE) stagetrain-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libatomic && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libatomic-bootstrap


.PHONY: all-stagefeedback-target-libatomic maybe-all-stagefeedback-target-libatomic
.PHONY: clean-stagefeedback-target-libatomic maybe-clean-stagefeedback-target-libatomic
maybe-all-stagefeedback-target-libatomic:
maybe-clean-stagefeedback-target-libatomic:
@if target-libatomic-bootstrap
maybe-all-stagefeedback-target-libatomic: all-stagefeedback-target-libatomic
all-stagefeedback: all-stagefeedback-target-libatomic
TARGET-stagefeedback-target-libatomic = $(TARGET-target-libatomic)
all-stagefeedback-target-libatomic: configure-stagefeedback-target-libatomic
	@[ $(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)/libatomic && \
	 \
	$(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-libatomic)

maybe-clean-stagefeedback-target-libatomic: clean-stagefeedback-target-libatomic
clean-stagefeedback: clean-stagefeedback-target-libatomic
clean-stagefeedback-target-libatomic:
	@if [ $(current_stage) = stagefeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stagefeedback-libatomic/Makefile ] || exit 0; \
	  $(MAKE) stagefeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libatomic && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libatomic-bootstrap


.PHONY: all-stageautoprofile-target-libatomic maybe-all-stageautoprofile-target-libatomic
.PHONY: clean-stageautoprofile-target-libatomic maybe-clean-stageautoprofile-target-libatomic
maybe-all-stageautoprofile-target-libatomic:
maybe-clean-stageautoprofile-target-libatomic:
@if target-libatomic-bootstrap
maybe-all-stageautoprofile-target-libatomic: all-stageautoprofile-target-libatomic
all-stageautoprofile: all-stageautoprofile-target-libatomic
TARGET-stageautoprofile-target-libatomic = $(TARGET-target-libatomic)
all-stageautoprofile-target-libatomic: configure-stageautoprofile-target-libatomic
	@[ $(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)/libatomic && \
	$$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-libatomic)

maybe-clean-stageautoprofile-target-libatomic: clean-stageautoprofile-target-libatomic
clean-stageautoprofile: clean-stageautoprofile-target-libatomic
clean-stageautoprofile-target-libatomic:
	@if [ $(current_stage) = stageautoprofile ]; then \
	  [ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautoprofile-libatomic/Makefile ] || exit 0; \
	  $(MAKE) stageautoprofile-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libatomic && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libatomic-bootstrap


.PHONY: all-stageautofeedback-target-libatomic maybe-all-stageautofeedback-target-libatomic
.PHONY: clean-stageautofeedback-target-libatomic maybe-clean-stageautofeedback-target-libatomic
maybe-all-stageautofeedback-target-libatomic:
maybe-clean-stageautofeedback-target-libatomic:
@if target-libatomic-bootstrap
maybe-all-stageautofeedback-target-libatomic: all-stageautofeedback-target-libatomic
all-stageautofeedback: all-stageautofeedback-target-libatomic
TARGET-stageautofeedback-target-libatomic = $(TARGET-target-libatomic)
all-stageautofeedback-target-libatomic: configure-stageautofeedback-target-libatomic
	@[ $(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)/libatomic && \
	 \
	$(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-libatomic)

maybe-clean-stageautofeedback-target-libatomic: clean-stageautofeedback-target-libatomic
clean-stageautofeedback: clean-stageautofeedback-target-libatomic
clean-stageautofeedback-target-libatomic:
	@if [ $(current_stage) = stageautofeedback ]; then \
	  [ -f $(TARGET_SUBDIR)/libatomic/Makefile ] || exit 0; \
	else \
	  [ -f $(TARGET_SUBDIR)/stageautofeedback-libatomic/Makefile ] || exit 0; \
	  $(MAKE) stageautofeedback-start; \
	fi; \
	cd $(TARGET_SUBDIR)/libatomic && \
	$(MAKE) $(EXTRA_TARGET_FLAGS)   clean
@endif target-libatomic-bootstrap






.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-dvi-target-libatomic install-dvi-target-libatomic
maybe-install-dvi-target-libatomic:
@if target-libatomic
maybe-install-dvi-target-libatomic: install-dvi-target-libatomic

install-dvi-target-libatomic: \
    configure-target-libatomic \
    dvi-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-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}" \
	           install-dvi) \
	  || 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-m2 check-m2
check-gcc-m2:
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-m2);
check-m2: check-gcc-m2 check-target-libgm2

.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

.PHONY: check-gcc-jit check-jit
check-gcc-jit:
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-jit);
check-jit: check-gcc-jit

.PHONY: check-gcc-rust check-rust
check-gcc-rust:
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-rust);
check-rust: check-gcc-rust


# 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 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 libcody
	@cd $(HOST_SUBDIR); [ -d stage1-libcody ] || \
	  mkdir stage1-libcody; \
	mv stage1-libcody libcody
@endif libcody
@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
@if libctf
	@cd $(HOST_SUBDIR); [ -d stage1-libctf ] || \
	  mkdir stage1-libctf; \
	mv stage1-libctf libctf
@endif libctf
@if libsframe
	@cd $(HOST_SUBDIR); [ -d stage1-libsframe ] || \
	  mkdir stage1-libsframe; \
	mv stage1-libsframe libsframe
@endif libsframe
	@[ -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 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 libcody
	@if test -d $(HOST_SUBDIR)/libcody; then \
	  cd $(HOST_SUBDIR); mv libcody stage1-libcody; \
	fi
@endif libcody
@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 libctf
	@if test -d $(HOST_SUBDIR)/libctf; then \
	  cd $(HOST_SUBDIR); mv libctf stage1-libctf; \
	fi
@endif libctf
@if libsframe
	@if test -d $(HOST_SUBDIR)/libsframe; then \
	  cd $(HOST_SUBDIR); mv libsframe stage1-libsframe; \
	fi
@endif libsframe
	@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 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 libcody
	@cd $(HOST_SUBDIR); [ -d stage2-libcody ] || \
	  mkdir stage2-libcody; \
	mv stage2-libcody libcody; \
	mv stage1-libcody prev-libcody || test -f stage1-lean 
@endif libcody
@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
@if libctf
	@cd $(HOST_SUBDIR); [ -d stage2-libctf ] || \
	  mkdir stage2-libctf; \
	mv stage2-libctf libctf; \
	mv stage1-libctf prev-libctf || test -f stage1-lean 
@endif libctf
@if libsframe
	@cd $(HOST_SUBDIR); [ -d stage2-libsframe ] || \
	  mkdir stage2-libsframe; \
	mv stage2-libsframe libsframe; \
	mv stage1-libsframe prev-libsframe || test -f stage1-lean 
@endif libsframe
	@[ -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 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 libcody
	@if test -d $(HOST_SUBDIR)/libcody; then \
	  cd $(HOST_SUBDIR); mv libcody stage2-libcody; \
	  mv prev-libcody stage1-libcody; : ; \
	fi
@endif libcody
@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 libctf
	@if test -d $(HOST_SUBDIR)/libctf; then \
	  cd $(HOST_SUBDIR); mv libctf stage2-libctf; \
	  mv prev-libctf stage1-libctf; : ; \
	fi
@endif libctf
@if libsframe
	@if test -d $(HOST_SUBDIR)/libsframe; then \
	  cd $(HOST_SUBDIR); mv libsframe stage2-libsframe; \
	  mv prev-libsframe stage1-libsframe; : ; \
	fi
@endif libsframe
	@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 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 libcody
	@cd $(HOST_SUBDIR); [ -d stage3-libcody ] || \
	  mkdir stage3-libcody; \
	mv stage3-libcody libcody; \
	mv stage2-libcody prev-libcody || test -f stage2-lean 
@endif libcody
@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
@if libctf
	@cd $(HOST_SUBDIR); [ -d stage3-libctf ] || \
	  mkdir stage3-libctf; \
	mv stage3-libctf libctf; \
	mv stage2-libctf prev-libctf || test -f stage2-lean 
@endif libctf
@if libsframe
	@cd $(HOST_SUBDIR); [ -d stage3-libsframe ] || \
	  mkdir stage3-libsframe; \
	mv stage3-libsframe libsframe; \
	mv stage2-libsframe prev-libsframe || test -f stage2-lean 
@endif libsframe
	@[ -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 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 libcody
	@if test -d $(HOST_SUBDIR)/libcody; then \
	  cd $(HOST_SUBDIR); mv libcody stage3-libcody; \
	  mv prev-libcody stage2-libcody; : ; \
	fi
@endif libcody
@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 libctf
	@if test -d $(HOST_SUBDIR)/libctf; then \
	  cd $(HOST_SUBDIR); mv libctf stage3-libctf; \
	  mv prev-libctf stage2-libctf; : ; \
	fi
@endif libctf
@if libsframe
	@if test -d $(HOST_SUBDIR)/libsframe; then \
	  cd $(HOST_SUBDIR); mv libsframe stage3-libsframe; \
	  mv prev-libsframe stage2-libsframe; : ; \
	fi
@endif libsframe
	@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} ${extra-compare}; 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 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 libcody
	@cd $(HOST_SUBDIR); [ -d stage4-libcody ] || \
	  mkdir stage4-libcody; \
	mv stage4-libcody libcody; \
	mv stage3-libcody prev-libcody || test -f stage3-lean 
@endif libcody
@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
@if libctf
	@cd $(HOST_SUBDIR); [ -d stage4-libctf ] || \
	  mkdir stage4-libctf; \
	mv stage4-libctf libctf; \
	mv stage3-libctf prev-libctf || test -f stage3-lean 
@endif libctf
@if libsframe
	@cd $(HOST_SUBDIR); [ -d stage4-libsframe ] || \
	  mkdir stage4-libsframe; \
	mv stage4-libsframe libsframe; \
	mv stage3-libsframe prev-libsframe || test -f stage3-lean 
@endif libsframe
	@[ -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 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 libcody
	@if test -d $(HOST_SUBDIR)/libcody; then \
	  cd $(HOST_SUBDIR); mv libcody stage4-libcody; \
	  mv prev-libcody stage3-libcody; : ; \
	fi
@endif libcody
@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 libctf
	@if test -d $(HOST_SUBDIR)/libctf; then \
	  cd $(HOST_SUBDIR); mv libctf stage4-libctf; \
	  mv prev-libctf stage3-libctf; : ; \
	fi
@endif libctf
@if libsframe
	@if test -d $(HOST_SUBDIR)/libsframe; then \
	  cd $(HOST_SUBDIR); mv libsframe stage4-libsframe; \
	  mv prev-libsframe stage3-libsframe; : ; \
	fi
@endif libsframe
	@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} ${extra-compare}; 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 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 libcody
	@cd $(HOST_SUBDIR); [ -d stageprofile-libcody ] || \
	  mkdir stageprofile-libcody; \
	mv stageprofile-libcody libcody; \
	mv stage1-libcody prev-libcody || test -f stage1-lean 
@endif libcody
@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
@if libctf
	@cd $(HOST_SUBDIR); [ -d stageprofile-libctf ] || \
	  mkdir stageprofile-libctf; \
	mv stageprofile-libctf libctf; \
	mv stage1-libctf prev-libctf || test -f stage1-lean 
@endif libctf
@if libsframe
	@cd $(HOST_SUBDIR); [ -d stageprofile-libsframe ] || \
	  mkdir stageprofile-libsframe; \
	mv stageprofile-libsframe libsframe; \
	mv stage1-libsframe prev-libsframe || test -f stage1-lean 
@endif libsframe
	@[ -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 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 libcody
	@if test -d $(HOST_SUBDIR)/libcody; then \
	  cd $(HOST_SUBDIR); mv libcody stageprofile-libcody; \
	  mv prev-libcody stage1-libcody; : ; \
	fi
@endif libcody
@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 libctf
	@if test -d $(HOST_SUBDIR)/libctf; then \
	  cd $(HOST_SUBDIR); mv libctf stageprofile-libctf; \
	  mv prev-libctf stage1-libctf; : ; \
	fi
@endif libctf
@if libsframe
	@if test -d $(HOST_SUBDIR)/libsframe; then \
	  cd $(HOST_SUBDIR); mv libsframe stageprofile-libsframe; \
	  mv prev-libsframe stage1-libsframe; : ; \
	fi
@endif libsframe
	@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 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 libcody
	@cd $(HOST_SUBDIR); [ -d stagetrain-libcody ] || \
	  mkdir stagetrain-libcody; \
	mv stagetrain-libcody libcody; \
	mv stageprofile-libcody prev-libcody || test -f stageprofile-lean 
@endif libcody
@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
@if libctf
	@cd $(HOST_SUBDIR); [ -d stagetrain-libctf ] || \
	  mkdir stagetrain-libctf; \
	mv stagetrain-libctf libctf; \
	mv stageprofile-libctf prev-libctf || test -f stageprofile-lean 
@endif libctf
@if libsframe
	@cd $(HOST_SUBDIR); [ -d stagetrain-libsframe ] || \
	  mkdir stagetrain-libsframe; \
	mv stagetrain-libsframe libsframe; \
	mv stageprofile-libsframe prev-libsframe || test -f stageprofile-lean 
@endif libsframe
	@[ -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 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 libcody
	@if test -d $(HOST_SUBDIR)/libcody; then \
	  cd $(HOST_SUBDIR); mv libcody stagetrain-libcody; \
	  mv prev-libcody stageprofile-libcody; : ; \
	fi
@endif libcody
@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 libctf
	@if test -d $(HOST_SUBDIR)/libctf; then \
	  cd $(HOST_SUBDIR); mv libctf stagetrain-libctf; \
	  mv prev-libctf stageprofile-libctf; : ; \
	fi
@endif libctf
@if libsframe
	@if test -d $(HOST_SUBDIR)/libsframe; then \
	  cd $(HOST_SUBDIR); mv libsframe stagetrain-libsframe; \
	  mv prev-libsframe stageprofile-libsframe; : ; \
	fi
@endif libsframe
	@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 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 libcody
	@cd $(HOST_SUBDIR); [ -d stagefeedback-libcody ] || \
	  mkdir stagefeedback-libcody; \
	mv stagefeedback-libcody libcody; \
	mv stagetrain-libcody prev-libcody || test -f stagetrain-lean 
@endif libcody
@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
@if libctf
	@cd $(HOST_SUBDIR); [ -d stagefeedback-libctf ] || \
	  mkdir stagefeedback-libctf; \
	mv stagefeedback-libctf libctf; \
	mv stagetrain-libctf prev-libctf || test -f stagetrain-lean 
@endif libctf
@if libsframe
	@cd $(HOST_SUBDIR); [ -d stagefeedback-libsframe ] || \
	  mkdir stagefeedback-libsframe; \
	mv stagefeedback-libsframe libsframe; \
	mv stagetrain-libsframe prev-libsframe || test -f stagetrain-lean 
@endif libsframe
	@[ -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 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 libcody
	@if test -d $(HOST_SUBDIR)/libcody; then \
	  cd $(HOST_SUBDIR); mv libcody stagefeedback-libcody; \
	  mv prev-libcody stagetrain-libcody; : ; \
	fi
@endif libcody
@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 libctf
	@if test -d $(HOST_SUBDIR)/libctf; then \
	  cd $(HOST_SUBDIR); mv libctf stagefeedback-libctf; \
	  mv prev-libctf stagetrain-libctf; : ; \
	fi
@endif libctf
@if libsframe
	@if test -d $(HOST_SUBDIR)/libsframe; then \
	  cd $(HOST_SUBDIR); mv libsframe stagefeedback-libsframe; \
	  mv prev-libsframe stagetrain-libsframe; : ; \
	fi
@endif libsframe
	@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 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 libcody
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-libcody ] || \
	  mkdir stageautoprofile-libcody; \
	mv stageautoprofile-libcody libcody; \
	mv stage1-libcody prev-libcody || test -f stage1-lean 
@endif libcody
@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
@if libctf
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-libctf ] || \
	  mkdir stageautoprofile-libctf; \
	mv stageautoprofile-libctf libctf; \
	mv stage1-libctf prev-libctf || test -f stage1-lean 
@endif libctf
@if libsframe
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-libsframe ] || \
	  mkdir stageautoprofile-libsframe; \
	mv stageautoprofile-libsframe libsframe; \
	mv stage1-libsframe prev-libsframe || test -f stage1-lean 
@endif libsframe
	@[ -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 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 libcody
	@if test -d $(HOST_SUBDIR)/libcody; then \
	  cd $(HOST_SUBDIR); mv libcody stageautoprofile-libcody; \
	  mv prev-libcody stage1-libcody; : ; \
	fi
@endif libcody
@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 libctf
	@if test -d $(HOST_SUBDIR)/libctf; then \
	  cd $(HOST_SUBDIR); mv libctf stageautoprofile-libctf; \
	  mv prev-libctf stage1-libctf; : ; \
	fi
@endif libctf
@if libsframe
	@if test -d $(HOST_SUBDIR)/libsframe; then \
	  cd $(HOST_SUBDIR); mv libsframe stageautoprofile-libsframe; \
	  mv prev-libsframe stage1-libsframe; : ; \
	fi
@endif libsframe
	@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 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 libcody
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-libcody ] || \
	  mkdir stageautofeedback-libcody; \
	mv stageautofeedback-libcody libcody; \
	mv stageautoprofile-libcody prev-libcody || test -f stageautoprofile-lean 
@endif libcody
@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
@if libctf
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-libctf ] || \
	  mkdir stageautofeedback-libctf; \
	mv stageautofeedback-libctf libctf; \
	mv stageautoprofile-libctf prev-libctf || test -f stageautoprofile-lean 
@endif libctf
@if libsframe
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-libsframe ] || \
	  mkdir stageautofeedback-libsframe; \
	mv stageautofeedback-libsframe libsframe; \
	mv stageautoprofile-libsframe prev-libsframe || test -f stageautoprofile-lean 
@endif libsframe
	@[ -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 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 libcody
	@if test -d $(HOST_SUBDIR)/libcody; then \
	  cd $(HOST_SUBDIR); mv libcody stageautofeedback-libcody; \
	  mv prev-libcody stageautoprofile-libcody; : ; \
	fi
@endif libcody
@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 libctf
	@if test -d $(HOST_SUBDIR)/libctf; then \
	  cd $(HOST_SUBDIR); mv libctf stageautofeedback-libctf; \
	  mv prev-libctf stageautoprofile-libctf; : ; \
	fi
@endif libctf
@if libsframe
	@if test -d $(HOST_SUBDIR)/libsframe; then \
	  cd $(HOST_SUBDIR); mv libsframe stageautofeedback-libsframe; \
	  mv prev-libsframe stageautoprofile-libsframe; : ; \
	fi
@endif libsframe
	@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-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-stage1-target-libbacktrace: maybe-all-stage1-gcc
configure-stage2-target-libbacktrace: maybe-all-stage2-gcc
configure-stage3-target-libbacktrace: maybe-all-stage3-gcc
configure-stage4-target-libbacktrace: maybe-all-stage4-gcc
configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-gcc
configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-gcc
configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-gcc
configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-gcc
configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-gcc
configure-target-libquadmath: stage_last
configure-target-libgfortran: stage_last
configure-target-libobjc: stage_last
configure-target-libgo: stage_last
configure-stage1-target-libphobos: maybe-all-stage1-gcc
configure-stage2-target-libphobos: maybe-all-stage2-gcc
configure-stage3-target-libphobos: maybe-all-stage3-gcc
configure-stage4-target-libphobos: maybe-all-stage4-gcc
configure-stageprofile-target-libphobos: maybe-all-stageprofile-gcc
configure-stagetrain-target-libphobos: maybe-all-stagetrain-gcc
configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-gcc
configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-gcc
configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-gcc
configure-target-libtermcap: stage_last
configure-target-winsup: stage_last
configure-target-libgloss: stage_last
configure-target-libffi: stage_last
configure-stage1-target-zlib: maybe-all-stage1-gcc
configure-stage2-target-zlib: maybe-all-stage2-gcc
configure-stage3-target-zlib: maybe-all-stage3-gcc
configure-stage4-target-zlib: maybe-all-stage4-gcc
configure-stageprofile-target-zlib: maybe-all-stageprofile-gcc
configure-stagetrain-target-zlib: maybe-all-stagetrain-gcc
configure-stagefeedback-target-zlib: maybe-all-stagefeedback-gcc
configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-gcc
configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-gcc
configure-target-rda: stage_last
configure-target-libada: stage_last
configure-target-libgm2: 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-stage1-target-libatomic: maybe-all-stage1-gcc
configure-stage2-target-libatomic: maybe-all-stage2-gcc
configure-stage3-target-libatomic: maybe-all-stage3-gcc
configure-stage4-target-libatomic: maybe-all-stage4-gcc
configure-stageprofile-target-libatomic: maybe-all-stageprofile-gcc
configure-stagetrain-target-libatomic: maybe-all-stagetrain-gcc
configure-stagefeedback-target-libatomic: maybe-all-stagefeedback-gcc
configure-stageautoprofile-target-libatomic: maybe-all-stageautoprofile-gcc
configure-stageautofeedback-target-libatomic: maybe-all-stageautofeedback-gcc
@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-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-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-libgm2: 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-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-libcody
all-stage1-gcc: all-stage1-libcody
all-stage2-gcc: all-stage2-libcody
all-stage3-gcc: all-stage3-libcody
all-stage4-gcc: all-stage4-libcody
all-stageprofile-gcc: all-stageprofile-libcody
all-stagetrain-gcc: all-stagetrain-libcody
all-stagefeedback-gcc: all-stagefeedback-libcody
all-stageautoprofile-gcc: all-stageautoprofile-libcody
all-stageautofeedback-gcc: all-stageautofeedback-libcody
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
configure-gdb: maybe-all-gnulib
configure-gdb: maybe-all-gdbsupport
all-gdb: maybe-all-gnulib
all-gdb: maybe-all-gdbsupport
all-gdb: maybe-all-readline
all-gdb: maybe-all-build-bison
all-gdb: maybe-all-sim
all-gdb: maybe-all-libtermcap
configure-gdbserver: maybe-all-gnulib
all-gdbserver: maybe-all-gdbsupport
all-gdbserver: maybe-all-gnulib
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-gdbsupport: maybe-configure-gnulib
all-gdbsupport: maybe-all-gnulib
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
all-binutils: maybe-all-libctf
all-stage1-binutils: maybe-all-stage1-libctf
all-stage2-binutils: maybe-all-stage2-libctf
all-stage3-binutils: maybe-all-stage3-libctf
all-stage4-binutils: maybe-all-stage4-libctf
all-stageprofile-binutils: maybe-all-stageprofile-libctf
all-stagetrain-binutils: maybe-all-stagetrain-libctf
all-stagefeedback-binutils: maybe-all-stagefeedback-libctf
all-stageautoprofile-binutils: maybe-all-stageautoprofile-libctf
all-stageautofeedback-binutils: maybe-all-stageautofeedback-libctf
all-ld: maybe-all-libctf
all-stage1-ld: maybe-all-stage1-libctf
all-stage2-ld: maybe-all-stage2-libctf
all-stage3-ld: maybe-all-stage3-libctf
all-stage4-ld: maybe-all-stage4-libctf
all-stageprofile-ld: maybe-all-stageprofile-libctf
all-stagetrain-ld: maybe-all-stagetrain-libctf
all-stagefeedback-ld: maybe-all-stagefeedback-libctf
all-stageautoprofile-ld: maybe-all-stageautoprofile-libctf
all-stageautofeedback-ld: maybe-all-stageautofeedback-libctf
all-binutils: maybe-all-libsframe
all-stage1-binutils: maybe-all-stage1-libsframe
all-stage2-binutils: maybe-all-stage2-libsframe
all-stage3-binutils: maybe-all-stage3-libsframe
all-stage4-binutils: maybe-all-stage4-libsframe
all-stageprofile-binutils: maybe-all-stageprofile-libsframe
all-stagetrain-binutils: maybe-all-stagetrain-libsframe
all-stagefeedback-binutils: maybe-all-stagefeedback-libsframe
all-stageautoprofile-binutils: maybe-all-stageautoprofile-libsframe
all-stageautofeedback-binutils: maybe-all-stageautofeedback-libsframe
install-binutils: maybe-install-opcodes
install-strip-binutils: maybe-install-strip-opcodes
install-libctf: maybe-install-bfd
install-ld: maybe-install-bfd
install-ld: maybe-install-libctf
install-strip-libctf: maybe-install-strip-bfd
install-strip-ld: maybe-install-strip-bfd
install-strip-ld: maybe-install-strip-libctf
configure-opcodes: configure-bfd
configure-stage1-opcodes: configure-stage1-bfd
configure-stage2-opcodes: configure-stage2-bfd
configure-stage3-opcodes: configure-stage3-bfd
configure-stage4-opcodes: configure-stage4-bfd
configure-stageprofile-opcodes: configure-stageprofile-bfd
configure-stagetrain-opcodes: configure-stagetrain-bfd
configure-stagefeedback-opcodes: configure-stagefeedback-bfd
configure-stageautoprofile-opcodes: configure-stageautoprofile-bfd
configure-stageautofeedback-opcodes: configure-stageautofeedback-bfd
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
configure-sim: maybe-all-gnulib
configure-sim: maybe-all-readline
all-fastjar: maybe-all-build-texinfo
all-libctf: all-libiberty
all-stage1-libctf: all-stage1-libiberty
all-stage2-libctf: all-stage2-libiberty
all-stage3-libctf: all-stage3-libiberty
all-stage4-libctf: all-stage4-libiberty
all-stageprofile-libctf: all-stageprofile-libiberty
all-stagetrain-libctf: all-stagetrain-libiberty
all-stagefeedback-libctf: all-stagefeedback-libiberty
all-stageautoprofile-libctf: all-stageautoprofile-libiberty
all-stageautofeedback-libctf: all-stageautofeedback-libiberty
all-libctf: maybe-all-bfd
all-stage1-libctf: maybe-all-stage1-bfd
all-stage2-libctf: maybe-all-stage2-bfd
all-stage3-libctf: maybe-all-stage3-bfd
all-stage4-libctf: maybe-all-stage4-bfd
all-stageprofile-libctf: maybe-all-stageprofile-bfd
all-stagetrain-libctf: maybe-all-stagetrain-bfd
all-stagefeedback-libctf: maybe-all-stagefeedback-bfd
all-stageautoprofile-libctf: maybe-all-stageautoprofile-bfd
all-stageautofeedback-libctf: maybe-all-stageautofeedback-bfd
all-libctf: maybe-all-zlib
all-stage1-libctf: maybe-all-stage1-zlib
all-stage2-libctf: maybe-all-stage2-zlib
all-stage3-libctf: maybe-all-stage3-zlib
all-stage4-libctf: maybe-all-stage4-zlib
all-stageprofile-libctf: maybe-all-stageprofile-zlib
all-stagetrain-libctf: maybe-all-stagetrain-zlib
all-stagefeedback-libctf: maybe-all-stagefeedback-zlib
all-stageautoprofile-libctf: maybe-all-stageautoprofile-zlib
all-stageautofeedback-libctf: maybe-all-stageautofeedback-zlib
configure-libctf: maybe-all-bfd
configure-stage1-libctf: maybe-all-stage1-bfd
configure-stage2-libctf: maybe-all-stage2-bfd
configure-stage3-libctf: maybe-all-stage3-bfd
configure-stage4-libctf: maybe-all-stage4-bfd
configure-stageprofile-libctf: maybe-all-stageprofile-bfd
configure-stagetrain-libctf: maybe-all-stagetrain-bfd
configure-stagefeedback-libctf: maybe-all-stagefeedback-bfd
configure-stageautoprofile-libctf: maybe-all-stageautoprofile-bfd
configure-stageautofeedback-libctf: maybe-all-stageautofeedback-bfd
configure-libctf: maybe-all-intl
configure-stage1-libctf: maybe-all-stage1-intl
configure-stage2-libctf: maybe-all-stage2-intl
configure-stage3-libctf: maybe-all-stage3-intl
configure-stage4-libctf: maybe-all-stage4-intl
configure-stageprofile-libctf: maybe-all-stageprofile-intl
configure-stagetrain-libctf: maybe-all-stagetrain-intl
configure-stagefeedback-libctf: maybe-all-stagefeedback-intl
configure-stageautoprofile-libctf: maybe-all-stageautoprofile-intl
configure-stageautofeedback-libctf: maybe-all-stageautofeedback-intl
configure-libctf: maybe-all-zlib
configure-stage1-libctf: maybe-all-stage1-zlib
configure-stage2-libctf: maybe-all-stage2-zlib
configure-stage3-libctf: maybe-all-stage3-zlib
configure-stage4-libctf: maybe-all-stage4-zlib
configure-stageprofile-libctf: maybe-all-stageprofile-zlib
configure-stagetrain-libctf: maybe-all-stagetrain-zlib
configure-stagefeedback-libctf: maybe-all-stagefeedback-zlib
configure-stageautoprofile-libctf: maybe-all-stageautoprofile-zlib
configure-stageautofeedback-libctf: maybe-all-stageautofeedback-zlib
configure-libctf: maybe-all-libiconv
configure-stage1-libctf: maybe-all-stage1-libiconv
configure-stage2-libctf: maybe-all-stage2-libiconv
configure-stage3-libctf: maybe-all-stage3-libiconv
configure-stage4-libctf: maybe-all-stage4-libiconv
configure-stageprofile-libctf: maybe-all-stageprofile-libiconv
configure-stagetrain-libctf: maybe-all-stagetrain-libiconv
configure-stagefeedback-libctf: maybe-all-stagefeedback-libiconv
configure-stageautoprofile-libctf: maybe-all-stageautoprofile-libiconv
configure-stageautofeedback-libctf: maybe-all-stageautofeedback-libiconv
check-libctf: maybe-all-ld
check-stage1-libctf: maybe-all-stage1-ld
check-stage2-libctf: maybe-all-stage2-ld
check-stage3-libctf: maybe-all-stage3-ld
check-stage4-libctf: maybe-all-stage4-ld
check-stageprofile-libctf: maybe-all-stageprofile-ld
check-stagetrain-libctf: maybe-all-stagetrain-ld
check-stagefeedback-libctf: maybe-all-stagefeedback-ld
check-stageautoprofile-libctf: maybe-all-stageautoprofile-ld
check-stageautofeedback-libctf: maybe-all-stageautofeedback-ld
distclean-gnulib: maybe-distclean-gdb
distclean-gnulib: maybe-distclean-gdbserver
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-libgo: maybe-configure-target-libffi
all-target-libgo: maybe-all-target-libffi
configure-target-libphobos: maybe-configure-target-libbacktrace
configure-stage1-target-libphobos: maybe-configure-stage1-target-libbacktrace
configure-stage2-target-libphobos: maybe-configure-stage2-target-libbacktrace
configure-stage3-target-libphobos: maybe-configure-stage3-target-libbacktrace
configure-stage4-target-libphobos: maybe-configure-stage4-target-libbacktrace
configure-stageprofile-target-libphobos: maybe-configure-stageprofile-target-libbacktrace
configure-stagetrain-target-libphobos: maybe-configure-stagetrain-target-libbacktrace
configure-stagefeedback-target-libphobos: maybe-configure-stagefeedback-target-libbacktrace
configure-stageautoprofile-target-libphobos: maybe-configure-stageautoprofile-target-libbacktrace
configure-stageautofeedback-target-libphobos: maybe-configure-stageautofeedback-target-libbacktrace
configure-target-libphobos: maybe-configure-target-zlib
configure-stage1-target-libphobos: maybe-configure-stage1-target-zlib
configure-stage2-target-libphobos: maybe-configure-stage2-target-zlib
configure-stage3-target-libphobos: maybe-configure-stage3-target-zlib
configure-stage4-target-libphobos: maybe-configure-stage4-target-zlib
configure-stageprofile-target-libphobos: maybe-configure-stageprofile-target-zlib
configure-stagetrain-target-libphobos: maybe-configure-stagetrain-target-zlib
configure-stagefeedback-target-libphobos: maybe-configure-stagefeedback-target-zlib
configure-stageautoprofile-target-libphobos: maybe-configure-stageautoprofile-target-zlib
configure-stageautofeedback-target-libphobos: maybe-configure-stageautofeedback-target-zlib
all-target-libphobos: maybe-all-target-libbacktrace
all-stage1-target-libphobos: maybe-all-stage1-target-libbacktrace
all-stage2-target-libphobos: maybe-all-stage2-target-libbacktrace
all-stage3-target-libphobos: maybe-all-stage3-target-libbacktrace
all-stage4-target-libphobos: maybe-all-stage4-target-libbacktrace
all-stageprofile-target-libphobos: maybe-all-stageprofile-target-libbacktrace
all-stagetrain-target-libphobos: maybe-all-stagetrain-target-libbacktrace
all-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libbacktrace
all-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libbacktrace
all-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libbacktrace
all-target-libphobos: maybe-all-target-zlib
all-stage1-target-libphobos: maybe-all-stage1-target-zlib
all-stage2-target-libphobos: maybe-all-stage2-target-zlib
all-stage3-target-libphobos: maybe-all-stage3-target-zlib
all-stage4-target-libphobos: maybe-all-stage4-target-zlib
all-stageprofile-target-libphobos: maybe-all-stageprofile-target-zlib
all-stagetrain-target-libphobos: maybe-all-stagetrain-target-zlib
all-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-zlib
all-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-zlib
all-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-zlib
all-target-libphobos: maybe-all-target-libatomic
all-stage1-target-libphobos: maybe-all-stage1-target-libatomic
all-stage2-target-libphobos: maybe-all-stage2-target-libatomic
all-stage3-target-libphobos: maybe-all-stage3-target-libatomic
all-stage4-target-libphobos: maybe-all-stage4-target-libatomic
all-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic
all-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic
all-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic
all-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic
all-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-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-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


@if gcc-bootstrap
configure-gnattools: stage_last
configure-libcc1: stage_last
configure-c++tools: stage_last
configure-utils: stage_last
configure-gdb: stage_last
configure-gdbserver: stage_last
configure-gdbsupport: 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-c++tools: maybe-all-gcc
all-utils: maybe-all-libiberty
configure-gdb: maybe-all-gmp
configure-gdb: maybe-all-mpfr
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
all-gdb: maybe-all-libctf
all-gdb: maybe-all-libbacktrace
all-gdbserver: maybe-all-libiberty
configure-gdbsupport: maybe-configure-intl
all-gdbsupport: maybe-all-intl
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-fastjar: maybe-configure-target-zlib
all-target-fastjar: maybe-all-target-zlib
configure-target-libgo: maybe-all-target-libstdc++-v3
all-target-libgo: maybe-all-target-libbacktrace
all-target-libgo: maybe-all-target-libatomic
configure-target-libgm2: maybe-all-target-libstdc++-v3
all-target-libgm2: maybe-all-target-libatomic
configure-target-newlib: maybe-all-binutils
configure-target-newlib: maybe-all-ld
configure-target-libgfortran: maybe-all-target-libbacktrace
configure-target-libgo: maybe-all-target-libbacktrace
@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-libbacktrace: maybe-all-stage1-target-libgcc
configure-stage2-target-libbacktrace: maybe-all-stage2-target-libgcc
configure-stage3-target-libbacktrace: maybe-all-stage3-target-libgcc
configure-stage4-target-libbacktrace: maybe-all-stage4-target-libgcc
configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libgcc
configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libgcc
configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libgcc
configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libgcc
configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libgcc
configure-stage1-target-libphobos: maybe-all-stage1-target-libgcc
configure-stage2-target-libphobos: maybe-all-stage2-target-libgcc
configure-stage3-target-libphobos: maybe-all-stage3-target-libgcc
configure-stage4-target-libphobos: maybe-all-stage4-target-libgcc
configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libgcc
configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libgcc
configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libgcc
configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libgcc
configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libgcc
configure-stage1-target-zlib: maybe-all-stage1-target-libgcc
configure-stage2-target-zlib: maybe-all-stage2-target-libgcc
configure-stage3-target-zlib: maybe-all-stage3-target-libgcc
configure-stage4-target-zlib: maybe-all-stage4-target-libgcc
configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libgcc
configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libgcc
configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libgcc
configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libgcc
configure-stageautofeedback-target-zlib: 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
configure-stage1-target-libatomic: maybe-all-stage1-target-libgcc
configure-stage2-target-libatomic: maybe-all-stage2-target-libgcc
configure-stage3-target-libatomic: maybe-all-stage3-target-libgcc
configure-stage4-target-libatomic: maybe-all-stage4-target-libgcc
configure-stageprofile-target-libatomic: maybe-all-stageprofile-target-libgcc
configure-stagetrain-target-libatomic: maybe-all-stagetrain-target-libgcc
configure-stagefeedback-target-libatomic: maybe-all-stagefeedback-target-libgcc
configure-stageautoprofile-target-libatomic: maybe-all-stageautoprofile-target-libgcc
configure-stageautofeedback-target-libatomic: 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-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-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-libgm2: 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-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-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-libgm2: 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
