
# 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; \
	GNATMAKE_FOR_BUILD="$(GNATMAKE_FOR_BUILD)"; export GNATMAKE_FOR_BUILD; \
	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; \
	PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)"; export PKG_CONFIG_PATH; \
	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; \
	GNATMAKE_FOR_BUILD="$(GNATMAKE_FOR_BUILD)"; export GNATMAKE_FOR_BUILD; \
	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; \
	SYSROOT_CFLAGS_FOR_TARGET="$(SYSROOT_CFLAGS_FOR_TARGET)"; export SYSROOT_CFLAGS_FOR_TARGET; \
	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_FOR_TARGET="$(CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
	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@
GNATMAKE_FOR_BUILD = @GNATMAKE_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 --all -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_PLUGIN_OPTION@
AR_FLAGS = rc
CC = @CC@
CXX = @CXX@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
LD = @LD@
LIPO = @LIPO@
NM = @NM@ @NM_PLUGIN_OPTION@
OBJDUMP = @OBJDUMP@
OTOOL = @OTOOL@
RANLIB = @RANLIB@ @RANLIB_PLUGIN_OPTION@
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 = @GDCFLAGS@
GM2FLAGS = $(CFLAGS)

PKG_CONFIG_PATH = @PKG_CONFIG_PATH@

# 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)
# Disable warnings as errors for a few reasons:
# - sources for gen* binaries do not have .gcda files available
# - inlining decisions generate extra warnings
STAGEfeedback_CONFIGURE_FLAGS = $(filter-out --enable-werror-always,$(STAGE_CONFIGURE_FLAGS))

STAGEautoprofile_CFLAGS = $(filter-out -gtoggle,$(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@ @AR_PLUGIN_OPTION_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@ @NM_PLUGIN_OPTION_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@ @RANLIB_PLUGIN_OPTION_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-gprofng \
    maybe-configure-gettext \
    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 \
    maybe-configure-libgrust
.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 \
    maybe-configure-target-libgrust \
    maybe-configure-target-libgcobol

# 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
all-host: maybe-all-gprofng
@if gettext-no-bootstrap
all-host: maybe-all-gettext
@endif gettext-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
@if libgrust-no-bootstrap
all-host: maybe-all-libgrust
@endif libgrust-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
all-target: maybe-all-target-libgrust
all-target: maybe-all-target-libgcobol

# 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-gprofng
info-host: maybe-info-gettext
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
info-host: maybe-info-libgrust

.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
info-target: maybe-info-target-libgrust
info-target: maybe-info-target-libgcobol

.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-gprofng
dvi-host: maybe-dvi-gettext
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
dvi-host: maybe-dvi-libgrust

.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
dvi-target: maybe-dvi-target-libgrust
dvi-target: maybe-dvi-target-libgcobol

.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-gprofng
pdf-host: maybe-pdf-gettext
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
pdf-host: maybe-pdf-libgrust

.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
pdf-target: maybe-pdf-target-libgrust
pdf-target: maybe-pdf-target-libgcobol

.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-gprofng
html-host: maybe-html-gettext
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
html-host: maybe-html-libgrust

.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
html-target: maybe-html-target-libgrust
html-target: maybe-html-target-libgcobol

.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-gprofng
TAGS-host: maybe-TAGS-gettext
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
TAGS-host: maybe-TAGS-libgrust

.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
TAGS-target: maybe-TAGS-target-libgrust
TAGS-target: maybe-TAGS-target-libgcobol

.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-gprofng
install-info-host: maybe-install-info-gettext
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
install-info-host: maybe-install-info-libgrust

.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
install-info-target: maybe-install-info-target-libgrust
install-info-target: maybe-install-info-target-libgcobol

.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-gprofng
install-dvi-host: maybe-install-dvi-gettext
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
install-dvi-host: maybe-install-dvi-libgrust

.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
install-dvi-target: maybe-install-dvi-target-libgrust
install-dvi-target: maybe-install-dvi-target-libgcobol

.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-gprofng
install-pdf-host: maybe-install-pdf-gettext
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
install-pdf-host: maybe-install-pdf-libgrust

.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
install-pdf-target: maybe-install-pdf-target-libgrust
install-pdf-target: maybe-install-pdf-target-libgcobol

.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-gprofng
install-html-host: maybe-install-html-gettext
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
install-html-host: maybe-install-html-libgrust

.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
install-html-target: maybe-install-html-target-libgrust
install-html-target: maybe-install-html-target-libgcobol

.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-gprofng
installcheck-host: maybe-installcheck-gettext
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
installcheck-host: maybe-installcheck-libgrust

.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
installcheck-target: maybe-installcheck-target-libgrust
installcheck-target: maybe-installcheck-target-libgcobol

.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-gprofng
mostlyclean-host: maybe-mostlyclean-gettext
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
mostlyclean-host: maybe-mostlyclean-libgrust

.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
mostlyclean-target: maybe-mostlyclean-target-libgrust
mostlyclean-target: maybe-mostlyclean-target-libgcobol

.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-gprofng
clean-host: maybe-clean-gettext
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
clean-host: maybe-clean-libgrust

.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
clean-target: maybe-clean-target-libgrust
clean-target: maybe-clean-target-libgcobol

.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-gprofng
distclean-host: maybe-distclean-gettext
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
distclean-host: maybe-distclean-libgrust

.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
distclean-target: maybe-distclean-target-libgrust
distclean-target: maybe-distclean-target-libgcobol

.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-gprofng
maintainer-clean-host: maybe-maintainer-clean-gettext
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
maintainer-clean-host: maybe-maintainer-clean-libgrust

.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
maintainer-clean-target: maybe-maintainer-clean-target-libgrust
maintainer-clean-target: maybe-maintainer-clean-target-libgcobol


# 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-gprofng \
    maybe-check-gettext \
    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 \
    maybe-check-libgrust

.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 \
    maybe-check-target-libgrust \
    maybe-check-target-libgcobol

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-gprofng \
    maybe-install-gettext \
    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 \
    maybe-install-libgrust

.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-gprofng \
    maybe-install-gettext \
    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 \
    maybe-install-libgrust

.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 \
    maybe-install-target-libgrust \
    maybe-install-target-libgcobol

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-gprofng \
    maybe-install-strip-gettext \
    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 \
    maybe-install-strip-libgrust

.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 \
    maybe-install-strip-target-libgrust \
    maybe-install-strip-target-libgcobol


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





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




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

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

@endif gprofng

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

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

@endif gprofng

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

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

@endif gprofng

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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



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

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

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

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

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

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

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

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

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





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



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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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





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

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

@endif gettext

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

install-gettext:

@endif gettext

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

install-strip-gettext:

@endif gettext

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

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

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

@endif gettext

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

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

@endif gettext

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

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

@endif gettext

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

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

@endif gettext

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

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

@endif gettext

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

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

@endif gettext

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

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

@endif gettext

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

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

@endif gettext

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

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

@endif gettext

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

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

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

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

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

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

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

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

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

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



.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/$(cpu_type)/$(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/$(cpu_type)/$(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/$(cpu_type)/$(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/$(cpu_type)/$(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/$(cpu_type)/$(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/$(cpu_type)/$(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/$(cpu_type)/$(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/$(cpu_type)/$(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/$(cpu_type)/$(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/$(cpu_type)/$(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/$(cpu_type)/$(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/$(cpu_type)/$(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



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



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

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

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

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

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

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

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

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

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





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



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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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





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

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

@endif libgrust

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

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

@endif libgrust

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

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

@endif libgrust

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



# ---------------------------------------
# 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/$(cpu_type)/$(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/$(cpu_type)/$(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/$(cpu_type)/$(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/$(cpu_type)/$(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/$(cpu_type)/$(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/$(cpu_type)/$(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/$(cpu_type)/$(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/$(cpu_type)/$(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/$(cpu_type)/$(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





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





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





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

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

@endif target-libgrust

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

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

@endif target-libgrust

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

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

@endif target-libgrust

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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





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





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





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

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

@endif target-libgcobol

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

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

@endif target-libgcobol

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

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

@endif target-libgcobol

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



@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: gcc-site.exp
gcc-site.exp:
	r=`${PWD_COMMAND}`; export r; \
	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
	$(HOST_EXPORTS) \
	(cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) site.exp);


.PHONY: check-gcc-c check-c
check-gcc-c: gcc-site.exp
	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++: gcc-site.exp
	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: gcc-site.exp
	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: gcc-site.exp
	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: gcc-site.exp
	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++: gcc-site.exp
	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: gcc-site.exp
	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: gcc-site.exp
	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: gcc-site.exp
	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: gcc-site.exp
	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: gcc-site.exp
	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

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


# 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 gettext
	@cd $(HOST_SUBDIR); [ -d stage1-gettext ] || \
	  mkdir stage1-gettext; \
	mv stage1-gettext gettext
@endif gettext
@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
@if libgrust
	@cd $(HOST_SUBDIR); [ -d stage1-libgrust ] || \
	  mkdir stage1-libgrust; \
	mv stage1-libgrust libgrust
@endif libgrust
	@[ -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 gettext
	@if test -d $(HOST_SUBDIR)/gettext; then \
	  cd $(HOST_SUBDIR); mv gettext stage1-gettext; \
	fi
@endif gettext
@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 libgrust
	@if test -d $(HOST_SUBDIR)/libgrust; then \
	  cd $(HOST_SUBDIR); mv libgrust stage1-libgrust; \
	fi
@endif libgrust
	@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 gettext
	@cd $(HOST_SUBDIR); [ -d stage2-gettext ] || \
	  mkdir stage2-gettext; \
	mv stage2-gettext gettext; \
	mv stage1-gettext prev-gettext || test -f stage1-lean 
@endif gettext
@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
@if libgrust
	@cd $(HOST_SUBDIR); [ -d stage2-libgrust ] || \
	  mkdir stage2-libgrust; \
	mv stage2-libgrust libgrust; \
	mv stage1-libgrust prev-libgrust || test -f stage1-lean 
@endif libgrust
	@[ -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 gettext
	@if test -d $(HOST_SUBDIR)/gettext; then \
	  cd $(HOST_SUBDIR); mv gettext stage2-gettext; \
	  mv prev-gettext stage1-gettext; : ; \
	fi
@endif gettext
@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 libgrust
	@if test -d $(HOST_SUBDIR)/libgrust; then \
	  cd $(HOST_SUBDIR); mv libgrust stage2-libgrust; \
	  mv prev-libgrust stage1-libgrust; : ; \
	fi
@endif libgrust
	@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 gettext
	@cd $(HOST_SUBDIR); [ -d stage3-gettext ] || \
	  mkdir stage3-gettext; \
	mv stage3-gettext gettext; \
	mv stage2-gettext prev-gettext || test -f stage2-lean 
@endif gettext
@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
@if libgrust
	@cd $(HOST_SUBDIR); [ -d stage3-libgrust ] || \
	  mkdir stage3-libgrust; \
	mv stage3-libgrust libgrust; \
	mv stage2-libgrust prev-libgrust || test -f stage2-lean 
@endif libgrust
	@[ -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 gettext
	@if test -d $(HOST_SUBDIR)/gettext; then \
	  cd $(HOST_SUBDIR); mv gettext stage3-gettext; \
	  mv prev-gettext stage2-gettext; : ; \
	fi
@endif gettext
@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 libgrust
	@if test -d $(HOST_SUBDIR)/libgrust; then \
	  cd $(HOST_SUBDIR); mv libgrust stage3-libgrust; \
	  mv prev-libgrust stage2-libgrust; : ; \
	fi
@endif libgrust
	@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 gettext
	@cd $(HOST_SUBDIR); [ -d stage4-gettext ] || \
	  mkdir stage4-gettext; \
	mv stage4-gettext gettext; \
	mv stage3-gettext prev-gettext || test -f stage3-lean 
@endif gettext
@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
@if libgrust
	@cd $(HOST_SUBDIR); [ -d stage4-libgrust ] || \
	  mkdir stage4-libgrust; \
	mv stage4-libgrust libgrust; \
	mv stage3-libgrust prev-libgrust || test -f stage3-lean 
@endif libgrust
	@[ -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 gettext
	@if test -d $(HOST_SUBDIR)/gettext; then \
	  cd $(HOST_SUBDIR); mv gettext stage4-gettext; \
	  mv prev-gettext stage3-gettext; : ; \
	fi
@endif gettext
@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 libgrust
	@if test -d $(HOST_SUBDIR)/libgrust; then \
	  cd $(HOST_SUBDIR); mv libgrust stage4-libgrust; \
	  mv prev-libgrust stage3-libgrust; : ; \
	fi
@endif libgrust
	@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 gettext
	@cd $(HOST_SUBDIR); [ -d stageprofile-gettext ] || \
	  mkdir stageprofile-gettext; \
	mv stageprofile-gettext gettext; \
	mv stage1-gettext prev-gettext || test -f stage1-lean 
@endif gettext
@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
@if libgrust
	@cd $(HOST_SUBDIR); [ -d stageprofile-libgrust ] || \
	  mkdir stageprofile-libgrust; \
	mv stageprofile-libgrust libgrust; \
	mv stage1-libgrust prev-libgrust || test -f stage1-lean 
@endif libgrust
	@[ -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 gettext
	@if test -d $(HOST_SUBDIR)/gettext; then \
	  cd $(HOST_SUBDIR); mv gettext stageprofile-gettext; \
	  mv prev-gettext stage1-gettext; : ; \
	fi
@endif gettext
@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 libgrust
	@if test -d $(HOST_SUBDIR)/libgrust; then \
	  cd $(HOST_SUBDIR); mv libgrust stageprofile-libgrust; \
	  mv prev-libgrust stage1-libgrust; : ; \
	fi
@endif libgrust
	@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 gettext
	@cd $(HOST_SUBDIR); [ -d stagetrain-gettext ] || \
	  mkdir stagetrain-gettext; \
	mv stagetrain-gettext gettext; \
	mv stageprofile-gettext prev-gettext || test -f stageprofile-lean 
@endif gettext
@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
@if libgrust
	@cd $(HOST_SUBDIR); [ -d stagetrain-libgrust ] || \
	  mkdir stagetrain-libgrust; \
	mv stagetrain-libgrust libgrust; \
	mv stageprofile-libgrust prev-libgrust || test -f stageprofile-lean 
@endif libgrust
	@[ -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 gettext
	@if test -d $(HOST_SUBDIR)/gettext; then \
	  cd $(HOST_SUBDIR); mv gettext stagetrain-gettext; \
	  mv prev-gettext stageprofile-gettext; : ; \
	fi
@endif gettext
@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 libgrust
	@if test -d $(HOST_SUBDIR)/libgrust; then \
	  cd $(HOST_SUBDIR); mv libgrust stagetrain-libgrust; \
	  mv prev-libgrust stageprofile-libgrust; : ; \
	fi
@endif libgrust
	@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 gettext
	@cd $(HOST_SUBDIR); [ -d stagefeedback-gettext ] || \
	  mkdir stagefeedback-gettext; \
	mv stagefeedback-gettext gettext; \
	mv stagetrain-gettext prev-gettext || test -f stagetrain-lean 
@endif gettext
@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
@if libgrust
	@cd $(HOST_SUBDIR); [ -d stagefeedback-libgrust ] || \
	  mkdir stagefeedback-libgrust; \
	mv stagefeedback-libgrust libgrust; \
	mv stagetrain-libgrust prev-libgrust || test -f stagetrain-lean 
@endif libgrust
	@[ -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 gettext
	@if test -d $(HOST_SUBDIR)/gettext; then \
	  cd $(HOST_SUBDIR); mv gettext stagefeedback-gettext; \
	  mv prev-gettext stagetrain-gettext; : ; \
	fi
@endif gettext
@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 libgrust
	@if test -d $(HOST_SUBDIR)/libgrust; then \
	  cd $(HOST_SUBDIR); mv libgrust stagefeedback-libgrust; \
	  mv prev-libgrust stagetrain-libgrust; : ; \
	fi
@endif libgrust
	@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 gettext
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-gettext ] || \
	  mkdir stageautoprofile-gettext; \
	mv stageautoprofile-gettext gettext; \
	mv stage1-gettext prev-gettext || test -f stage1-lean 
@endif gettext
@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
@if libgrust
	@cd $(HOST_SUBDIR); [ -d stageautoprofile-libgrust ] || \
	  mkdir stageautoprofile-libgrust; \
	mv stageautoprofile-libgrust libgrust; \
	mv stage1-libgrust prev-libgrust || test -f stage1-lean 
@endif libgrust
	@[ -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 gettext
	@if test -d $(HOST_SUBDIR)/gettext; then \
	  cd $(HOST_SUBDIR); mv gettext stageautoprofile-gettext; \
	  mv prev-gettext stage1-gettext; : ; \
	fi
@endif gettext
@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 libgrust
	@if test -d $(HOST_SUBDIR)/libgrust; then \
	  cd $(HOST_SUBDIR); mv libgrust stageautoprofile-libgrust; \
	  mv prev-libgrust stage1-libgrust; : ; \
	fi
@endif libgrust
	@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 gettext
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-gettext ] || \
	  mkdir stageautofeedback-gettext; \
	mv stageautofeedback-gettext gettext; \
	mv stageautoprofile-gettext prev-gettext || test -f stageautoprofile-lean 
@endif gettext
@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
@if libgrust
	@cd $(HOST_SUBDIR); [ -d stageautofeedback-libgrust ] || \
	  mkdir stageautofeedback-libgrust; \
	mv stageautofeedback-libgrust libgrust; \
	mv stageautoprofile-libgrust prev-libgrust || test -f stageautoprofile-lean 
@endif libgrust
	@[ -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 gettext
	@if test -d $(HOST_SUBDIR)/gettext; then \
	  cd $(HOST_SUBDIR); mv gettext stageautofeedback-gettext; \
	  mv prev-gettext stageautoprofile-gettext; : ; \
	fi
@endif gettext
@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 libgrust
	@if test -d $(HOST_SUBDIR)/libgrust; then \
	  cd $(HOST_SUBDIR); mv libgrust stageautofeedback-libgrust; \
	  mv prev-libgrust stageautoprofile-libgrust; : ; \
	fi
@endif libgrust
	@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
configure-target-libgrust: stage_last
configure-target-libgcobol: stage_last
@endif gcc-bootstrap

@if gcc-no-bootstrap
configure-target-libstdc++-v3: maybe-all-gcc
configure-target-libsanitizer: maybe-all-gcc
configure-target-libvtv: maybe-all-gcc
configure-target-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
configure-target-libgrust: maybe-all-gcc
configure-target-libgcobol: 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-gettext
configure-stage1-gcc: maybe-configure-stage1-gettext
configure-stage2-gcc: maybe-configure-stage2-gettext
configure-stage3-gcc: maybe-configure-stage3-gettext
configure-stage4-gcc: maybe-configure-stage4-gettext
configure-stageprofile-gcc: maybe-configure-stageprofile-gettext
configure-stagetrain-gcc: maybe-configure-stagetrain-gettext
configure-stagefeedback-gcc: maybe-configure-stagefeedback-gettext
configure-stageautoprofile-gcc: maybe-configure-stageautoprofile-gettext
configure-stageautofeedback-gcc: maybe-configure-stageautofeedback-gettext
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-libgrust
all-stage1-gcc: maybe-all-stage1-libgrust
all-stage2-gcc: maybe-all-stage2-libgrust
all-stage3-gcc: maybe-all-stage3-libgrust
all-stage4-gcc: maybe-all-stage4-libgrust
all-stageprofile-gcc: maybe-all-stageprofile-libgrust
all-stagetrain-gcc: maybe-all-stagetrain-libgrust
all-stagefeedback-gcc: maybe-all-stagefeedback-libgrust
all-stageautoprofile-gcc: maybe-all-stageautoprofile-libgrust
all-stageautofeedback-gcc: maybe-all-stageautofeedback-libgrust
all-gcc: maybe-all-gettext
all-stage1-gcc: maybe-all-stage1-gettext
all-stage2-gcc: maybe-all-stage2-gettext
all-stage3-gcc: maybe-all-stage3-gettext
all-stage4-gcc: maybe-all-stage4-gettext
all-stageprofile-gcc: maybe-all-stageprofile-gettext
all-stagetrain-gcc: maybe-all-stagetrain-gettext
all-stagefeedback-gcc: maybe-all-stagefeedback-gettext
all-stageautoprofile-gcc: maybe-all-stageautoprofile-gettext
all-stageautofeedback-gcc: maybe-all-stageautofeedback-gettext
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-gettext
configure-stage1-libcpp: maybe-configure-stage1-gettext
configure-stage2-libcpp: maybe-configure-stage2-gettext
configure-stage3-libcpp: maybe-configure-stage3-gettext
configure-stage4-libcpp: maybe-configure-stage4-gettext
configure-stageprofile-libcpp: maybe-configure-stageprofile-gettext
configure-stagetrain-libcpp: maybe-configure-stagetrain-gettext
configure-stagefeedback-libcpp: maybe-configure-stagefeedback-gettext
configure-stageautoprofile-libcpp: maybe-configure-stageautoprofile-gettext
configure-stageautofeedback-libcpp: maybe-configure-stageautofeedback-gettext
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-gettext
all-stage1-libcpp: maybe-all-stage1-gettext
all-stage2-libcpp: maybe-all-stage2-gettext
all-stage3-libcpp: maybe-all-stage3-gettext
all-stage4-libcpp: maybe-all-stage4-gettext
all-stageprofile-libcpp: maybe-all-stageprofile-gettext
all-stagetrain-libcpp: maybe-all-stagetrain-gettext
all-stagefeedback-libcpp: maybe-all-stagefeedback-gettext
all-stageautoprofile-libcpp: maybe-all-stageautoprofile-gettext
all-stageautofeedback-libcpp: maybe-all-stageautofeedback-gettext
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-gettext: maybe-all-libiconv
configure-stage1-gettext: maybe-all-stage1-libiconv
configure-stage2-gettext: maybe-all-stage2-libiconv
configure-stage3-gettext: maybe-all-stage3-libiconv
configure-stage4-gettext: maybe-all-stage4-libiconv
configure-stageprofile-gettext: maybe-all-stageprofile-libiconv
configure-stagetrain-gettext: maybe-all-stagetrain-libiconv
configure-stagefeedback-gettext: maybe-all-stagefeedback-libiconv
configure-stageautoprofile-gettext: maybe-all-stageautoprofile-libiconv
configure-stageautofeedback-gettext: 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-gettext: maybe-all-libiconv
all-stage1-gettext: maybe-all-stage1-libiconv
all-stage2-gettext: maybe-all-stage2-libiconv
all-stage3-gettext: maybe-all-stage3-libiconv
all-stage4-gettext: maybe-all-stage4-libiconv
all-stageprofile-gettext: maybe-all-stageprofile-libiconv
all-stagetrain-gettext: maybe-all-stagetrain-libiconv
all-stagefeedback-gettext: maybe-all-stagefeedback-libiconv
all-stageautoprofile-gettext: maybe-all-stageautoprofile-libiconv
all-stageautofeedback-gettext: 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-gettext
configure-stage1-bfd: maybe-configure-stage1-gettext
configure-stage2-bfd: maybe-configure-stage2-gettext
configure-stage3-bfd: maybe-configure-stage3-gettext
configure-stage4-bfd: maybe-configure-stage4-gettext
configure-stageprofile-bfd: maybe-configure-stageprofile-gettext
configure-stagetrain-bfd: maybe-configure-stagetrain-gettext
configure-stagefeedback-bfd: maybe-configure-stagefeedback-gettext
configure-stageautoprofile-bfd: maybe-configure-stageautoprofile-gettext
configure-stageautofeedback-bfd: maybe-configure-stageautofeedback-gettext
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-gettext
all-stage1-bfd: maybe-all-stage1-gettext
all-stage2-bfd: maybe-all-stage2-gettext
all-stage3-bfd: maybe-all-stage3-gettext
all-stage4-bfd: maybe-all-stage4-gettext
all-stageprofile-bfd: maybe-all-stageprofile-gettext
all-stagetrain-bfd: maybe-all-stagetrain-gettext
all-stagefeedback-bfd: maybe-all-stagefeedback-gettext
all-stageautoprofile-bfd: maybe-all-stageautoprofile-gettext
all-stageautofeedback-bfd: maybe-all-stageautofeedback-gettext
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
all-bfd: maybe-all-libsframe
all-stage1-bfd: maybe-all-stage1-libsframe
all-stage2-bfd: maybe-all-stage2-libsframe
all-stage3-bfd: maybe-all-stage3-libsframe
all-stage4-bfd: maybe-all-stage4-libsframe
all-stageprofile-bfd: maybe-all-stageprofile-libsframe
all-stagetrain-bfd: maybe-all-stagetrain-libsframe
all-stagefeedback-bfd: maybe-all-stagefeedback-libsframe
all-stageautoprofile-bfd: maybe-all-stageautoprofile-libsframe
all-stageautofeedback-bfd: maybe-all-stageautofeedback-libsframe
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-gettext
configure-stage1-binutils: maybe-configure-stage1-gettext
configure-stage2-binutils: maybe-configure-stage2-gettext
configure-stage3-binutils: maybe-configure-stage3-gettext
configure-stage4-binutils: maybe-configure-stage4-gettext
configure-stageprofile-binutils: maybe-configure-stageprofile-gettext
configure-stagetrain-binutils: maybe-configure-stagetrain-gettext
configure-stagefeedback-binutils: maybe-configure-stagefeedback-gettext
configure-stageautoprofile-binutils: maybe-configure-stageautoprofile-gettext
configure-stageautofeedback-binutils: maybe-configure-stageautofeedback-gettext
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-gettext
all-stage1-binutils: maybe-all-stage1-gettext
all-stage2-binutils: maybe-all-stage2-gettext
all-stage3-binutils: maybe-all-stage3-gettext
all-stage4-binutils: maybe-all-stage4-gettext
all-stageprofile-binutils: maybe-all-stageprofile-gettext
all-stagetrain-binutils: maybe-all-stagetrain-gettext
all-stagefeedback-binutils: maybe-all-stagefeedback-gettext
all-stageautoprofile-binutils: maybe-all-stageautoprofile-gettext
all-stageautofeedback-binutils: maybe-all-stageautofeedback-gettext
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
install-bfd: maybe-install-libsframe
install-strip-bfd: maybe-install-strip-libsframe
configure-opcodes: all-bfd
configure-stage1-opcodes: all-stage1-bfd
configure-stage2-opcodes: all-stage2-bfd
configure-stage3-opcodes: all-stage3-bfd
configure-stage4-opcodes: all-stage4-bfd
configure-stageprofile-opcodes: all-stageprofile-bfd
configure-stagetrain-opcodes: all-stagetrain-bfd
configure-stagefeedback-opcodes: all-stagefeedback-bfd
configure-stageautoprofile-opcodes: all-stageautoprofile-bfd
configure-stageautofeedback-opcodes: all-stageautofeedback-bfd
install-opcodes: maybe-install-bfd
install-strip-opcodes: maybe-install-strip-bfd
configure-gas: maybe-configure-gettext
configure-stage1-gas: maybe-configure-stage1-gettext
configure-stage2-gas: maybe-configure-stage2-gettext
configure-stage3-gas: maybe-configure-stage3-gettext
configure-stage4-gas: maybe-configure-stage4-gettext
configure-stageprofile-gas: maybe-configure-stageprofile-gettext
configure-stagetrain-gas: maybe-configure-stagetrain-gettext
configure-stagefeedback-gas: maybe-configure-stagefeedback-gettext
configure-stageautoprofile-gas: maybe-configure-stageautoprofile-gettext
configure-stageautofeedback-gas: maybe-configure-stageautofeedback-gettext
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-gettext
all-stage1-gas: maybe-all-stage1-gettext
all-stage2-gas: maybe-all-stage2-gettext
all-stage3-gas: maybe-all-stage3-gettext
all-stage4-gas: maybe-all-stage4-gettext
all-stageprofile-gas: maybe-all-stageprofile-gettext
all-stagetrain-gas: maybe-all-stagetrain-gettext
all-stagefeedback-gas: maybe-all-stagefeedback-gettext
all-stageautoprofile-gas: maybe-all-stageautoprofile-gettext
all-stageautofeedback-gas: maybe-all-stageautofeedback-gettext
install-gprofng: maybe-install-opcodes
install-gprofng: maybe-install-bfd
configure-ld: maybe-configure-gettext
configure-stage1-ld: maybe-configure-stage1-gettext
configure-stage2-ld: maybe-configure-stage2-gettext
configure-stage3-ld: maybe-configure-stage3-gettext
configure-stage4-ld: maybe-configure-stage4-gettext
configure-stageprofile-ld: maybe-configure-stageprofile-gettext
configure-stagetrain-ld: maybe-configure-stagetrain-gettext
configure-stagefeedback-ld: maybe-configure-stagefeedback-gettext
configure-stageautoprofile-ld: maybe-configure-stageautoprofile-gettext
configure-stageautofeedback-ld: maybe-configure-stageautofeedback-gettext
configure-ld: maybe-all-bfd
configure-stage1-ld: maybe-all-stage1-bfd
configure-stage2-ld: maybe-all-stage2-bfd
configure-stage3-ld: maybe-all-stage3-bfd
configure-stage4-ld: maybe-all-stage4-bfd
configure-stageprofile-ld: maybe-all-stageprofile-bfd
configure-stagetrain-ld: maybe-all-stagetrain-bfd
configure-stagefeedback-ld: maybe-all-stagefeedback-bfd
configure-stageautoprofile-ld: maybe-all-stageautoprofile-bfd
configure-stageautofeedback-ld: maybe-all-stageautofeedback-bfd
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-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-gettext
all-stage1-ld: maybe-all-stage1-gettext
all-stage2-ld: maybe-all-stage2-gettext
all-stage3-ld: maybe-all-stage3-gettext
all-stage4-ld: maybe-all-stage4-gettext
all-stageprofile-ld: maybe-all-stageprofile-gettext
all-stagetrain-ld: maybe-all-stagetrain-gettext
all-stagefeedback-ld: maybe-all-stagefeedback-gettext
all-stageautoprofile-ld: maybe-all-stageautoprofile-gettext
all-stageautofeedback-ld: maybe-all-stageautofeedback-gettext
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-gettext
configure-stage1-gold: maybe-configure-stage1-gettext
configure-stage2-gold: maybe-configure-stage2-gettext
configure-stage3-gold: maybe-configure-stage3-gettext
configure-stage4-gold: maybe-configure-stage4-gettext
configure-stageprofile-gold: maybe-configure-stageprofile-gettext
configure-stagetrain-gold: maybe-configure-stagetrain-gettext
configure-stagefeedback-gold: maybe-configure-stagefeedback-gettext
configure-stageautoprofile-gold: maybe-configure-stageautoprofile-gettext
configure-stageautofeedback-gold: maybe-configure-stageautofeedback-gettext
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-gettext
all-stage1-gold: maybe-all-stage1-gettext
all-stage2-gold: maybe-all-stage2-gettext
all-stage3-gold: maybe-all-stage3-gettext
all-stage4-gold: maybe-all-stage4-gettext
all-stageprofile-gold: maybe-all-stageprofile-gettext
all-stagetrain-gold: maybe-all-stagetrain-gettext
all-stagefeedback-gold: maybe-all-stagefeedback-gettext
all-stageautoprofile-gold: maybe-all-stageautoprofile-gettext
all-stageautofeedback-gold: maybe-all-stageautofeedback-gettext
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-gettext
configure-stage1-opcodes: maybe-configure-stage1-gettext
configure-stage2-opcodes: maybe-configure-stage2-gettext
configure-stage3-opcodes: maybe-configure-stage3-gettext
configure-stage4-opcodes: maybe-configure-stage4-gettext
configure-stageprofile-opcodes: maybe-configure-stageprofile-gettext
configure-stagetrain-opcodes: maybe-configure-stagetrain-gettext
configure-stagefeedback-opcodes: maybe-configure-stagefeedback-gettext
configure-stageautoprofile-opcodes: maybe-configure-stageautoprofile-gettext
configure-stageautofeedback-opcodes: maybe-configure-stageautofeedback-gettext
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-gettext
all-stage1-opcodes: maybe-all-stage1-gettext
all-stage2-opcodes: maybe-all-stage2-gettext
all-stage3-opcodes: maybe-all-stage3-gettext
all-stage4-opcodes: maybe-all-stage4-gettext
all-stageprofile-opcodes: maybe-all-stageprofile-gettext
all-stagetrain-opcodes: maybe-all-stagetrain-gettext
all-stagefeedback-opcodes: maybe-all-stagefeedback-gettext
all-stageautoprofile-opcodes: maybe-all-stageautoprofile-gettext
all-stageautofeedback-opcodes: maybe-all-stageautofeedback-gettext
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-gettext
configure-stage1-libctf: maybe-all-stage1-gettext
configure-stage2-libctf: maybe-all-stage2-gettext
configure-stage3-libctf: maybe-all-stage3-gettext
configure-stage4-libctf: maybe-all-stage4-gettext
configure-stageprofile-libctf: maybe-all-stageprofile-gettext
configure-stagetrain-libctf: maybe-all-stagetrain-gettext
configure-stagefeedback-libctf: maybe-all-stagefeedback-gettext
configure-stageautoprofile-libctf: maybe-all-stageautoprofile-gettext
configure-stageautofeedback-libctf: maybe-all-stageautofeedback-gettext
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
distclean-gnulib: maybe-distclean-sim
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
install-target-libgcobol: maybe-install-target-libstdc++-v3
install-target-libgcobol: maybe-install-target-libquadmath
all-target-libgloss: maybe-all-target-newlib
all-target-winsup: maybe-all-target-libtermcap
configure-target-libgfortran: maybe-all-target-libquadmath
configure-target-libgcobol: 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-gprofng: 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-gettext
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
configure-gdbserver: maybe-all-libiconv
all-gdbserver: maybe-all-libiberty
all-gdbserver: maybe-all-libiconv
configure-gdbsupport: maybe-configure-gettext
all-gdbsupport: maybe-all-gettext
configure-gprof: maybe-configure-gettext
all-gprof: maybe-all-libiberty
all-gprof: maybe-all-bfd
all-gprof: maybe-all-opcodes
all-gprof: maybe-all-gettext
all-gprof: maybe-all-gas
configure-gprofng: maybe-configure-gettext
all-gprofng: maybe-all-libiberty
all-gprofng: maybe-all-bfd
all-gprofng: maybe-all-opcodes
all-gprofng: maybe-all-gettext
all-gprofng: maybe-all-gas
all-sid: maybe-all-libiberty
all-sid: maybe-all-bfd
all-sid: maybe-all-opcodes
configure-sim: maybe-configure-gettext
all-sim: maybe-all-gettext
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-gettext
all-flex: maybe-all-gettext
all-m4: maybe-all-gettext
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-libgrust: maybe-all-target-libstdc++-v3
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
configure-target-libgrust: maybe-all-target-libgcc
configure-target-libgcobol: 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-target-libgrust: maybe-all-target-newlib maybe-all-target-libgloss

configure-target-libgcobol: maybe-all-target-newlib maybe-all-target-libgloss
configure-target-libgcobol: maybe-all-target-libstdc++-v3


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)/config/gcc-plugin.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
