summaryrefslogtreecommitdiff
path: root/gcc/Makefile.in
diff options
context:
space:
mode:
authorbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-11 10:49:30 +0000
committerbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-11 10:49:30 +0000
commite3ca137abdba59406f4ede603e77384dd23cc26b (patch)
tree19a33fe8fadb0d2abd82c987bd589f8c658de03c /gcc/Makefile.in
parent90fab4b1390ced6e6d3d6e9c80d5566f6d0a0966 (diff)
downloadgcc-e3ca137abdba59406f4ede603e77384dd23cc26b.tar.gz
2007-01-11 Paolo Bonzini <bonzini@gnu.org>
* configure.ac (strict1_warn): Rename to strict_warn. (WERROR, --enable-werror, symlink hacks, stage1_cflags, cc_set_by_configure, quoted_cc_set_by_configure, stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure, all_boot_languages, all_stagestuff): Remove. (target_list): Remove bootstrap targets. * Makefile.in (quickstrap): Unconditionally make a synonym of all. (BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING, REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS, SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF, VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS, STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build, stage1_copy, stage2_build, stage2_copy, stageprofile_build, stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build, stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap, bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3, bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2, unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2, restage3, restage4, restageprofile, restagefeedback, bubbleestrap, cleanstrap, unstrap, restrap, *compare, *compare3, *compare4, *compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1, stage2-start, stage2, stage3-start, stage3, stage4-start, stage4, stageprofile-start, stageprofile, stagefeedback-start, stagefeedback, risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove. (ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS. (STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES. (mostlyclean): Adjust. (clean, distclean): Don't mention bootstrap stuff. * configure: Regenerate. * ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in, java/config-lang.in, objc/config-lang.in, objcp/config-lang.in, treelang/config-lang.in (stagestuff): Remove. * doc/sourcebuild.texi (stage1, stage2, stage3, stage4, stageprofile, stagefeedback, stagestuff): Remove mention. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120670 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/Makefile.in')
-rw-r--r--gcc/Makefile.in614
1 files changed, 15 insertions, 599 deletions
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 1ec937a9d57..76259032fdf 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -24,14 +24,17 @@
# The targets for external use include:
# all, doc, proto, install, install-cross, install-cross-rest,
-# uninstall, TAGS, mostlyclean, clean, distclean, maintainer-clean,
-# stage1, stage2, stage3, stage4.
+# uninstall, TAGS, mostlyclean, clean, distclean, maintainer-clean.
# This is the default target.
# Set by autoconf to "all.internal" for a native build, or
# "all.cross" to build a cross compiler.
all: @ALL@
+# Provide quickstrap as a target that people can type into the gcc directory,
+# and that fails if you're not into it.
+quickstrap: all
+
# Depend on this to specify a phony target portably.
force:
@@ -136,27 +139,14 @@ SUBDIRS =@subdirs@ build
CONFIG_LANGUAGES = @all_selected_languages@
LANGUAGES = c gcov$(exeext) gcov-dump$(exeext) $(CONFIG_LANGUAGES)
-# Selection of languages to be made during stage1 build.
-BOOT_LANGUAGES = c @all_boot_languages@
-
# Various ways of specifying flags for compilations:
# CFLAGS is for the user to override to, e.g., do a cross build with -O2.
-# For recursive bootstrap builds CFLAGS is used to pass in STAGE1_CFLAGS
-# or BOOT_CFLAGS
-# STAGE1_CFLAGS is set by configure on some targets or passed from toplevel
-# and sets the CFLAGS passed to stage1 of a bootstrap compilation.
-# STAGE1_CHECKING enables checking for the stage1 compiler
-# BOOT_CFLAGS is the value of CFLAGS to pass to the stage2, stage3 and stage4
-# bootstrap compilations.
# XCFLAGS is used for most compilations but not when using the GCC just built.
# TCFLAGS is used for compilations with the GCC just built.
XCFLAGS =
TCFLAGS =
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
-STAGE1_CFLAGS = -g @stage1_cflags@
-STAGE1_CHECKING_CFLAGS = -DENABLE_CHECKING -DENABLE_ASSERT_CHECKING
-BOOT_CFLAGS = -g -O2
# Flags to determine code coverage. When coverage is disabled, this will
# contain the optimization flags, as you normally want code coverage
@@ -164,7 +154,7 @@ BOOT_CFLAGS = -g -O2
COVERAGE_FLAGS = @coverage_flags@
coverageexts = .{gcda,gcno}
-# The warning flags are separate from BOOT_CFLAGS because people tend to
+# The warning flags are separate from CFLAGS because people tend to
# override optimization flags and we'd like them to still have warnings
# turned on. These flags are also used to pass other stage dependent
# flags from configure. The user is free to explicitly turn these flags
@@ -172,18 +162,12 @@ coverageexts = .{gcda,gcno}
# LOOSE_WARN are the warning flags to use when compiling something
# which is only compiled with gcc, such as libgcc and the frontends
# other than C.
-# STRICT_WARN and STRICT2_WARN are the additional warning flags to
+# STRICT_WARN are the additional warning flags to
# apply to the back end and the C front end, which may be compiled
-# with other compilers. This is partially controlled by configure in
-# stage1, as not all versions of gcc understand -Wno-long-long or
-# -Wno-variadic-macros.
+# with other compilers.
# CXX_COMPAT_WARN are C++ source compatibility warnings.
LOOSE_WARN = -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
-STRICT_WARN = @strict1_warn@
-WERROR_FLAGS = @WERROR@
-STRICT2_WARN = -pedantic -Wno-long-long -Wno-variadic-macros \
- -Wno-overlength-strings -Wold-style-definition -Wmissing-format-attribute \
- $(WERROR_FLAGS)
+STRICT_WARN = @strict_warn@
CXX_COMPAT_WARN = @cxx_compat_warn@
# This is set by --enable-checking. The idea is to catch forgotten
@@ -279,7 +263,6 @@ STAMP = echo timestamp >
# Make sure the $(MAKE) variable is defined.
@SET_MAKE@
-REMAKEFLAGS=LANGUAGES="$(LANGUAGES)" BOOT_CFLAGS="$(BOOT_CFLAGS)"
# Locate mkinstalldirs.
mkinstalldirs=$(SHELL) $(srcdir)/../mkinstalldirs
@@ -874,12 +857,9 @@ INCLUDES = -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \
LANG_MAKEFRAGS = @all_lang_makefrags@
LANG_MAKEFILES = @all_lang_makefiles@
-LANG_STAGESTUFF = @all_stagestuff@
# Flags to pass to recursive makes.
-# CC is set by configure. Hosts without symlinks need special handling
-# because we need CC="stage1/xgcc -Bstage1/" to work in the language
-# subdirectories.
+# CC is set by configure.
# ??? The choices here will need some experimenting with.
export AR_FOR_TARGET
@@ -901,7 +881,7 @@ export RANLIB_FOR_TARGET
export libsubdir
export slibdir
-ORDINARY_FLAGS_TO_PASS = \
+FLAGS_TO_PASS = \
"BISON=$(BISON)" \
"BISONFLAGS=$(BISONFLAGS)" \
"CFLAGS=$(CFLAGS) $(WARN_CFLAGS)" \
@@ -927,17 +907,6 @@ ORDINARY_FLAGS_TO_PASS = \
"libexecsubdir=$(libsubdir)" \
"datadir=$(datadir)" \
"localedir=$(localedir)"
-FLAGS_TO_PASS = $(ORDINARY_FLAGS_TO_PASS) "CC=@cc_set_by_configure@" \
- "STAGE_PREFIX=@stage_prefix_set_by_configure@"
-PREPEND_DOTDOT_TO_RELATIVE_PATHS = sed \
- -e 's|^ *[^ /][^ /]*/|%&|' \
- -e 's| -B| -B%|g' \
- -e 's|% *[^- /]|%&|g' \
- -e 's|%% *|../|g' \
- -e 's|%||g'
-SUBDIR_FLAGS_TO_PASS = $(ORDINARY_FLAGS_TO_PASS) \
- "CC=`echo @quoted_cc_set_by_configure@ | $(PREPEND_DOTDOT_TO_RELATIVE_PATHS)`" \
- "STAGE_PREFIX=`echo @quoted_stage_prefix_set_by_configure@ | $(PREPEND_DOTDOT_TO_RELATIVE_PATHS)`"
#
# Lists of files for various purposes.
@@ -1024,23 +993,18 @@ OBJS-onestep = libbackend.o $(OBJS-archive)
BACKEND = main.o @TREEBROWSER@ libbackend.a $(CPPLIB) $(LIBDECNUMBER)
-# Files to be copied after each stage in building.
-STAGECOPYSTUFF = insn-flags.h insn-config.h insn-codes.h \
+MOSTLYCLEANFILES = insn-flags.h insn-config.h insn-codes.h \
insn-output.c insn-recog.c insn-emit.c insn-extract.c insn-peep.c \
insn-attr.h insn-attrtab.c insn-opinit.c insn-preds.c insn-constants.h \
tm-preds.h tm-constrs.h \
tree-check.h min-insn-modes.c insn-modes.c insn-modes.h \
- genrtl.c genrtl.h gt-*.h gtype-*.h gtype-desc.c gtyp-gen.h
-
-# Files to be moved away after each stage in building.
-STAGEMOVESTUFF = *$(objext) s-* \
+ genrtl.c genrtl.h gt-*.h gtype-*.h gtype-desc.c gtyp-gen.h \
xgcc$(exeext) cpp$(exeext) cc1$(exeext) cc1*-dummy$(exeext) $(EXTRA_PASSES) \
$(EXTRA_PARTS) $(EXTRA_PROGRAMS) gcc-cross$(exeext) \
protoize$(exeext) unprotoize$(exeext) \
$(SPECS) collect2$(exeext) \
gcov-iov$(build_exeext) gcov$(exeext) gcov-dump$(exeext) \
- *.[0-9][0-9].* *.[si] *-checksum.c libbackend.a libgcc.mk \
- $(LANG_STAGESTUFF)
+ *.[0-9][0-9].* *.[si] *-checksum.c libbackend.a libgcc.mk
# Defined in libgcc2.c, included only in the static library.
LIB2FUNCS_ST = _eprintf __gcc_bcmp
@@ -1102,7 +1066,6 @@ LIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4
# install-common, install-info, install-man,
# uninstall,
# mostlyclean, clean, distclean, maintainer-clean,
-# stage1, stage2, stage3, stage4
#
# Each language is linked in with a series of hooks. The name of each
# hooked is "lang.${target_name}" (eg: lang.info). Configure computes
@@ -3525,7 +3488,7 @@ fsf-funding.pod: funding.texi
# (less duplicated code).
mostlyclean: lang.mostlyclean
- -rm -f $(STAGECOPYSTUFF) $(STAGEMOVESTUFF)
+ -rm -f $(MOSTLYCLEANFILES)
-rm -f *$(coverageexts)
# Delete build programs
-rm -f build/*
@@ -3581,11 +3544,6 @@ clean: mostlyclean lang.clean
else if [ "x$(MULTILIB_OPTIONS)" != x ] ; then \
rm -rf `echo $(MULTILIB_OPTIONS) | sed -e 's/\// /g'`; \
fi ; fi
- -rm -fr stage1 stage2 stage3 stage4 stageprofile stagefeedback
-# Delete stamps of bootstrap stages
- -rm -f stage?_*
- -rm -f clean?_*
- -rm -f stage_last
# Delete all files that users would normally create
# while building and installing GCC.
@@ -3596,7 +3554,6 @@ distclean: clean lang.distclean
-rm -f Make-lang Make-hooks Make-host Make-target
-rm -f Makefile *.oaux
-rm -f gthr-default.h
- -rm -f */stage1 */stage2 */stage3 */stage4 */include */stageprofile */stagefeedback
-rm -f TAGS */TAGS
-rm -f *.asm
-rm -f site.exp site.bak testsuite/site.exp testsuite/site.bak
@@ -4103,547 +4060,6 @@ TAGS: lang.tags
etags -o TAGS.sub *.y *.h *.c; \
etags --include TAGS.sub $$incs)
-# ------------------------------------------------------
-# Bootstrap-related targets (not used during 'make all')
-# ------------------------------------------------------
-
-# A list of files to be destroyed during "lean" builds.
-VOL_FILES=`echo $(BACKEND) $(OBJS) $(C_OBJS) *.c *.h gen*`
-
-# Flags to pass to stage2 and later recursive makes. Note that the
-# WARN_CFLAGS setting can't be to the expansion of GCC_WARN_CFLAGS in
-# the context of the stage_x rule.
-
-POSTSTAGE1_FLAGS_TO_PASS = \
- ADAFLAGS="$(BOOT_ADAFLAGS)" \
- CFLAGS="$(BOOT_CFLAGS)" \
- LDFLAGS="$(BOOT_LDFLAGS)" \
- WARN_CFLAGS="\$$(GCC_WARN_CFLAGS)" \
- STRICT_WARN="$(STRICT2_WARN)" \
- libdir=$(libdir) \
- LANGUAGES="$(LANGUAGES)" \
- MAKEINFO="$(MAKEINFO)" \
- MAKEINFOFLAGS="$(MAKEINFOFLAGS)" \
- MAKEOVERRIDES= \
- OUTPUT_OPTION="-o \$$@"
-
-STAGE2_FLAGS_TO_PASS = \
- CFLAGS="$(BOOT_CFLAGS)" \
- WERROR="$(WERROR_FLAGS)" \
-
-STAGEPROFILE_FLAGS_TO_PASS = \
- CFLAGS="$(BOOT_CFLAGS) -fprofile-generate"
-
-# Files never linked into the final executable produces warnings about missing
-# profile.
-STAGEFEEDBACK_FLAGS_TO_PASS = \
- CFLAGS="$(BOOT_CFLAGS) -fprofile-use -freorder-blocks-and-partition"
-
-# Only build the C compiler for stage1, because that is the only one that
-# we can guarantee will build with the native compiler, and also it is the
-# only thing useful for building stage2. STAGE1_CFLAGS (via CFLAGS),
-# MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them
-# overrideable (for a bootstrap build stage1 also builds gcc.info).
-# The stage1 compiler is always built with checking enabled.
-stage1_build:
- $(MAKE) CC="$(CC)" libdir=$(libdir) LANGUAGES="$(BOOT_LANGUAGES)" \
- CFLAGS="$(STAGE1_CFLAGS) $(STAGE1_CHECKING_CFLAGS)" \
- MAKEINFO="$(MAKEINFO)" MAKEINFOFLAGS="$(MAKEINFOFLAGS)" \
- COVERAGE_FLAGS= OBJS-onestep="$(OBJS)"
- $(STAMP) stage1_build
- echo stage1_build > stage_last
-
-stage1_copy: stage1_build
- $(MAKE) stage1
- $(STAMP) stage1_copy
- echo stage2_build > stage_last
-
-stage2_build: stage1_copy
- $(MAKE) CC="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" CC_FOR_BUILD="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" \
- STAGE_PREFIX=stage1/ \
- $(POSTSTAGE1_FLAGS_TO_PASS) \
- $(STAGE2_FLAGS_TO_PASS)
- $(STAMP) stage2_build
- echo stage2_build > stage_last
-
-stage2_copy: stage2_build
- $(MAKE) stage2
- $(STAMP) stage2_copy
- echo stage3_build > stage_last
-
-stageprofile_build: stage1_copy
- $(MAKE) CC="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" CC_FOR_BUILD="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" \
- STAGE_PREFIX=stage1/ \
- $(POSTSTAGE1_FLAGS_TO_PASS) \
- $(STAGEPROFILE_FLAGS_TO_PASS)
- $(STAMP) stageprofile_build
- echo stageprofile_build > stage_last
-
-stageprofile_copy: stageprofile_build
- $(MAKE) stageprofile
- $(STAMP) stageprofile_copy
- echo stagefeedback_build > stage_last
-
-stage3_build: stage2_copy
- $(MAKE) CC="$(STAGE_CC_WRAPPER) stage2/xgcc$(exeext) -Bstage2/ -B$(build_tooldir)/bin/" CC_FOR_BUILD="$(STAGE_CC_WRAPPER) stage2/xgcc$(exeext) -Bstage2/ -B$(build_tooldir)/bin/" \
- STAGE_PREFIX=stage2/ \
- $(POSTSTAGE1_FLAGS_TO_PASS) \
- $(STAGE2_FLAGS_TO_PASS)
- $(STAMP) stage3_build
- echo stage3_build > stage_last
-
-stagefeedback_build: stageprofile_copy stage1_copy
- $(MAKE) CC="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" CC_FOR_BUILD="$(STAGE_CC_WRAPPER) stage1/xgcc$(exeext) -Bstage1/ -B$(build_tooldir)/bin/" \
- STAGE_PREFIX=stage1/ \
- $(POSTSTAGE1_FLAGS_TO_PASS) \
- $(STAGEFEEDBACK_FLAGS_TO_PASS)
- $(STAMP) stagefeedback_build
- echo stagefeedback_build > stage_last
-
-stagefeedback_copy: stagefeedback_build
- $(MAKE) stagefeedback
- $(STAMP) stagefeedback_copy
- echo stagefeedback2_build > stage_last
-
-# For bootstrap4:
-stage3_copy: stage3_build
- $(MAKE) stage3
- $(STAMP) stage3_copy
- echo stage4_build > stage_last
-
-stage4_build: stage3_copy
- $(MAKE) CC="$(STAGE_CC_WRAPPER) stage3/xgcc$(exeext) -Bstage3/ -B$(build_tooldir)/bin/" CC_FOR_BUILD="$(STAGE_CC_WRAPPER) stage3/xgcc$(exeext) -Bstage3/ -B$(build_tooldir)/bin/" \
- STAGE_PREFIX=stage3/ \
- $(POSTSTAGE1_FLAGS_TO_PASS) \
- $(STAGE2_FLAGS_TO_PASS)
- $(STAMP) stage4_build
- echo stage4_build > stage_last
-
-# Additional steps for *-lean targets:
-clean_s1: stage1_copy
- -(cd stage1 && rm -f $(VOL_FILES))
- $(STAMP) clean_s1
-
-clean_s2: stage2_copy
- -rm -rf stage1
- $(STAMP) clean_s2
-
-# The various entry points for bootstrapping.
-
-bootstrap: stage3_build
- @echo
- @echo Bootstrap complete - make \"quickstrap\" to redo last build,
- @echo \"restage1\" through \"restage3\" to rebuild specific stages,
- @echo \"restrap\" to redo the bootstrap from stage1, or
- @echo \"cleanstrap\" to redo the bootstrap from scratch.
-
-bootstrap-lean : clean_s1 clean_s2 stage3_build
- @echo
- @echo Bootstrap complete - make \"quickstrap\" to redo last build,
- @echo or \"cleanstrap\" to redo the bootstrap from scratch.
-
-bootstrap2: bootstrap
-
-bootstrap2-lean : bootstrap-lean
-
-bootstrap3 bootstrap3-lean: bootstrap
-
-bootstrap4 bootstrap4-lean: stage4_build
-
-unstage1 unstage2 unstage3 unstage4 unstageprofile unstagefeedback:
- -set -vx; stage=`echo $@ | sed -e 's/un//'`; \
- rm -f $$stage/as$(exeext); \
- rm -f $$stage/nm$(exeext); \
- rm -f $$stage/collect-ld$(exeext); \
- if test -d $$stage; then \
- mv $$stage/specs $(SPECS) 2>/dev/null || :; \
- mv $$stage/* . 2>/dev/null; \
- for i in `cd $$stage; echo *` ; do \
- if test -d $$stage/$$i; then \
- mv $$stage/$$i/* $$i/. 2>/dev/null; \
- else \
- mv $$stage/$$i .; \
- fi; \
- done \
- fi ; \
- rm -f $${stage}_build $${stage}_copy ;\
- echo $${stage}_build > stage_last
-
-restage1: unstage1
- $(MAKE) $(REMAKEFLAGS) stage1_build
-
-restage2: unstage2
- $(MAKE) $(REMAKEFLAGS) stage2_build
-
-restage3: unstage3
- $(MAKE) $(REMAKEFLAGS) stage3_build
-
-restage4: unstage4
- $(MAKE) $(REMAKEFLAGS) stage4_build
-
-restageprofile: unstageprofile
- $(MAKE) $(REMAKEFLAGS) stageprofile_build
-
-restagefeedback: unstagefeedback
- $(MAKE) $(REMAKEFLAGS) stagefeedback_build
-
-# Bubble up a bugfix through all the stages. Primarily useful for fixing
-# bugs that cause the compiler to crash while building stage 2.
-bubblestrap:
- if test -f stage_last; then \
- LAST=`sed -e 's/_build//' < stage_last`; \
- if test "$$LAST" != "stage1"; then \
- $(MAKE) $(REMAKEFLAGS) $$LAST; \
- $(STAMP) $${LAST}_copy; \
- fi; \
- fi
- if test -f stage1_copy; then $(MAKE) unstage1; fi
- $(MAKE) $(REMAKEFLAGS) stage1_copy
- if test -f stage2_copy; then $(MAKE) unstage2; fi
- $(MAKE) $(REMAKEFLAGS) stage2_copy
- if test -f stage3_copy; then $(MAKE) unstage3; fi
- $(MAKE) $(REMAKEFLAGS) stage3_build
- if test -f stage4_copy; then \
- $(MAKE) $(REMAKEFLAGS) stage3_copy; $(MAKE) unstage4; \
- $(MAKE) $(REMAKEFLAGS) stage4_build || exit 1; \
- fi
-
-BOOTSTRAPPING := $(shell if test -f ../stage_last; then echo yes; else echo no; fi)
-ifeq ($(BOOTSTRAPPING),yes)
-# Provide quickstrap as a target that people can type into the gcc directory,
-# and that fails if you're not into it.
-quickstrap: all
-else
-quickstrap:
- if test -f stage_last ; then \
- LAST=`cat stage_last`; rm $$LAST; $(MAKE) $(REMAKEFLAGS) $$LAST; \
- else \
- $(MAKE) $(REMAKEFLAGS) stage1_build; \
- fi
-endif
-
-cleanstrap:
- -$(MAKE) clean
- $(MAKE) $(REMAKEFLAGS) bootstrap
-
-unstrap:
- -rm -rf stage[234]*
- $(MAKE) unstage1
- -rm -f stage_last
-
-# Differs from cleanstrap in that it starts from the earlier stage1 build,
-# not from scratch.
-restrap:
- $(MAKE) unstrap
- $(MAKE) $(REMAKEFLAGS) bootstrap
-
-# These targets compare the object files in the current directory with
-# those in a stage directory. We need to skip the first N bytes of
-# each object file. The "slow" mechanism assumes nothing special
-# about cmp and uses the tail command to skip. ./ avoids a bug in
-# some versions of tail. The "gnu" targets use gnu cmp (diffutils
-# v2.4 or later), to avoid running tail and the overhead of twice
-# copying each object file. Likewise, the "fast" targets use the skip
-# parameter of cmp available on some systems to accomplish the same
-# thing. An exit status of 1 is precisely the result we're looking
-# for (other values mean other problems).
-slowcompare slowcompare3 slowcompare4 slowcompare-lean slowcompare3-lean slowcompare4-lean \
-fastcompare fastcompare3 fastcompare4 fastcompare-lean fastcompare3-lean fastcompare4-lean \
- gnucompare gnucompare3 gnucompare4 gnucompare-lean gnucompare3-lean gnucompare4-lean: force
- -rm -f .bad_compare
- case "$@" in *compare | *compare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^[a-z]*compare\([0-9][0-9]*\).*,\1,'` ;; esac; \
- for dir in . $(SUBDIRS) libgcc; do \
- if [ "`echo $$dir/*$(objext)`" != "$$dir/*$(objext)" ] ; then \
- for file in $$dir/*$(objext); do \
- case "$@" in \
- slowcompare* ) \
- if tail -c +1 </dev/null >/dev/null 2>&1; then \
- skip16='-c +17'; \
- else \
- skip16='+17c'; \
- fi; \
- tail $$skip16 ./$$file > tmp-foo1; \
- tail $$skip16 stage$$stage/$$file > tmp-foo2; \
- cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1; \
- cmpret=$$?; \
- ;; \
- fastcompare* ) \
- cmp $$file stage$$stage/$$file 16 16 > /dev/null 2>&1; \
- cmpret=$$?; \
- ;; \
- gnucompare* ) \
- cmp --ignore-initial=16 $$file stage$$stage/$$file > /dev/null 2>&1; \
- cmpret=$$?; \
- ;; \
- esac ; \
- if test $$cmpret -eq 1; then \
- case $$file in \
- ./cc*-checksum$(objext) | libgcc/* ) \
- echo warning: $$file differs;; \
- *) \
- echo $$file differs >> .bad_compare;; \
- esac ; \
- fi; \
- done; \
- else true; fi; \
- done
- -rm -f tmp-foo*
- case "$@" in *compare | *compare-lean ) stage=2 ;; * ) stage=`echo $@ | sed -e 's,^[a-z]*compare\([0-9][0-9]*\).*,\1,'` ;; esac; \
- if [ -f .bad_compare ]; then \
- echo "Bootstrap comparison failure!"; \
- cat .bad_compare; \
- exit 1; \
- else \
- case "$@" in \
- *-lean ) rm -rf stage$$stage ;; \
- *) ;; \
- esac; true; \
- fi
-
-# Forwarding wrappers to the most appropriate version.
-compare: @make_compare_target@
-compare3: @make_compare_target@3
-compare4: @make_compare_target@4
-compare-lean: @make_compare_target@-lean
-compare3-lean: @make_compare_target@3-lean
-compare4-lean: @make_compare_target@4-lean
-
-# Copy the object files from a particular stage into a subdirectory.
-stage1-start:
- -if [ -d stage1 ] ; then true ; else mkdir stage1 ; fi
- $(MAKE) -f libgcc.mk libgcc-stage-start stage=stage1
- -subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
- do \
- if [ -d stage1/$$dir ] ; then true ; else mkdir stage1/$$dir ; fi ; \
- done
- -rm -f stage1/libgcc.a stage1/libgcc_eh.a stage1/libgcov.a
- -rm -f stage1/libgcc_s*$(SHLIB_EXT)
- -rm -f stage1/libunwind.a stage1/libunwind*$(SHLIB_EXT)
-# If SPECS is overridden, make sure it is `installed' as specs.
- -mv $(SPECS) stage1/specs
- -mv $(STAGEMOVESTUFF) stage1
- -mv build/* stage1/build
- -cp -p $(STAGECOPYSTUFF) stage1
-# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
-# dir will work properly.
- -if [ -f as$(exeext) ] ; then (cd stage1 && $(LN_S) ../as$(exeext) .) ; else true ; fi
- -if [ -f ld$(exeext) ] ; then (cd stage1 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
- -if [ -f collect-ld$(exeext) ] ; then (cd stage1 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -cp libgcc.a stage1
- -$(RANLIB_FOR_TARGET) stage1/libgcc.a
- -cp libgcov.a stage1
- -$(RANLIB_FOR_TARGET) stage1/libgcov.a
- -if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage1; \
- $(RANLIB_FOR_TARGET) stage1/libgcc_eh.a; \
- fi
- -cp libgcc_s*$(SHLIB_EXT) stage1
- -cp libunwind.a libunwind*$(SHLIB_EXT) stage1
- -for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
- cp stage1/$${f} . ; \
- else true; \
- fi; done
-stage1: force stage1-start lang.stage1
- -for dir in . $(SUBDIRS) ; \
- do \
- rm -f $$dir/*$(coverageexts) ; \
- done
-
-stage2-start:
- -if [ -d stage2 ] ; then true ; else mkdir stage2 ; fi
- $(MAKE) -f libgcc.mk libgcc-stage-start stage=stage2
- -subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
- do \
- if [ -d stage2/$$dir ] ; then true ; else mkdir stage2/$$dir ; fi ; \
- done
- -rm -f stage2/libgcc.a stage2/libgcov.a stage2/libgcc_eh.a
- -rm -f stage2/libgcc_s*$(SHLIB_EXT)
- -rm -f stage2/libunwind.a stage2/libunwind*$(SHLIB_EXT)
-# If SPECS is overridden, make sure it is `installed' as specs.
- -mv $(SPECS) stage2/specs
- -mv $(STAGEMOVESTUFF) stage2
- -mv build/* stage2/build
- -cp -p $(STAGECOPYSTUFF) stage2
-# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
-# dir will work properly.
- -if [ -f as$(exeext) ] ; then (cd stage2 && $(LN_S) ../as$(exeext) .) ; else true ; fi
- -if [ -f ld$(exeext) ] ; then (cd stage2 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
- -if [ -f collect-ld$(exeext) ] ; then (cd stage2 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -cp libgcc.a stage2
- -$(RANLIB_FOR_TARGET) stage2/libgcc.a
- -cp libgcov.a stage2
- -$(RANLIB_FOR_TARGET) stage2/libgcov.a
- -if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage2; \
- $(RANLIB_FOR_TARGET) stage2/libgcc_eh.a; \
- fi
- -cp libgcc_s*$(SHLIB_EXT) stage2
- -cp libunwind.a libunwind*$(SHLIB_EXT) stage2
- -for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
- cp stage2/$${f} . ; \
- else true; \
- fi; done
-stage2: force stage2-start lang.stage2
-
-stage3-start:
- -if [ -d stage3 ] ; then true ; else mkdir stage3 ; fi
- $(MAKE) -f libgcc.mk libgcc-stage-start stage=stage3
- -subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
- do \
- if [ -d stage3/$$dir ] ; then true ; else mkdir stage3/$$dir ; fi ; \
- done
- -rm -f stage3/libgcc.a stage3/libgcov.a stage3/libgcc_eh.a
- -rm -f stage3/libgcc_s*$(SHLIB_EXT)
- -rm -f stage3/libunwind.a stage3/libunwind*$(SHLIB_EXT)
-# If SPECS is overridden, make sure it is `installed' as specs.
- -mv $(SPECS) stage3/specs
- -mv $(STAGEMOVESTUFF) stage3
- -mv build/* stage3/build
- -cp -p $(STAGECOPYSTUFF) stage3
-# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
-# dir will work properly.
- -if [ -f as$(exeext) ] ; then (cd stage3 && $(LN_S) ../as$(exeext) .) ; else true ; fi
- -if [ -f ld$(exeext) ] ; then (cd stage3 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
- -if [ -f collect-ld$(exeext) ] ; then (cd stage3 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -cp libgcc.a stage3
- -$(RANLIB_FOR_TARGET) stage3/libgcc.a
- -cp libgcov.a stage3
- -$(RANLIB_FOR_TARGET) stage3/libgcov.a
- -if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage3; \
- $(RANLIB_FOR_TARGET) stage3/libgcc_eh.a; \
- fi
- -cp libgcc_s*$(SHLIB_EXT) stage3
- -cp libunwind.a libunwind*$(SHLIB_EXT) stage3
- -for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
- cp stage3/$${f} . ; \
- else true; \
- fi; done
-stage3: force stage3-start lang.stage3
-
-stage4-start:
- -if [ -d stage4 ] ; then true ; else mkdir stage4 ; fi
- $(MAKE) -f libgcc.mk libgcc-stage-start stage=stage4
- -subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
- do \
- if [ -d stage4/$$dir ] ; then true ; else mkdir stage4/$$dir ; fi ; \
- done
- -rm -f stage4/libgcc.a stage4/libgcov.a stage4/libgcc_eh.a
- -rm -f stage4/libgcc_s*$(SHLIB_EXT)
- -rm -f stage4/libunwind.a stage4/libunwind*$(SHLIB_EXT)
-# If SPECS is overridden, make sure it is `installed' as specs.
- -mv $(SPECS) stage4/specs
- -mv $(STAGEMOVESTUFF) stage4
- -mv build/* stage4/build
- -cp -p $(STAGECOPYSTUFF) stage4
-# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
-# dir will work properly.
- -if [ -f as$(exeext) ] ; then (cd stage4 && $(LN_S) ../as$(exeext) .) ; else true ; fi
- -if [ -f ld$(exeext) ] ; then (cd stage4 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
- -if [ -f collect-ld$(exeext) ] ; then (cd stage4 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -cp libgcc.a stage4
- -$(RANLIB_FOR_TARGET) stage4/libgcc.a
- -cp libgcov.a stage4
- -$(RANLIB_FOR_TARGET) stage4/libgcov.a
- -if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stage4; \
- $(RANLIB_FOR_TARGET) stage4/libgcc_eh.a; \
- fi
- -cp libgcc_s*$(SHLIB_EXT) stage4
- -cp libunwind.a libunwind*$(SHLIB_EXT) stage4
- -for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
- cp stage4/$${f} . ; \
- else true; \
- fi; done
-stage4: force stage4-start lang.stage4
-
-stageprofile-start:
- -if [ -d stageprofile ] ; then true ; else mkdir stageprofile ; fi
- $(MAKE) -f libgcc.mk libgcc-stage-start stage=stageprofile
- -subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
- do \
- if [ -d stageprofile/$$dir ] ; then true ; else mkdir stageprofile/$$dir ; fi ; \
- done
- -rm -f stageprofile/libgcc.a stageprofile/libgcov.a stageprofile/libgcc_eh.a
- -rm -f stageprofile/libgcc_s*$(SHLIB_EXT)
- -rm -f stageprofile/libunwind.a stageprofile/libunwind*$(SHLIB_EXT)
- -mv $(STAGEMOVESTUFF) stageprofile
- -mv build/* stageprofile/build
- -cp -p $(STAGECOPYSTUFF) stageprofile
-# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
-# dir will work properly.
- -if [ -f as$(exeext) ] ; then (cd stageprofile && $(LN_S) ../as$(exeext) .) ; else true ; fi
- -if [ -f ld$(exeext) ] ; then (cd stageprofile && $(LN_S) ../ld$(exeext) .) ; else true ; fi
- -if [ -f collect-ld$(exeext) ] ; then (cd stageprofile && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -cp libgcc.a stageprofile
- -$(RANLIB_FOR_TARGET) stageprofile/libgcc.a
- -cp libgcov.a stageprofile
- -$(RANLIB_FOR_TARGET) stageprofile/libgcov.a
- -if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stageprofile; \
- $(RANLIB_FOR_TARGET) stageprofile/libgcc_eh.a; \
- fi
- -cp libgcc_s*$(SHLIB_EXT) stageprofile
- -cp libunwind.a libunwind*$(SHLIB_EXT) stageprofile
- -for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
- cp stageprofile/$${f} . ; \
- else true; \
- fi; done
-stageprofile: force stageprofile-start lang.stageprofile
-
-stagefeedback-start:
- -if [ -d stagefeedback ] ; then true ; else mkdir stagefeedback ; fi
- $(MAKE) -f libgcc.mk libgcc-stage-start stage=stagefeedback
- -subdirs="$(SUBDIRS)"; for dir in $$subdirs; \
- do \
- if [ -d stagefeedback/$$dir ] ; then true ; else mkdir stagefeedback/$$dir ; fi ; \
- done
- -rm -f stagefeedback/libgcc.a stagefeedback/libgcov.a stagefeedback/libgcc_eh.a
- -rm -f stagefeedback/libgcc_s*$(SHLIB_EXT)
- -rm -f stagefeedback/libunwind.a stagefeedback/libunwind*$(SHLIB_EXT)
- -rm -f *.da
- -mv $(STAGEMOVESTUFF) stagefeedback
- -mv build/* stagefeedback/build
- -cp -p $(STAGECOPYSTUFF) stagefeedback
-# Copy as/ld if they exist to stage dir, so that running xgcc from the stage
-# dir will work properly.
- -if [ -f as$(exeext) ] ; then (cd stagefeedback && $(LN_S) ../as$(exeext) .) ; else true ; fi
- -if [ -f ld$(exeext) ] ; then (cd stagefeedback && $(LN_S) ../ld$(exeext) .) ; else true ; fi
- -if [ -f collect-ld$(exeext) ] ; then (cd stagefeedback && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -for dir in fixinc po testsuite $(SUBDIRS); \
- do \
- rm -f $$dir/*.da ; \
- done
- -cp libgcc.a stagefeedback
- -$(RANLIB_FOR_TARGET) stagefeedback/libgcc.a
- -cp libgcov.a stagefeedback
- -$(RANLIB_FOR_TARGET) stagefeedback/libgcov.a
- -if [ -f libgcc_eh.a ] ; then cp libgcc_eh.a stagefeedback; \
- $(RANLIB_FOR_TARGET) stagefeedback/libgcc_eh.a; \
- fi
- -cp libgcc_s*$(SHLIB_EXT) stagefeedback
- -cp libunwind.a libunwind*$(SHLIB_EXT) stagefeedback
- -for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \
- cp stagefeedback/$${f} . ; \
- else true; \
- fi; done
-stagefeedback: force stagefeedback-start lang.stagefeedback
-
-# Copy just the executable files from a particular stage into a subdirectory,
-# and delete the object files. Use this if you're just verifying a version
-# that is pretty sure to work, and you are short of disk space.
-risky-stage1: stage1
- -$(MAKE) clean
-
-risky-stage2: stage2
- -$(MAKE) clean
-
-risky-stage3: stage3
- -$(MAKE) clean
-
-risky-stage4: stage4
- -$(MAKE) clean
-
-#In GNU Make, ignore whether `stage*' exists.
-.PHONY: stage1 stage2 stage3 stage4 clean maintainer-clean TAGS bootstrap
-.PHONY: risky-stage1 risky-stage2 risky-stage3 risky-stage4
-.PHONY: stagefeedback stageprofile
-
# -----------------------------------------------------
# Rules for generating translated message descriptions.
# Disabled by autoconf if the tools are not available.