X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FMakefile.in;h=6719bb0b0b910575939d1c5d7155faf26d293b8c;hb=6a9bcd3e9b7a532cebce25af24999b7e3d8da123;hp=fb857cf2128dbed0986b25c7a68e5bf4eb8f21e0;hpb=9c8b7028ac956395a283ec6366ac87e468891d79;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/Makefile.in b/gcc/Makefile.in index fb857cf2128..6719bb0b0b9 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -83,8 +83,15 @@ top_builddir = . # It's normally the absolute path to the current directory. objdir = @objdir@ +host_subdir=@host_subdir@ build_subdir=@build_subdir@ +ifeq ($(host_subdir),.) +build_objdir := ../$(build_subdir) +else +build_objdir := ../../$(build_subdir) +endif + # -------- # Defined vpaths # -------- @@ -193,7 +200,6 @@ gcc.o-warn = -Wno-error build/insn-conditions.o-warn = -Wno-error # Bison-1.75 output often yields (harmless) -Wtraditional warnings build/gengtype-yacc.o-warn = -Wno-error -c-parse.o-warn = -Wno-error # flex output may yield harmless "no previous prototype" warnings build/gengtype-lex.o-warn = -Wno-error # SYSCALLS.c misses prototypes @@ -419,11 +425,8 @@ GCC_THREAD_FILE=@thread_file@ OBJC_BOEHM_GC=@objc_boehm_gc@ GTHREAD_FLAGS=@gthread_flags@ extra_modes_file=@extra_modes_file@ +extra_opt_files=@extra_opt_files@ host_hook_obj=@out_host_hook_obj@ -# Be prepared for gcc2 merges. -gcc_version=@gcc_version@ -gcc_version_trigger=@gcc_version_trigger@ -version=$(gcc_version) # ------------------------ # Installation directories @@ -681,6 +684,27 @@ TM_P_H = tm_p.h $(tm_p_file_list) GTM_H = tm.h $(tm_file_list) TM_H = $(GTM_H) insn-constants.h insn-flags.h +# Variables for version information. +BASEVER := $(srcdir)/BASE-VER # 4.x.y +DEVPHASE := $(srcdir)/DEV-PHASE # experimental, prerelease, "" +DATESTAMP := $(srcdir)/DATESTAMP # YYYYMMDD or empty + +BASEVER_c := $(shell cat $(BASEVER)) +DEVPHASE_c := $(shell cat $(DEVPHASE)) +DATESTAMP_c := $(shell cat $(DATESTAMP)) + +version := $(BASEVER_c) + +# For use in version.c - double quoted strings, with appropriate +# surrounding punctuation and spaces, and with the datestamp and +# development phase collapsed to the empty string in release mode +# (i.e. if DEVPHASE_c is empty). The space immediately after the +# comma in the $(if ...) constructs is significant - do not remove it. +BASEVER_s := "\"$(BASEVER_c)\"" +DEVPHASE_s := "\"$(if $(DEVPHASE_c), ($(DEVPHASE_c)))\"" +DATESTAMP_s := "\"$(if $(DEVPHASE_c), $(DATESTAMP_c))\"" + +# Shorthand variables for dependency lists. TARGET_H = $(TM_H) target.h insn-modes.h MACHMODE_H = machmode.h mode-classes.def insn-modes.h HOOKS_H = hooks.h $(MACHMODE_H) @@ -757,7 +781,7 @@ ALL_CPPFLAGS = $(CPPFLAGS) $(X_CPPFLAGS) $(T_CPPFLAGS) # Build and host support libraries. LIBIBERTY = ../libiberty/libiberty.a -BUILD_LIBIBERTY = ../$(build_subdir)/libiberty/libiberty.a +BUILD_LIBIBERTY = $(build_objdir)/libiberty/libiberty.a # Dependencies on the intl and portability libraries. LIBDEPS= $(CPPLIB) $(LIBIBERTY) $(LIBINTL_DEP) $(LIBICONV_DEP) @@ -874,6 +898,9 @@ SUBDIR_FLAGS_TO_PASS = $(ORDINARY_FLAGS_TO_PASS) \ # # Lists of files for various purposes. +# All option source files +ALL_OPT_FILES=$(lang_opt_files) $(extra_opt_files) + # Target specific, C specific object file C_TARGET_OBJS=@c_target_objs@ @@ -884,11 +911,11 @@ CXX_TARGET_OBJS=@cxx_target_objs@ C_AND_OBJC_OBJS = attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o \ c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-semantics.o \ c-incpath.o cppdefault.o c-ppoutput.o c-cppbuiltin.o prefix.o \ - c-objc-common.o c-dump.o c-pch.o $(C_TARGET_OBJS) \ + c-objc-common.o c-dump.o c-pch.o c-parser.o $(C_TARGET_OBJS) \ c-gimplify.o tree-mudflap.o c-pretty-print.o # Language-specific object files for C. -C_OBJS = c-parse.o c-lang.o stub-objc.o $(C_AND_OBJC_OBJS) +C_OBJS = c-lang.o stub-objc.o $(C_AND_OBJC_OBJS) # Language-independent object files. OBJS-common = \ @@ -902,7 +929,8 @@ OBJS-common = \ tree-ssa-dom.o domwalk.o tree-tailcall.o gimple-low.o tree-iterator.o \ tree-phinodes.o tree-ssanames.o tree-sra.o tree-complex.o tree-ssa-loop.o \ tree-ssa-loop-niter.o tree-ssa-loop-manip.o tree-ssa-threadupdate.o \ - tree-vectorizer.o tree-ssa-loop-ivcanon.o tree-ssa-propagate.o \ + tree-vectorizer.o tree-vect-analyze.o tree-vect-transform.o \ + tree-ssa-loop-ivcanon.o tree-ssa-propagate.o \ tree-ssa-loop-ivopts.o tree-if-conv.o tree-ssa-loop-unswitch.o \ alias.o bb-reorder.o bitmap.o builtins.o caller-save.o calls.o \ cfg.o cfganal.o cfgbuild.o cfgcleanup.o cfglayout.o cfgloop.o \ @@ -928,7 +956,7 @@ OBJS-common = \ varasm.o varray.o vec.o version.o vmsdbgout.o xcoffout.o alloc-pool.o \ et-forest.o cfghooks.o bt-load.o pretty-print.o $(GGC) web.o passes.o \ rtl-profile.o tree-profile.o rtlhooks.o cfgexpand.o lambda-mat.o \ - lambda-trans.o lambda-code.o tree-loop-linear.o + lambda-trans.o lambda-code.o tree-loop-linear.o tree-ssa-sink.o OBJS-md = $(out_object_file) OBJS-archive = $(EXTRA_OBJS) $(host_hook_obj) tree-inline.o \ @@ -1004,9 +1032,6 @@ LIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4 # language hooks, generated by configure @language_hooks@ -# Set up library path if needed. -@set_gcc_lib_path@ - # per-language makefile fragments ifneq ($(LANG_MAKEFRAGS),) include $(LANG_MAKEFRAGS) @@ -1031,7 +1056,7 @@ endif # Rebuilding this configuration # ----------------------------- -Makefile: config.status $(srcdir)/Makefile.in $(srcdir)/version.c $(LANG_MAKEFRAGS) +Makefile: config.status $(srcdir)/Makefile.in $(LANG_MAKEFRAGS) LANGUAGES="$(CONFIG_LANGUAGES)" \ CONFIG_HEADERS= \ CONFIG_SHELL="$(SHELL)" \ @@ -1108,7 +1133,7 @@ cstamp-h: config.in config.status # Really, really stupid make features, such as SUN's KEEP_STATE, may force # a target to build even if it is up-to-date. So we must verify that # config.status does not exist before failing. -config.status: $(srcdir)/configure $(srcdir)/config.gcc version.c +config.status: $(srcdir)/configure $(srcdir)/config.gcc @if [ ! -f config.status ] ; then \ echo You must configure gcc. Look at http://gcc.gnu.org/install/ for details.; \ false; \ @@ -1346,24 +1371,15 @@ s-crt0: $(CRT0_S) $(MCRT0_S) $(GCC_PASSES) $(CONFIG_H) c-errors.o: c-errors.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \ $(C_TREE_H) $(FLAGS_H) $(DIAGNOSTIC_H) $(TM_P_H) -c-parse.o : c-parse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \ +c-parser.o : c-parser.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \ $(GGC_H) intl.h $(C_TREE_H) input.h $(FLAGS_H) toplev.h output.h \ - $(CPPLIB_H) varray.h gt-c-parse.h langhooks.h $(C_COMMON_H) $(C_PRAGMA_H) + $(CPPLIB_H) varray.h gt-c-parser.h langhooks.h $(C_COMMON_H) $(C_PRAGMA_H) srcextra: gcc.srcextra lang.srcextra -gcc.srcextra: c-parse.y c-parse.c gengtype-lex.c gengtype-yacc.c gengtype-yacc.h +gcc.srcextra: gengtype-lex.c gengtype-yacc.c gengtype-yacc.h -cp -p $^ $(srcdir) -c-parse.c: c-parse.y - -$(BISON) $(BISONFLAGS) -o $@ $< - -c-parse.y: c-parse.in - echo '/*WARNING: This file is automatically generated!*/' >tmp-c-parse.y - sed -e "/^@@ifobjc.*/,/^@@end_ifobjc.*/d" \ - -e "/^@@ifc.*/d" -e "/^@@end_ifc.*/d" $< >>tmp-c-parse.y - $(SHELL) $(srcdir)/../move-if-change tmp-c-parse.y $@ - c-incpath.o: c-incpath.c c-incpath.h $(CONFIG_H) $(SYSTEM_H) $(CPPLIB_H) \ intl.h prefix.h coretypes.h $(TM_H) cppdefault.h $(TARGET_H) \ $(MACHMODE_H) @@ -1531,25 +1547,30 @@ s-specs : Makefile $(STAMP) s-specs optionlist: s-options ; @true -s-options: $(lang_opt_files) Makefile $(srcdir)/opt-gather.awk - $(AWK) -f $(srcdir)/opt-gather.awk $(lang_opt_files) > tmp-optionlist +s-options: $(ALL_OPT_FILES) Makefile $(srcdir)/opt-gather.awk + $(AWK) -f $(srcdir)/opt-gather.awk $(ALL_OPT_FILES) > tmp-optionlist $(SHELL) $(srcdir)/../move-if-change tmp-optionlist optionlist $(STAMP) s-options - options.c: optionlist $(srcdir)/opt-functions.awk $(srcdir)/optc-gen.awk $(AWK) -f $(srcdir)/opt-functions.awk -f $(srcdir)/optc-gen.awk \ -v header_name="options.h" < $< > $@ -options.h: optionlist $(srcdir)/opt-functions.awk $(srcdir)/opth-gen.awk +options.h: s-options-h ; @true +s-options-h: optionlist $(srcdir)/opt-functions.awk $(srcdir)/opth-gen.awk $(AWK) -f $(srcdir)/opt-functions.awk -f $(srcdir)/opth-gen.awk \ - < $< > $@ + < $< > tmp-options.h + $(SHELL) $(srcdir)/../move-if-change tmp-options.h options.h + $(STAMP) $@ options.o: options.c options.h opts.h intl.h dumpvers: dumpvers.c -version.o: version.c version.h +version.o: version.c version.h $(DATESTAMP) $(BASEVER) $(DEVPHASE) + $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ + -DBASEVER=$(BASEVER_s) -DDATESTAMP=$(DATESTAMP_s) \ + -DDEVPHASE=$(DEVPHASE_s) -c $(srcdir)/version.c $(OUTPUT_OPTION) gtype-desc.o: gtype-desc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ varray.h $(HASHTAB_H) $(SPLAY_TREE_H) bitmap.h $(TREE_H) $(RTL_H) \ @@ -1571,9 +1592,10 @@ ggc-none.o: ggc-none.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(GGC_H) stringpool.o: stringpool.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ $(TREE_H) $(GGC_H) gt-stringpool.h -prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) Makefile prefix.h +prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) prefix.h \ + Makefile $(BASEVER) $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ - -DPREFIX=\"$(prefix)\" \ + -DPREFIX=\"$(prefix)\" -DBASEVER=$(BASEVER_s) \ -c $(srcdir)/prefix.c $(OUTPUT_OPTION) convert.o: convert.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(FLAGS_H) \ @@ -1595,7 +1617,7 @@ tree-inline.o : tree-inline.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ langhooks.h $(C_COMMON_H) tree-inline.h $(CGRAPH_H) intl.h function.h \ pointer-set.h $(TREE_GIMPLE_H) debug.h print-tree.o : print-tree.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \ - $(GGC_H) langhooks.h real.h + $(GGC_H) langhooks.h real.h tree-iterator.h stor-layout.o : stor-layout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ $(TREE_H) $(PARAMS_H) $(FLAGS_H) function.h $(EXPR_H) $(RTL_H) toplev.h \ $(GGC_H) $(TM_P_H) $(TARGET_H) langhooks.h $(REGS_H) gt-stor-layout.h @@ -1640,11 +1662,11 @@ tree-ssa-dom.o : tree-ssa-dom.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \ $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h diagnostic.h \ errors.h function.h $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) \ $(BASIC_BLOCK_H) domwalk.h real.h tree-pass.h $(FLAGS_H) langhooks.h \ - tree-ssa-propagate.h + tree-ssa-propagate.h cfgloop.h tree-ssa-threadupdate.o : tree-ssa-threadupdate.c $(TREE_FLOW_H) $(CONFIG_H) \ $(SYSTEM_H) $(RTL_H) $(TREE_H) $(TM_P_H) $(EXPR_H) $(GGC_H) output.h \ diagnostic.h errors.h function.h $(TM_H) coretypes.h $(TREE_DUMP_H) \ - $(BASIC_BLOCK_H) $(FLAGS_H) tree-pass.h + $(BASIC_BLOCK_H) $(FLAGS_H) tree-pass.h cfgloop.h tree-ssanames.o : tree-ssanames.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ $(TM_H) $(TREE_H) varray.h $(GGC_H) gt-tree-ssanames.h $(TREE_FLOW_H) tree-phinodes.o : tree-phinodes.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ @@ -1663,7 +1685,7 @@ tree-ssa-copyrename.o : tree-ssa-copyrename.c $(TREE_FLOW_H) $(CONFIG_H) \ tree-ssa-pre.o : tree-ssa-pre.c $(TREE_FLOW_H) $(CONFIG_H) \ $(SYSTEM_H) $(TREE_H) $(TM_P_H) $(EXPR_H) \ $(GGC_H) output.h diagnostic.h errors.h toplev.h $(TIMEVAR_H) \ - $(TM_H) coretypes.h $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) + $(TM_H) coretypes.h $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) $(CFGLOOP_H) tree-vn.o : tree-vn.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(GGC_H) \ $(TREE_H) $(TREE_FLOW_H) $(HASHTAB_H) langhooks.h tree-pass.h \ $(TREE_DUMP_H) diagnostic.h @@ -1675,6 +1697,10 @@ tree-cfg.o : tree-cfg.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \ tree-tailcall.o : tree-tailcall.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \ $(RTL_H) $(TREE_H) $(TM_P_H) function.h $(TM_H) coretypes.h \ $(TREE_DUMP_H) diagnostic.h except.h tree-pass.h $(FLAGS_H) langhooks.h +tree-ssa-sink.o : tree-ssa-sink.c $(TREE_FLOW_H) $(CONFIG_H) \ + $(SYSTEM_H) $(TREE_H) $(TM_P_H) $(EXPR_H) \ + $(GGC_H) output.h diagnostic.h errors.h toplev.h $(TIMEVAR_H) \ + $(TM_H) coretypes.h $(TREE_DUMP_H) tree-pass.h $(FLAGS_H) tree-nested.o: tree-nested.c $(CONFIG_H) $(SYSTEM_H) $(TM_H) $(TREE_H) \ $(RTL_H) $(TM_P_H) function.h tree-dump.h tree-inline.h tree-iterator.h \ tree-gimple.h $(CGRAPH_H) $(EXPR_H) langhooks.h $(GGC_H) gt-tree-nested.h @@ -1738,7 +1764,7 @@ tree-optimize.o : tree-optimize.c $(TREE_FLOW_H) $(CONFIG_H) \ $(GGC_H) output.h diagnostic.h errors.h $(FLAGS_H) \ $(TIMEVAR_H) $(TM_H) coretypes.h $(TREE_DUMP_H) toplev.h function.h \ langhooks.h $(FLAGS_H) $(CGRAPH_H) tree-inline.h tree-mudflap.h $(GGC_H) \ - $(CGRAPH_H) tree-pass.h + $(CGRAPH_H) tree-pass.h $(CFGLOOP_H) c-gimplify.o : c-gimplify.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) errors.h \ $(C_TREE_H) $(C_COMMON_H) diagnostic.h $(TREE_GIMPLE_H) varray.h $(FLAGS_H) \ langhooks.h toplev.h rtl.h $(TREE_FLOW_H) langhooks-def.h \ @@ -1765,10 +1791,18 @@ tree-data-ref.o: tree-data-ref.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ errors.h $(GGC_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) diagnostic.h \ $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) cfgloop.h \ tree-data-ref.h $(SCEV_H) tree-pass.h $(LAMBDA_H) +tree-vect-analyze.o: tree-vect-analyze.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ + errors.h $(GGC_H) $(OPTABS_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) diagnostic.h \ + $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) cfgloop.h \ + tree-vectorizer.h tree-data-ref.h $(SCEV_H) $(EXPR_H) +tree-vect-transform.o: tree-vect-transform.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ + errors.h $(GGC_H) $(OPTABS_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) diagnostic.h \ + $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) cfgloop.h target.h tree-pass.h $(EXPR_H) \ + tree-vectorizer.h tree-data-ref.h $(SCEV_H) langhooks.h toplev.h tree-vectorizer.o: tree-vectorizer.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ errors.h $(GGC_H) $(OPTABS_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) diagnostic.h \ $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) cfgloop.h tree-pass.h $(EXPR_H) \ - tree-vectorizer.h tree-data-ref.h $(SCEV_H) + tree-vectorizer.h tree-data-ref.h $(SCEV_H) input.h target.h cfglayout.h tree-loop-linear.o: tree-loop-linear.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ errors.h $(GGC_H) $(OPTABS_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) diagnostic.h \ $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) cfgloop.h tree-pass.h \ @@ -1840,7 +1874,7 @@ rtlanal.o : rtlanal.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) toplev.h \ varasm.o : varasm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) \ $(FLAGS_H) function.h $(EXPR_H) hard-reg-set.h $(REGS_H) \ output.h $(C_PRAGMA_H) toplev.h xcoffout.h debug.h $(GGC_H) $(TM_P_H) \ - $(HASHTAB_H) $(TARGET_H) langhooks.h gt-varasm.h real.h + $(HASHTAB_H) $(TARGET_H) langhooks.h gt-varasm.h real.h $(BASIC_BLOCK_H) function.o : function.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ $(TREE_H) $(CFGLAYOUT_H) $(TREE_GIMPLE_H) \ $(FLAGS_H) function.h $(EXPR_H) $(OPTABS_H) libfuncs.h $(REGS_H) hard-reg-set.h \ @@ -1986,7 +2020,8 @@ rtl-profile.o : tree-profile.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ toplev.h $(BASIC_BLOCK_H) $(COVERAGE_H) $(TREE_FLOW_H) value-prof.h $(GGC_H) value-prof.o : value-prof.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ $(BASIC_BLOCK_H) hard-reg-set.h value-prof.h $(EXPR_H) output.h $(FLAGS_H) \ - $(RECOG_H) insn-config.h $(OPTABS_H) $(REGS_H) $(GGC_H) + $(RECOG_H) insn-config.h $(OPTABS_H) $(REGS_H) $(GGC_H) $(DIAGNOSTIC_H) \ + $(TREE_H) $(COVERAGE_H) loop.o : loop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(FLAGS_H) \ insn-config.h $(REGS_H) hard-reg-set.h $(RECOG_H) $(EXPR_H) \ real.h $(PREDICT_H) $(BASIC_BLOCK_H) function.h $(CFGLOOP_H) \ @@ -2046,7 +2081,7 @@ et-forest.o : et-forest.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) et-forest. combine.o : combine.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ $(FLAGS_H) function.h insn-config.h $(INSN_ATTR_H) $(REGS_H) $(EXPR_H) \ rtlhooks-def.h $(BASIC_BLOCK_H) $(RECOG_H) real.h hard-reg-set.h \ - toplev.h $(TM_P_H) $(TREE_H) $(TARGET_H) output.h $(PARAMS_H) + toplev.h $(TM_P_H) $(TREE_H) $(TARGET_H) output.h $(PARAMS_H) $(OPTABS_H) regclass.o : regclass.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ hard-reg-set.h $(FLAGS_H) $(BASIC_BLOCK_H) $(REGS_H) insn-config.h \ $(RECOG_H) reload.h real.h toplev.h function.h output.h $(GGC_H) \ @@ -2078,7 +2113,7 @@ postreload.o : postreload.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) postreload-gcse.o : postreload-gcse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ $(RTL_H) $(REGS_H) hard-reg-set.h $(FLAGS_H) real.h insn-config.h $(GGC_H) \ $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) function.h output.h toplev.h $(TM_P_H) \ - except.h $(TREE_H) + except.h $(TREE_H) $(TARGET_H) caller-save.o : caller-save.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ $(FLAGS_H) $(REGS_H) hard-reg-set.h insn-config.h $(BASIC_BLOCK_H) function.h \ $(RECOG_H) reload.h $(EXPR_H) toplev.h $(TM_P_H) @@ -2139,7 +2174,7 @@ lists.o: lists.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) toplev.h \ $(RTL_H) $(GGC_H) gt-lists.h bb-reorder.o : bb-reorder.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ $(RTL_H) $(BASIC_BLOCK_H) $(FLAGS_H) $(TIMEVAR_H) output.h $(CFGLAYOUT_H) $(FIBHEAP_H) \ - $(TARGET_H) function.h $(TM_P_H) $(OBSTACK_H) $(EXPR_H) $(REGS_H) + $(TARGET_H) function.h $(TM_P_H) $(OBSTACK_H) $(EXPR_H) $(REGS_H) errors.h tracer.o : tracer.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \ $(BASIC_BLOCK_H) hard-reg-set.h output.h $(CFGLAYOUT_H) $(FLAGS_H) $(TIMEVAR_H) \ $(PARAMS_H) $(COVERAGE_H) @@ -2190,11 +2225,13 @@ mips-tdump.o : mips-tdump.c $(CONFIG_H) $(RTL_H) $(SYSTEM_H) coretypes.h $(TM_H) # FIXME: writing proper dependencies for this is a *LOT* of work. libbackend.o : $(OBJS-common:.o=.c) $(out_file) \ insn-config.h insn-flags.h insn-codes.h insn-constants.h \ - insn-attr.h + insn-attr.h $(DATESTAMP) $(BASEVER) $(DEVPHASE) $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ -DTARGET_NAME=\"$(target_noncanonical)\" \ -DLOCALEDIR=\"$(localedir)\" \ - -c $(filter %.c,$^) -o $@ -combine + -c $(filter %.c,$^) -o $@ \ + -DBASEVER=$(BASEVER_s) -DDATESTAMP=$(DATESTAMP_s) \ + -DDEVPHASE=$(DEVPHASE_s) -combine # # Generate header and source files from the machine description, @@ -2418,7 +2455,7 @@ GTFILES = $(srcdir)/input.h $(srcdir)/coretypes.h \ $(srcdir)/sdbout.c $(srcdir)/stor-layout.c \ $(srcdir)/stringpool.c $(srcdir)/tree.c $(srcdir)/varasm.c \ $(srcdir)/tree-mudflap.c $(srcdir)/tree-flow.h \ - $(srcdir)/c-objc-common.c $(srcdir)/c-common.c $(srcdir)/c-parse.in \ + $(srcdir)/c-objc-common.c $(srcdir)/c-common.c $(srcdir)/c-parser.c \ $(srcdir)/tree-ssanames.c $(srcdir)/tree-eh.c \ $(srcdir)/tree-phinodes.c $(srcdir)/tree-cfg.c \ $(srcdir)/tree-dfa.c $(srcdir)/tree-ssa-propagate.c \ @@ -2440,7 +2477,7 @@ gt-emit-rtl.h gt-explow.h gt-stor-layout.h gt-regclass.h \ gt-lists.h gt-alias.h gt-cselib.h gt-gcse.h \ gt-expr.h gt-sdbout.h gt-optabs.h gt-bitmap.h gt-dojump.h \ gt-dwarf2out.h gt-reg-stack.h gt-dwarf2asm.h \ -gt-dbxout.h gt-c-common.h gt-c-decl.h gt-c-parse.h \ +gt-dbxout.h gt-c-common.h gt-c-decl.h gt-c-parser.h \ gt-c-pragma.h gtype-c.h gt-cfglayout.h \ gt-tree-mudflap.h gt-tree-complex.h \ gt-tree-eh.h \ @@ -2749,15 +2786,16 @@ test-protoize-simple: ./protoize ./unprotoize $(GCC_PASSES) -rm -f tmp-proto.[cs] tmp-proto$(objext) # gcov-iov.c is run on the build machine to generate gcov-iov.h from version.c -build/gcov-iov.o: gcov-iov.c version.c $(BCONFIG_H) coretypes.h $(GTM_H) \ +build/gcov-iov.o: gcov-iov.c $(BCONFIG_H) coretypes.h $(GTM_H) \ $(SYSTEM_H) coretypes.h $(TM_H) build/gcov-iov$(build_exeext): build/gcov-iov.o $(CC_FOR_BUILD) $(BUILD_CFLAGS) $(BUILD_LDFLAGS) build/gcov-iov.o -o $@ gcov-iov.h: s-iov -s-iov: build/gcov-iov$(build_exeext) - build/gcov-iov$(build_exeext) > tmp-gcov-iov.h +s-iov: build/gcov-iov$(build_exeext) $(BASEVER) $(DEVPHASE) + build/gcov-iov$(build_exeext) '$(BASEVER_c)' '$(DEVPHASE_c)' \ + > tmp-gcov-iov.h $(SHELL) $(srcdir)/../move-if-change tmp-gcov-iov.h gcov-iov.h $(STAMP) s-iov @@ -2814,10 +2852,24 @@ s-macro_list : $(GCC_PASSES) $(SHELL) $(srcdir)/../move-if-change tmp-macro_list macro_list $(STAMP) s-macro_list +# The line below is supposed to avoid accidentally matching the +# built-in suffix rule `.o:' to build fixincl out of fixincl.o. You'd +# expect fixincl to be newer than fixincl.o, such that this situation +# would never come up. As it turns out, if you use ccache with +# CCACHE_HARDLINK enabled, the compiler doesn't embed the current +# working directory in object files (-g absent, or -fno-working-dir +# present), and build and host are the same, fixincl for the host will +# build after fixincl for the build machine, getting a cache hit, +# thereby updating the timestamp of fixincl.o in the the host tree. +# Because of CCACHE_HARDLINK, this will also update the timestamp in +# the build tree, and so fixincl in the build tree will appear to be +# out of date. Yuck. +../$(build_subdir)/fixincludes/fixincl: ; @ : + # Build fixed copies of system files. stmp-fixinc: gsyslimits.h macro_list \ - ../$(build_subdir)/fixincludes/fixincl \ - ../$(build_subdir)/fixincludes/fixinc.sh + $(build_objdir)/fixincludes/fixincl \ + $(build_objdir)/fixincludes/fixinc.sh @if test ! -d ${SYSTEM_HEADER_DIR}; then \ echo The directory that should contain system headers does not exist: >&2 ; \ echo " ${SYSTEM_HEADER_DIR}" >&2 ; \ @@ -2829,7 +2881,7 @@ stmp-fixinc: gsyslimits.h macro_list \ (TARGET_MACHINE='$(target)'; srcdir=`cd $(srcdir); ${PWD_COMMAND}`; \ SHELL='$(SHELL)'; MACRO_LIST=`${PWD_COMMAND}`/macro_list ; \ export TARGET_MACHINE srcdir SHELL MACRO_LIST && \ - cd ../$(build_subdir)/fixincludes && \ + cd $(build_objdir)/fixincludes && \ $(SHELL) ./fixinc.sh ../../gcc/include \ $(SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS) ) rm -f include/syslimits.h @@ -2940,24 +2992,37 @@ info: $(INFOFILES) lang.info @GENINSRC@ srcinfo lang.srcinfo srcinfo: $(INFOFILES) -cp -p $^ $(srcdir)/doc -TEXI_CPP_FILES = cpp.texi fdl.texi cppenv.texi cppopts.texi +TEXI_CPP_FILES = cpp.texi fdl.texi cppenv.texi cppopts.texi \ + gcc-common.texi gcc-vers.texi -TEXI_GCC_FILES = gcc.texi gcc-common.texi frontends.texi standards.texi \ - invoke.texi extend.texi md.texi objc.texi gcov.texi trouble.texi \ - bugreport.texi service.texi contribute.texi compat.texi funding.texi \ - gnu.texi gpl.texi fdl.texi contrib.texi cppenv.texi cppopts.texi \ +TEXI_GCC_FILES = gcc.texi gcc-common.texi gcc-vers.texi frontends.texi \ + standards.texi invoke.texi extend.texi md.texi objc.texi \ + gcov.texi trouble.texi bugreport.texi service.texi \ + contribute.texi compat.texi funding.texi gnu.texi gpl.texi \ + fdl.texi contrib.texi cppenv.texi cppopts.texi \ implement-c.texi -TEXI_GCCINT_FILES = gccint.texi gcc-common.texi contribute.texi makefile.texi \ - configterms.texi portability.texi interface.texi passes.texi \ - c-tree.texi rtl.texi md.texi tm.texi hostconfig.texi fragments.texi \ - configfiles.texi collect2.texi headerdirs.texi funding.texi gnu.texi \ - gpl.texi fdl.texi contrib.texi languages.texi sourcebuild.texi \ - gty.texi libgcc.texi cfg.texi tree-ssa.texi +TEXI_GCCINT_FILES = gccint.texi gcc-common.texi gcc-vers.texi \ + contribute.texi makefile.texi configterms.texi options.texi \ + portability.texi interface.texi passes.texi c-tree.texi \ + rtl.texi md.texi tm.texi hostconfig.texi fragments.texi \ + configfiles.texi collect2.texi headerdirs.texi funding.texi \ + gnu.texi gpl.texi fdl.texi contrib.texi languages.texi \ + sourcebuild.texi gty.texi libgcc.texi cfg.texi tree-ssa.texi TEXI_GCCINSTALL_FILES = install.texi install-old.texi fdl.texi -TEXI_CPPINT_FILES = cppinternals.texi +TEXI_CPPINT_FILES = cppinternals.texi gcc-common.texi gcc-vers.texi + +# gcc-vers.texi is generated from the version files. +gcc-vers.texi: $(BASEVER) $(DEVPHASE) + (echo "@set version-GCC $(BASEVER_c)"; \ + if [ "$(DEVPHASE_c)" = "experimental" ]; \ + then echo "@set DEVELOPMENT"; \ + else echo "@clear DEVELOPMENT"; \ + fi) > $@T + mv -f $@T $@ + # The *.1, *.7, *.info, and *.dvi files are being generated from implicit # patterns. To use them, put each of the specific targets with its @@ -2970,7 +3035,7 @@ doc/cppinternals.info: $(TEXI_CPPINT_FILES) doc/%.info: %.texi if [ x$(BUILD_INFO) = xinfo ]; then \ - $(MAKEINFO) $(MAKEINFOFLAGS) -I $(docdir) \ + $(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(docdir) \ -I $(docdir)/include -o $@ $<; \ fi @@ -2995,11 +3060,11 @@ dvi:: doc/gcc.dvi doc/gccint.dvi doc/gccinstall.dvi doc/cpp.dvi \ doc/cppinternals.dvi doc/%.dvi: %.texi - $(TEXI2DVI) -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $< + $(TEXI2DVI) -I . -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $< # Duplicate entry to handle renaming of gccinstall.dvi doc/gccinstall.dvi: $(TEXI_GCCINSTALL_FILES) - $(TEXI2DVI) -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $< + $(TEXI2DVI) -I . -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $< html:: $(htmldir)/cpp/index.html $(htmldir)/gcc/index.html \ $(htmldir)/gccinstall/index.html $(htmldir)/gccint/index.html \ @@ -3143,7 +3208,7 @@ distclean: clean lang.distclean -rm -f Makefile *.oaux -rm -f gthr-default.h -rm -f */stage1 */stage2 */stage3 */stage4 */include */stageprofile */stagefeedback - -rm -f c-parse.y c-parse.c c-parse.output TAGS */TAGS + -rm -f TAGS */TAGS -rm -f *.asm -rm -f site.exp site.bak testsuite/site.exp testsuite/site.bak -rm -f testsuite/*.log testsuite/*.sum @@ -3163,7 +3228,6 @@ maintainer-clean: @echo 'This command is intended for maintainers to use; it' @echo 'deletes files that may need special tools to rebuild.' $(MAKE) lang.maintainer-clean distclean - -rm -f $(srcdir)/c-parse.y $(srcdir)/c-parse.c -rm -f cpp.??s cpp.*aux -rm -f gcc.??s gcc.*aux -rm -f $(docdir)/*.info $(docdir)/*.1 $(docdir)/*.7 $(docdir)/*.dvi @@ -3360,6 +3424,13 @@ install-include-dir: installdirs mkdir $(DESTDIR)$(libsubdir)/include -chmod a+rx $(DESTDIR)$(libsubdir)/include +# Create or recreate the install-tools include file directory. +itoolsdir = $(libexecsubdir)/install-tools +itoolsdatadir = $(libsubdir)/install-tools +install-itoolsdirs: installdirs + $(mkinstalldirs) $(DESTDIR)$(itoolsdatadir)/include + $(mkinstalldirs) $(DESTDIR)$(itoolsdir) + # Install the include directory using tar. install-headers-tar: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir # We use `pwd`/include instead of just include to problems with CDPATH @@ -3382,10 +3453,8 @@ install-headers-cpio: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir install-headers-cp: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir cp -p -r include $(DESTDIR)$(libsubdir) -itoolsdir = $(libexecsubdir)/install-tools -itoolsdatadir = $(libsubdir)/install-tools # Install supporting files for fixincludes to be run later. -install-mkheaders: stmp-int-hdrs $(STMP_FIXPROTO) install-include-dir \ +install-mkheaders: stmp-int-hdrs $(STMP_FIXPROTO) install-itoolsdirs \ macro_list xlimits.h for file in $(USER_H); do \ realfile=`echo $$file | sed -e 's|.*/\([^/]*\)$$|\1|'`; \ @@ -3625,7 +3694,7 @@ TAGS: lang.tags incs="$$incs --include $$dir/TAGS.sub"; \ fi; \ done; \ - etags -o TAGS.sub *.y *.h *.c -l yacc c-parse.in; \ + etags -o TAGS.sub *.y *.h *.c; \ etags --include TAGS.sub $$incs) # ------------------------------------------------------ @@ -3662,7 +3731,7 @@ STAGEPROFILE_FLAGS_TO_PASS = \ # Files never linked into the final executable produces warnings about missing # profile. STAGEFEEDBACK_FLAGS_TO_PASS = \ - CFLAGS="$(BOOT_CFLAGS) -fprofile-use" + 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 @@ -4156,8 +4225,6 @@ risky-stage4: stage4 XGETTEXT = @XGETTEXT@ GMSGFMT = @GMSGFMT@ MSGMERGE = msgmerge - -PACKAGE = @PACKAGE@ CATALOGS = @CATALOGS@ .PHONY: build- install- build-po install-po update-po @@ -4181,13 +4248,13 @@ update-po: $(CATALOGS:.gmo=.pox) # The new .po has to be gone over by hand, so we deposit it into # build/po with a different extension. -# If build/po/$(PACKAGE).pot exists, use it (it was just created), +# If build/po/gcc.pot exists, use it (it was just created), # else use the one in srcdir. .po.pox: -test -d po || mkdir po - $(MSGMERGE) $< `if test -f po/$(PACKAGE).pot; \ - then echo po/$(PACKAGE).pot; \ - else echo $(srcdir)/po/$(PACKAGE).pot; fi` -o $@ + $(MSGMERGE) $< `if test -f po/gcc.pot; \ + then echo po/gcc.pot; \ + else echo $(srcdir)/po/gcc.pot; fi` -o $@ # This rule has to look for .gmo modules in both srcdir and # the cwd, and has to check that we actually have a catalog @@ -4204,8 +4271,8 @@ install-po: dir=$(localedir)/$$lang/LC_MESSAGES; \ echo $(mkinstalldirs) $(DESTDIR)$$dir; \ $(mkinstalldirs) $(DESTDIR)$$dir || exit 1; \ - echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ - $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ + echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc.mo; \ + $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc.mo; \ done # Rule for regenerating the message template (gcc.pot). @@ -4215,9 +4282,9 @@ install-po: # Note that exgettext has an awk script embedded in it which requires a # fairly modern (POSIX-compliant) awk. # The .pot file is left in the build directory. -$(PACKAGE).pot: po/$(PACKAGE).pot -po/$(PACKAGE).pot: force options.c +gcc.pot: po/gcc.pot +po/gcc.pot: force options.c -test -d po || mkdir po $(MAKE) srcextra AWK=$(AWK) $(SHELL) $(srcdir)/po/exgettext \ - $(XGETTEXT) $(PACKAGE) $(srcdir) + $(XGETTEXT) gcc $(srcdir)